Backup & Maintenance
Backup System
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 System
Backup manuell starten
sudo /usr/local/bin/nextcloud-backup.sh
Logs:
tail -f /var/log/nextcloud-backup.log
Backups prüfen:
ls -lh /mnt/hdd/backups/nextcloud-data/
ls -lh /mnt/hdd/backups/nextcloud-db/
du -sh /mnt/hdd/backups/
Backup System
Backup wiederherstellen
Datenbank:
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:
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
Monitoring
Fail2Ban Monitoring
Telegram-Bot: @denode_monitor_bot
Benachrichtigung bei:
- Fail2Ban Start/Stopp
- IP gebannt
- IP entsperrt
Fail2Ban Status:
fail2ban-client status
fail2ban-client status sshd
1
Monitoring
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
Monitoring
Häufige Probleme
502 Bad Gateway:
# Service läuft nicht
docker compose ps
systemctl status caddy
# Tunnel funktioniert nicht
ping 10.100.0.2
wg show
Connection Refused:
# Port nicht offen
ufw status
netstat -tlnp | grep PORT
# Service nicht erreichbar
docker logs CONTAINER
Disk Space voll:
df -h
docker system prune -a --volumes
Troubleshooting
Troubleshooting
Häufige Probleme
502 Bad Gateway:
# Service läuft nicht
docker compose ps
systemctl status caddy
# Tunnel funktioniert nicht
ping 10.100.0.2
wg show
Connection Refused:
# Port nicht offen
ufw status
netstat -tlnp | grep PORT
# Service ist nicht erreichbar
docker logs CONTAINER
Disk Space voll:
df -h
docker system prune -a --volumes
Troubleshooting
Wichtige Logs
Caddy:
# Hetzner
journalctl -u caddy -f
# Homeserver
sudo journalctl -u caddy -f
Docker:
docker compose logs -f
docker logs CONTAINER_NAME -f
Wireguard:
journalctl -u wg-quick@wg0 -f
System:
dmesg | tail
journalctl -xe
SSH:
tail -f /var/logs/auth.log
# grep "Failed password" /var/logs/auth.log
Troubleshooting
Service neu starten
Docker-Container:
cd ~/SERVICE_DIR
docker compose restart
docker compose down && docker compose up -d
System-Services:
sudo systemctl restart SERVICE
sudo systemctl status SERVICE
Kompletter Neustart
# Homeserver
sudo reboot
# Hetzner
reboot
Troubleshooting
Netzwerk Diagnose
Tunnel testen:
# von Hetzner
ping 10.100.0.2
# von Homeserver
ping 10.100.0.1
Port-Test:
# Auf Server
netstat -tlnp | grep PORT
ss -tlnp | grep PORT
# Von außen
telnet IP PORT
nc -zv IP PORT
DNS-Test:
nslookup nextcloud.denode.eu
dig nextcloud.denode.eu
host nextcloud.denode.eu
Tailscale funktioniert nicht: am besten deeinstallieren, dependencies löschen und neu machen
sudo systemctl status tailscaled
ip addr show tailscale0
sudo systemctl restart tailscaled
sudo systemctl status tailscaled
wenn das nichts hilft -> neu installieren
# 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