# Backup & Maintenance

# Backup System

# Automatische Backups

**Script:**```/usr/local/bin/nextcloud-backup.sh```

**Was wird gesichert?**
- Nextcloud-Daten
- Nextcloud-Datenbank
- Wireguard-Configs
- Caddy-Configs
- Fail2Ban-Configs

**Backup Ziel:** ```/mnt/hdd/backups```
- Zeitplan: Täglich 03:00 Uhr (Cronjob) 
- Retention: 7 Tage
- Telegram-Benachrichtigung nach jedem Backup

# Backup manuell starten

```bash
sudo /usr/local/bin/nextcloud-backup.sh
```

**Logs:**
```bash
tail -f  /var/log/nextcloud-backup.log
```
**Backups prüfen:**
```bash
ls -lh /mnt/hdd/backups/nextcloud-data/
ls -lh /mnt/hdd/backups/nextcloud-db/
du -sh /mnt/hdd/backups/
```

# Backup wiederherstellen

**Datenbank:**
```bash
BACKUP_FILE="/mnt/hdd/backups/nextcloud-db/nextcloud-db_2025-10-26_03-00-00.sql.gz"
gunzip < "$BACKUP_FILE" | docker exec -i nextcloud-db-1 mysql -u nextcloud -pdenode nextcloud
```

**Daten:**
```bash
docker stop nextcloud-app-1
sudo mv /nextcloud-data /nextcloud-data.old
sudo tar -xzf /mnt/hdd/backups/nextcloud-data/nextcloud-data_DATE.tar.gz -C /
sudo chown -R www-data:www-data /nextcloud-data
docker start nextcloud-app-1
```

# Monitoring

# Fail2Ban Monitoring

**Telegram-Bot:** ```@denode_monitor_bot```

**Benachrichtigung bei:**
- Fail2Ban Start/Stopp
- IP gebannt
- IP entsperrt

**Fail2Ban Status:**

```bash
fail2ban-client status
fail2ban-client status sshd
```


1

# Health-Check-Script

**Script:** ```/root/health-chech.sh```

**Prüft:**
  - Wireguard-Tunnel-Status
  - Nextcloud-Erreichbarkeit
  - Disk Space (>80% Warnung)
  - CPU Load (>2.0 Warnung)

**Läuft:** Täglich 09.00 Uhr
**Telegram:** Nur bei Problemen

# Häufige Probleme

**502 Bad Gateway:**
```bash
# Service läuft nicht
docker compose ps
systemctl status caddy

# Tunnel funktioniert nicht
ping 10.100.0.2
wg show
```

**Connection Refused:**
```bash
# Port nicht offen
ufw status
netstat -tlnp | grep PORT

# Service nicht erreichbar
docker logs CONTAINER
```


**Disk Space voll:**

```bash
df -h
docker system prune -a --volumes
```

# Troubleshooting

# Häufige Probleme

**502 Bad Gateway:**
```bash
# Service läuft nicht
docker compose ps 
systemctl status caddy

# Tunnel funktioniert nicht
  ping 10.100.0.2
  wg show
```

**Connection Refused:**
```bash
# Port nicht offen 
  ufw status
  netstat -tlnp | grep PORT

# Service ist nicht erreichbar 
  docker logs CONTAINER
```

**Disk Space voll:**
```bash
df -h 
docker system prune -a --volumes
```

# Wichtige Logs

**Caddy:**
```bash
# Hetzner
  journalctl -u caddy -f 

# Homeserver
  sudo journalctl -u caddy -f  
```

**Docker:**
```bash
docker compose logs -f 
docker logs CONTAINER_NAME -f 
```

**Wireguard:**
```bash
journalctl -u wg-quick@wg0 -f 
```

**System:**
```bash
dmesg | tail 
journalctl -xe
```

**SSH:**
```bash
tail -f /var/logs/auth.log
# grep "Failed password" /var/logs/auth.log 
```

# Service neu starten

**Docker-Container:**
```bash
cd ~/SERVICE_DIR
docker compose restart 
docker compose down && docker compose up -d
```

**System-Services:**
```bash
sudo systemctl restart SERVICE
sudo systemctl status SERVICE
```

**Kompletter Neustart**
```bash
# Homeserver
  sudo reboot
# Hetzner
  reboot
```

# Netzwerk Diagnose

**Tunnel testen:**
```bash
# von Hetzner
  ping 10.100.0.2

# von Homeserver
  ping 10.100.0.1
```

**Port-Test:**
```bash
# Auf Server
  netstat -tlnp | grep PORT
  ss -tlnp | grep PORT

# Von außen
  telnet IP PORT
  nc -zv IP PORT
```

**DNS-Test:**
```bash
nslookup nextcloud.denode.eu
dig nextcloud.denode.eu 
host nextcloud.denode.eu
```

**Tailscale funktioniert nicht:**
am besten deeinstallieren, dependencies löschen und neu machen

```bash
sudo systemctl status tailscaled 
ip addr show tailscale0
sudo systemctl restart tailscaled
sudo systemctl status tailscaled
```

wenn das nichts hilft -> neu installieren 
```bash 
# Tailscale stoppen
sudo systemctl stop tailscaled

# Deinstallieren
sudo apt remove --purge tailscale -y

# Config-Verzeichnisse löschen
sudo rm -rf /var/lib/tailscale
sudo rm -rf /etc/systemd/system/tailscaled.service.d

# Daemon neu laden
sudo systemctl daemon-reload

# Neu installieren
curl -fsSL https://tailscale.com/install.sh | sh

# Starten und verbinden
sudo tailscale up

# Status
tailscale status
```