Betriebssicherung und Backups
AktivTägliche verschlüsselte Backups, wöchentlicher Restore-Test, Repo-Sync- und Dienste-Wächter, Deploy-Protokoll mit Rollback, Sicherheitsvorfälle und offene Härtungsmaßnahmen
- Bereich
- Betrieb
- Start
- 20.07.2026
- Zuletzt
- 10.10.2026
- Am Zug
- René
Nächster Schritt, René
Backup-Kopie außer Haus (Hetzner Storage Box) beschaffen und einrichten, dann Hetzner-Firewall klären und SSH und Coolify härten
Worum es geht
Das Kernsystem (Hub, Dienste, Datenbanken, Ticketsystem, Content-Service) läuft auf einer einzigen Maschine mit rund 30 Containern. Diese Akte sammelt, was Daten sichert, Ausfälle sichtbar macht, Deploys rückholbar macht und welche Sicherheitslücken noch offen sind. Backups verhindern keinen Ausfall, sie begrenzen den Datenverlust.
Stand
- Tägliches verschlüsseltes Backup
tools/backup_ops.sh(gpg AES256) viasim-ops-backup.timerum 03:33 UTC: hub.db, assistant.db, ads.db, post.db, content.db, Postgres-Dumps (Ticketsystem, Coolify), Ticket-Uploads, Content-Assets, Lead-Dateien. Ziel Hetzner-Volume/mnt/HC_Volume_105805516, lokal 2 Stände. Aufbewahrung seit 06.10. 14 Tage, Tagesarchiv rund 1,5 GB (11.10. geprüft). - Wöchentlicher Restore-Test (
sim-restore-test.timer, sonntags 05:00 UTC): spielt in einen Wegwerf-Container zurück und vergleicht gegen Live. Letzter Lauf laut Timer 11.10. - Repo-Sync-Wächter (täglich 04:10 UTC), Backup-Alters-Wächter (Telegram bei über 30 h), Dienste-Health im Hub (8 Ziele, alle 10 min), Coolify-Deploy-Poller und GitHub-Workflow-Poller (alle 15 min), Headless-Chromium-Wächter.
- Deploy-Protokoll mit Nachprüfung und Rollback (Hub v0.304.0, 15.09.):
rollout.shmit Sperre, Image-Tags, Protokoll im Hub (Zentrale › Betrieb › Deploys), Rollback-Knopf mit Wächter alle 30 s. Code geht zurück, Daten nicht. - SSH: Passwort-Login abgeschaltet (Datei
/etc/ssh/sshd_config.d/50-kein-passwort-login.conf), fail2ban aktiv (sshd 15 min, recidive 1 Woche,ignoreipenthält 10.0.0.0/8 wegen Coolify). - Server aufgerüstet (22 GB RAM, 451 GB Platte), Swap und earlyoom aktiv; Security-Updates laufen über unattended-upgrades.
Offen
- René Hetzner Storage Box für B2 bereitstellen (Zugang vom Server aus nicht löschbar), bisher verlässt keine Backup-Kopie den Server.
- René Hetzner-Cloud-Firewall klären (
nc -vz 178.104.9.3 5432), blockiert den Firewall-Schritt S9. - René Coolify-2FA für beide Benutzer (S3).
- René SSH-Härtung (S4, 67 Passwort-Logins pro Woche zum Zeitpunkt der Prüfung, Aussperr-Gefahr), Reboot für Kernel (S8).
- René sim-ops main pushen (Wiederherstellung 95376f6 aus dem Vorfall vom 10.10. und weitere lokale Commits), Push erst prüfen, dann eigener Befehl.
- René Rotation der Zugänge laut Rotations-Liste; Secdata: Proxy-Host des Content-Agenten aus dem öffentlichen NPM nehmen oder Passwort rotieren, Quarantäne-Ordner nach Sichtung löschen.
- ich Backup-Umbau (Fotos und Uploads inkrementell statt Vollkopie), Speicherlimits der Hermes-Container in Coolify.
- ich Postgres vom Netz nehmen (S2, Port ist tragend,
DB_HOST=10.0.5.1, braucht Wartungsfenster), Hermes-Port 9030 schließen (S7). - ich Wiederanlauf einmal üben und Notfallblatt außerhalb des Servers (A1, A2);
tools/vorschau.sh(K3) wartet auf Renés Entscheidung.
Entscheidungen und Regeln
- 2026-07-20: Nach jedem Commit
git push origin main;.env*unddata/nie committen; vor Pushes Secrets-Check. - 2026-07-23: Wächter für Dateisystem laufen als Host-Skripte in
sim-ops/tools/und melden perPOST /api/events. - 2026-08-12: Nur Vorschläge und was stressfrei machbar ist; Renés Dynamik-IPs bewusst nicht in fail2ban gewhitelistet.
- 2026-09-27:
docker execnie mit Glob/**, immertimeoutim Container (RAM-Ausreißer 8 GB). - 2026-10-06: Backup-Aufbewahrung 14 Tage (René: reicht).
- 2026-10-10: Git nie mit
cdin einer Pipe-Kette; immergit -C, Push als eigener Befehl nach Prüfung, bei sim-ops niegit add -A. - Hub-Deploy nur über
cd /root/sim-ops/deploy && ./rollout.sh; Versionsbump an drei Stellen. - Postgres meldet fehlgeschlagene Anmeldungen immer;
log_connectionsbewusst nicht gesetzt.
Verlauf
- Vorfall:
cdin Pipe-Kette führte zu Commit 1842b6d und Push in sim-ops, Coolify baute ads-service mit unfertiger 0.4.0; Wiederherstellung 95376f6 lokal, Push offen. - Backup-Aufbewahrung auf 14 Tage (532d29e), RAM-Ausreißer von 27.09. beendet, Volume 91 % auf 61 %.
- RAM-Ausreißer durch
docker execmit Glob im Content-Container (8 GB, Swap voll). - Lead-Dateien im Backup (fc11c52).
- Deploy-Protokoll, Nachprüfung, Rollback (ad7018b, Hub v0.304.0).
- Deploy ohne Lücke (rollout.sh, Hub v0.245.14).
- SecData: Krypto-Miner im Hermes-Container seit 10.07., entschärft, Quarantäne.
- Sicherheits- und Ausfallprüfung; Ticket-Postgres und Coolify-DB im Backup, Restore-Test wöchentlich (fb29492), fail2ban.
- GitHub-Workflow-Poller (V4 komplett).
- Betriebssicherheit V2 bis V4 (Hub v0.33.0), post.db im Backup.
- content.db und Content-Assets im Backup.
- Daten-Backup eingerichtet.
Wo liegt was
- Skripte
/root/sim-ops/tools/:backup_ops.sh,backup_audit.sh,restore_test.sh,repo_sync_watch.sh,coolify_deploy_poll.sh,github_workflow_poll.sh,headless_watch.sh,RESTORE.md(Restore-Anleitung). - Deploy:
/root/sim-ops/deploy/(rollout.sh,rollback.sh,rollback-waechter.sh,nachpruefung.sh,README-deploy.md, Sperrdateideploy/SPERRE, Protokolldeploy/log/deploys.jsonl); Hub:systemDeploysCore.ts,systemDeploys.ts, Tabellendeploys,rollback_anfragen. - Timer (systemd):
sim-ops-backup,sim-repo-sync,sim-restore-test,sim-coolify-deploy,sim-github-workflow,sim-rollback-waechter,sim-agentconfigs,sim-headless-watch,sim-wiki-autopull. - Backups:
/mnt/HC_Volume_105805516/backups/sim-ops/; Passphrase außerhalb des Repos unter/root/.sim_ops_backup/und in Renés Passwort-Manager. - Vorfallnotiz:
/root/transfer/VORFALL-secdata-miner-20260827.md. Wiki:50-Strategien/Gesamtsystem/Offene Massnahmen Sicherheit und Betrieb.md(Arbeitsvorrat), Vault-Seite Sicherheits- und Ausfallprüfung 2026-08-12.