📘 Kapitel 6: Vaultwarden (Docker unter Debian‑12‑LXC) Logische Position: 6 (nach 5: WireGuard · vor 7: Nextcloud)
🎯 Ziel Vaultwarden (Bitwarden‑kompatibler Server) in einem Debian‑12‑LXC per Docker + Docker Compose betreiben, hinter Nginx Proxy Manager (NPM) mit HTTPS und WebSockets bereitstellen, Registrierungen deaktivieren, Admin‑Token setzen und eine Backup‑Grundlage schaffen.
✅ Voraussetzungen
- LXC: Debian 12 (Bookworm) – erstellt gemäß Grundkapitel Erster LXC – Grundsetup & SSH (hier nur Verweis)
- LXC‑Specs: 1 vCPU · 512 MB–1 GB RAM (256 MB funktionieren oft, 512 MB empfohlen) · 4–8 GB Disk · statische IPv4 (z. B.
10.0.0.16); IPv6 optional - Nginx Proxy Manager (separater LXC), gültige Domain/Subdomain (z. B.
pass.DEINE‑DOMAIN.tld) - DNS‑Eintrag der Subdomain auf NPM
🧩 Was wir aufbauen
- Container‑Image:
vaultwarden/server:latest - Ports:
8000:80(Web/API),3012:3012(WebSocket/Live‑Sync) - Persistenz: Volume
./data:/data→ Daten auf dem Host in/opt/vaultwarden/data - Konfig per
.env:DOMAIN,ADMIN_TOKEN,SIGNUPS_ALLOWED=false, optionalSMTP_* - Reverse‑Proxy (NPM): Proxy Host für
pass.DEINE‑DOMAIN.tld, Custom Location/notifications/hub → 3012, SSL (Let’s Encrypt)
🗺️ Kapitelablauf (Kurzüberblick)
- System vorbereiten (Update, Basis‑Tools)
- Docker & Compose installieren
- Projektverzeichnis /opt/vaultwarden anlegen,
.enverstellen docker-compose.ymlschreiben- Container starten, Logs prüfen
- NPM: Proxy Host + WebSockets + SSL einrichten
- Admin‑Backend aufrufen: Registrierungen aus, optional SMTP, 2FA aktivieren
- Backup‑Grundlage: Datenordner sichern
🔧 Kerneinstellungen (wichtig!)
- DOMAIN:
https://pass.DEINE‑DOMAIN.tld(https zwingend, sonst fehlerhafte Assets) - ADMIN_TOKEN: lange, zufällige Zeichenfolge (sicher aufbewahren)
- SIGNUPS_ALLOWED=false: verhindert offene Registrierung
- WebSockets: NPM‑Custom‑Location
/notifications/hub→ Port3012 - Datenpfad: Host:
/opt/vaultwarden/data(im Container/data)
🌐 Erstkonfiguration (im Browser)
- Aufruf:
https://pass.DEINE‑DOMAIN.tld - Admin‑Backend:
https://pass.DEINE‑DOMAIN.tld/admin→ ADMIN_TOKEN eingeben - Signups prüfen (aus), optional SMTP für Mails testen, 2FA (TOTP/FIDO2) aktivieren
💾 Backup‑Hinweis (Basis)
- Daten liegen im Host‑Ordner
/opt/vaultwarden/data→ regelmäßig als Tar/rsync sichern - Vor größeren Updates kurz stoppen (
docker compose stop), danach wieder starten
⚠️ Stolperfallen
- WebSockets nicht weitergeleitet → kein Live‑Sync/Push
- DOMAIN ohne
https→ fehlerhafte Links/Icons - ADMIN_TOKEN vergessen/zu schwach → Admin‑Backend gefährdet
- Let’s‑Encrypt Rate‑Limit bei vielen Zertifikatsanforderungen beachten
🔗 Siehe auch
- Kap. 3 Nginx Proxy Manager (Domain/HTTPS)
- Kap. 4 DynDNS (Erreichbarkeit von außen)
- Kap. 14 Backup (Basis)
- Kap. 7 Nextcloud (nächster Schritt)
📜 Lizenz Creative Commons Attribution (CC BY) – Nutzung/Weitergabe/Anpassung mit Namensnennung „Bratonien Tech“.