Zum Inhalt springen
Annuva
Dokumentation · Backups & Updates

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:

bash
sqlite3 data/annuva.sqlite ".backup 'backup/annuva-$(date +%F).sqlite'"

Alternativ den Container kurz stoppen, den Ordner kopieren und wieder starten:

bash
docker compose stop annuva
tar czf "annuva-$(date +%F).tar.gz" data
docker compose start annuva

Mit MySQL oder PostgreSQL sicherst du die Datenbank mit den üblichen Werkzeugen (mysqldump, pg_dump) und den Datenordner für die Dateien.

Updates

bash
docker compose pull
docker compose up -d

Datenbank-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

bash
curl https://annuva.example.com/api/health
# {"database":"ok","status":"ok","version":"1.3.0"}

docker compose logs -f annuva

Der 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.

Diese Seite auf GitHub bearbeiten