Backup & Maintenance

Backup System

Backup System

Automatische Backups

Script:/usr/local/bin/nextcloud-backup.sh

Was wird gesichert?

Backup Ziel: /mnt/hdd/backups

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 Status:

fail2ban-client status
fail2ban-client status sshd

1

Monitoring

Health-Check-Script

Script: /root/health-chech.sh

Prüft:

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