Vaultwarden – Installation, Backup & Restore
Überblick
Diese Dokumentation beschreibt die Installation und Datensicherung von Vaultwarden in einer Docker-Umgebung.
Ziel ist ein robustes, wartungsarmes Backup-Konzept, das ohne externe Datenbank auskommt und eine Wiederherstellung in wenigen Minuten ermöglicht.
Systemübersicht
| Komponente | Wert |
|---|---|
| Dienst | Vaultwarden |
| Laufzeit | Docker Container |
| Containername | vaultwarden |
| Image | vaultwarden/server:latest |
| Port | 8080 → 80 |
| Datenbank | SQLite |
| Datenpfad (Host) | /root/vaultwarden/vw-data |
| NAS Mountpoint | /mnt/nas |
| Backup-Ziel | /mnt/nas/backups/vaultwarden |
Architektur & Konzept
Vaultwarden speichert alle relevanten Daten im gemounteten Datenverzeichnis.
Dazu gehören:
-
db.sqlite3(Hauptdatenbank) -
db.sqlite3-wal/db.sqlite3-shm -
rsa_key.pem(kritisch!) -
Attachments
-
Icon Cache
➡️ Der Datenordner ist das vollständige Backup.
Es ist kein SQL-Dump erforderlich.
Docker-Datenbindung
Der Container ist wie folgt angebunden:
Dieses Verzeichnis enthält alle produktiven Vaultwarden-Daten.
Backup-Strategie
Grundprinzip
-
tägliches Backup per Cron
-
Backup läuft nur, wenn das NAS gemountet ist
-
Container wird für SQLite-Konsistenz kurz gestoppt
-
rsync-Mirror + optionaler Tages-Snapshot
-
Container wird immer wieder gestartet
-
Logs werden rotiert
Backup-Skript
Speicherort
Funktionsweise (Kurzfassung)
-
Lock setzen (keine parallelen Läufe)
-
Prüfen:
-
Docker vorhanden
-
rsync vorhanden
-
NAS gemountet
-
-
Container stoppen
-
rsync:
-
Spiegel nach
current/ -
Snapshot nach
YYYY-MM-DD/
-
-
Alte Snapshots automatisch löschen (Retention)
-
Integritätscheck (
db.sqlite3) -
Container starten
-
Logging
Backup-Zielstruktur auf dem NAS
-
current/= letzter konsistenter Stand -
Datumsordner = zusätzliche Sicherheit / Historie
Cronjob
Root-Crontab
-
täglicher Lauf um 02:00
-
läuft als
root(Docker + Mount erforderlich)
Logging
Logdatei
Beispiel:
Logrotation
Konfiguration
-
tägliche Rotation
-
14 Tage Historie
-
Logs nur für
rootlesbar
Restore (Notfall-Wiederherstellung)
Szenario
-
System neu
-
Container beschädigt
-
Daten verloren
Vorgehen
➡️ Vaultwarden ist sofort vollständig wiederhergestellt
inkl. Benutzer, Tresore, 2FA und Organisationen.
Warum SQLite hier bewusst eingesetzt wird
-
sehr geringe Last
-
ein einzelner Dienst
-
extrem stabile WAL-Engine
-
einfachstes Backup
-
schnellste Wiederherstellung
MariaDB/MySQL ist aktuell nicht notwendig.
Sicherheitsrelevante Hinweise
-
rsa_key.pemmuss gesichert werden
→ Verlust = Clients müssen neu gekoppelt werden -
Backup-Verzeichnis ist restriktiv (
600/700) -
NAS-Zugangsdaten liegen nicht im Skript
Fazit
Dieses Setup bietet:
-
konsistente Backups
-
minimale Komplexität
-
schnelle Recovery
-
klare Wartbarkeit
-
hohe Datensicherheit für private Daten
Vaultwarden ist damit produktionsreif abgesichert.
No comments to display
No comments to display