Files
Homelab--Bratonein-Kontroll…/Kapitel 05/README.md

68 lines
3.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

📘 Kapitel 6: Vaultwarden (Docker unter Debian12LXC)
Logische Position: 6 (nach 5: WireGuard · vor 7: Nextcloud)
🎯 Ziel
Vaultwarden (Bitwardenkompatibler Server) in einem **Debian12LXC** per **Docker + Docker Compose** betreiben, hinter **Nginx Proxy Manager** (NPM) mit **HTTPS** und **WebSockets** bereitstellen, **Registrierungen deaktivieren**, **AdminToken** setzen und eine **BackupGrundlage** schaffen.
✅ Voraussetzungen
* LXC: Debian 12 (Bookworm) erstellt gemäß Grundkapitel *Erster LXC Grundsetup & SSH* (hier nur Verweis)
* **LXCSpecs:** 1 vCPU · 512MB1GB RAM (256MB funktionieren oft, 512MB empfohlen) · 48GB Disk · statische IPv4 (z.B. `10.0.0.16`); IPv6 optional
* Nginx Proxy Manager (separater LXC), gültige Domain/Subdomain (z.B. `pass.DEINEDOMAIN.tld`)
* DNSEintrag der Subdomain auf NPM
🧩 Was wir aufbauen
* **ContainerImage:** `vaultwarden/server:latest`
* **Ports:** `8000:80` (Web/API), `3012:3012` (WebSocket/LiveSync)
* **Persistenz:** Volume `./data:/data` → Daten auf dem Host in `/opt/vaultwarden/data`
* **Konfig per `.env`:** `DOMAIN`, `ADMIN_TOKEN`, `SIGNUPS_ALLOWED=false`, optional `SMTP_*`
* **ReverseProxy (NPM):** Proxy Host für `pass.DEINEDOMAIN.tld`, Custom Location `/notifications/hub → 3012`, SSL (Lets Encrypt)
🗺️ Kapitelablauf (Kurzüberblick)
1. System vorbereiten (Update, BasisTools)
2. **Docker & Compose** installieren
3. Projektverzeichnis **/opt/vaultwarden** anlegen, `.env` erstellen
4. `docker-compose.yml` schreiben
5. Container starten, Logs prüfen
6. NPM: Proxy Host + WebSockets + SSL einrichten
7. AdminBackend aufrufen: Registrierungen aus, optional SMTP, 2FA aktivieren
8. BackupGrundlage: Datenordner sichern
🔧 Kerneinstellungen (wichtig!)
* **DOMAIN:** `https://pass.DEINEDOMAIN.tld` (https zwingend, sonst fehlerhafte Assets)
* **ADMIN\_TOKEN:** lange, zufällige Zeichenfolge (sicher aufbewahren)
* **SIGNUPS\_ALLOWED=false:** verhindert offene Registrierung
* **WebSockets:** NPMCustomLocation **`/notifications/hub` → Port `3012`**
* **Datenpfad:** Host: `/opt/vaultwarden/data` (im Container `/data`)
🌐 Erstkonfiguration (im Browser)
* Aufruf: `https://pass.DEINEDOMAIN.tld`
* AdminBackend: `https://pass.DEINEDOMAIN.tld/admin`**ADMIN\_TOKEN** eingeben
* **Signups** prüfen (aus), optional **SMTP** für Mails testen, **2FA** (TOTP/FIDO2) aktivieren
💾 BackupHinweis (Basis)
* Daten liegen im HostOrdner `/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 LiveSync/Push
* **DOMAIN** ohne `https` → fehlerhafte Links/Icons
* **ADMIN\_TOKEN** vergessen/zu schwach → AdminBackend gefährdet
* **LetsEncrypt RateLimit** 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“.