Betrieb
Backups & Updates
Was du sichern musst, wie du aktualisierst und wie du prüfst, ob deine Instanz gesund ist.
Was gesichert werden muss
Alles Wichtige liegt im Datenordner (DATA_DIR, im Container /var/www/data):
- die SQLite-Datenbank (
annuva.sqlite) - hochgeladene Dateien und erzeugte Rechnungs-PDFs (
files/) - erzeugte Secrets (
.auth-secret)
Sichere den ganzen Ordner. Ohne .auth-secret sind nach einer Wiederherstellung alle Sitzungen und API-Tokens ungültig (außer du setzt AUTH_SECRET selbst).
Konsistente SQLite-Backups
Während Annuva läuft, nutze den Backup-Befehl von SQLite statt die Datei zu kopieren:
sqlite3 data/annuva.sqlite ".backup 'backup/annuva-$(date +%F).sqlite'"Alternativ den Container kurz stoppen, den Ordner kopieren und wieder starten:
docker compose stop annuva
tar czf "annuva-$(date +%F).tar.gz" data
docker compose start annuvaMit MySQL oder PostgreSQL sicherst du die Datenbank mit den üblichen Werkzeugen (mysqldump, pg_dump) und den Datenordner für die Dateien.
Updates
docker compose pull
docker compose up -dDatenbank-Migrationen laufen beim Start automatisch. Die aktuelle Version steht im Benutzermenü und unter /api/health. Was sich geändert hat, zeigt das Changelog.
Statt latest kannst du eine Version festlegen – das Image trägt die Major- (1), Minor- (1.3) und vollständige Version (1.3.0) als Tag.
Zustand und Logs
curl https://annuva.example.com/api/health
# {"database":"ok","status":"ok","version":"1.3.0"}
docker compose logs -f annuvaDer Health-Endpunkt antwortet mit 200, wenn die Datenbank erreichbar ist, sonst mit 503; der Docker-Health-Check nutzt ihn. Mit LOG_LEVEL=debug bekommst du mehr Details.