Passwörter gehören zu den sensibelsten Daten überhaupt. Trotzdem werden sie häufig mehrfach verwendet oder unsicher gespeichert. Ein Passwortmanager schafft hier Abhilfe, indem er sichere, einzigartige Kennwörter generiert und verschlüsselt speichert.
Wer die volle Kontrolle über seine Daten behalten möchte, kann seinen Passwortmanager einfach selbst hosten. Eine der beliebtesten Lösungen dafür ist Vaultwarden.
Was ist Vaultwarden?
Vaultwarden ist eine schlanke, in Rust entwickelte Alternative zum offiziellen Bitwarden-Server. Er ist vollständig kompatibel mit den offiziellen Bitwarden-Apps für:
- Windows
- Linux
- macOS
- Android
- iOS
- Browser-Erweiterungen (Firefox, Chrome, Edge usw.)
Der große Vorteil: Vaultwarden benötigt deutlich weniger Ressourcen und eignet sich deshalb hervorragend für:
- Raspberry Pi
- Mini-PCs
- VPS
- Heimserver
- Docker-Umgebungen
Vorteile von Vaultwarden
✅ Vollständige Kontrolle über alle Passwörter
✅ Ende-zu-Ende verschlüsselte Speicherung
✅ Unterstützung aller offiziellen Bitwarden-Clients
✅ Sehr geringer Ressourcenverbrauch
✅ Docker-Unterstützung
✅ Mehrbenutzerfähig
✅ Organisationen und Passwortfreigaben
✅ Zwei-Faktor-Authentifizierung
Voraussetzungen
Für den Betrieb werden lediglich benötigt:
- Docker
- Docker Compose
- Reverse Proxy (z. B. Traefik oder Nginx)
- HTTPS-Zertifikat (Let’s Encrypt empfohlen)
Projektstruktur
Eine einfache Verzeichnisstruktur genügt bereits:
vaultwarden/
├── docker-compose.yml
├── .env
└── data/
Der Ordner data wird beim ersten Start automatisch erstellt und enthält später die Datenbank, Anhänge sowie die Konfiguration.
docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
TZ: ${TZ}
DOMAIN: ${DOMAIN}
ADMIN_TOKEN: ${ADMIN_TOKEN}
SIGNUPS_ALLOWED: "false"
INVITATIONS_ALLOWED: "false"
WEBSOCKET_ENABLED: "true"
LOG_LEVEL: "warn"
LOG_FILE: "/data/vaultwarden.log"
volumes:
- ./data:/data
networks:
- vault
security_opt:
- no-new-privileges:true
tmpfs:
- /tmp
healthcheck:
test: ["CMD", "curl", "-fsS", "http://127.0.0.1/alive"]
interval: 30s
timeout: 5s
retries: 5
networks:
vault:
external: true
.env
TZ=Europe/Berlin
HOST=vault.example.com
DOMAIN=https://vault.example.com
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$....'
Tipp: Verwende ausschließlich einen Argon2-gehashten Admin-Token und niemals ein Klartext-Passwort.
docker run --rm -it vaultwarden/server /vaultwarden hash
Erklärung der wichtigsten Variablen
| Variable | Beschreibung |
|---|---|
| TZ | Zeitzone des Containers |
| DOMAIN | Öffentliche HTTPS-Adresse der Instanz |
| ADMIN_TOKEN | Passwort für das Admin-Interface (als Argon2-Hash) |
| SIGNUPS_ALLOWED | Erlaubt oder verbietet öffentliche Registrierungen |
| INVITATIONS_ALLOWED | Benutzer können keine Einladungen verschicken |
| WEBSOCKET_ENABLED | Aktiviert Live-Synchronisation |
| LOG_LEVEL | Legt den Detailgrad der Protokollierung fest |
Warum öffentliche Registrierungen deaktivieren?
Auf einem privaten Passwortmanager sollten sich grundsätzlich keine unbekannten Benutzer registrieren können.
Deshalb empfiehlt sich:
SIGNUPS_ALLOWED=false
INVITATIONS_ALLOWED=false
Neue Benutzer können stattdessen gezielt über das Administrationsportal angelegt oder eingeladen werden.
Das Admin-Interface
Vaultwarden besitzt ein separates Administrationsportal.
Dieses ist erreichbar unter:
https://vault.example.com/admin
Der Zugriff erfolgt ausschließlich über den in der .env hinterlegten ADMIN_TOKEN.
Container starten
Nach dem Erstellen der Dateien genügt:
docker compose up -d
Den Status überprüfst du anschließend mit:
docker ps
Die Logdateien lassen sich über folgende Befehle anzeigen:
docker logs vaultwarden
oder
docker compose logs -f
Reverse Proxy
Vaultwarden sollte grundsätzlich nicht direkt aus dem Internet erreichbar sein.
Empfohlen wird ein Reverse Proxy wie:
- Traefik
- Nginx Proxy Manager
- Nginx
- Caddy
Dadurch erhält die Instanz automatisch:
- HTTPS
- Let’s Encrypt Zertifikate
- HTTP/2 oder HTTP/3
- Sicherheitsheader
- zentrale Verwaltung weiterer Dienste
Datensicherung
Alle wichtigen Daten befinden sich im Ordner:
./data
Ein regelmäßiges Backup dieses Verzeichnisses genügt in den meisten Fällen bereits vollständig.
Besonders wichtig sind:
- Datenbank
- Anhänge
- Konfiguration
- RSA-Schlüssel
Ohne diese Daten können gespeicherte Passwörter später nicht mehr entschlüsselt werden.
Sicherheitshinweise
Für einen sicheren Betrieb sollten folgende Punkte umgesetzt werden:
- ausschließlich HTTPS verwenden
- starke Passwörter einsetzen
- Zwei-Faktor-Authentifizierung aktivieren
- regelmäßige Backups erstellen
- Docker-Images aktuell halten
- öffentliche Registrierung deaktivieren
- Zugriff auf
/adminzusätzlich über Reverse Proxy absichern (z. B. mit Authelia oder Authentik) - nur notwendige Ports veröffentlichen
Fazit
Vaultwarden gehört zu den besten Lösungen, wenn man einen leistungsfähigen Passwortmanager selbst hosten möchte. Dank der vollständigen Kompatibilität zu den offiziellen Bitwarden-Apps ist der Umstieg besonders einfach. Gleichzeitig überzeugt Vaultwarden durch seinen geringen Ressourcenverbrauch und eignet sich daher sowohl für kleine Heimserver als auch für professionelle Docker-Umgebungen.
In Kombination mit einem Reverse Proxy wie Traefik, automatischen TLS-Zertifikaten und einer zusätzlichen Authentifizierung über Authelia oder Authentik entsteht eine sichere und komfortable Passwortverwaltung, bei der sämtliche Daten unter eigener Kontrolle bleiben.
