Vaultwarden - Bitwarden selbst hosten

Vaultwarden ist eine inoffizielle aber vollständig kompatible Implementierung des Bitwarden-Servers.
Läuft auf einem kleinen VPS mit kaum Ressourcen und ist mit allen Bitwarden-Clients kompatibel.

Installation mit Docker

docker run -d \
  --name vaultwarden \
  --restart unless-stopped \
  -e DOMAIN=https://vault.meinedomain.de \
  -e SIGNUPS_ALLOWED=false \
  -v /opt/vaultwarden/data:/data \
  -p 127.0.0.1:8080:80 \
  vaultwarden/server:latest

SIGNUPS_ALLOWED=false verhindert dass sich Fremde registrieren können.
Port nur auf localhost binden — Nginx macht den HTTPS-Zugang.

Nginx Reverse Proxy

server {
    listen 443 ssl;
    server_name vault.meinedomain.de;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /notifications/hub {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Der /notifications/hub Block ist für WebSocket-Verbindungen die Live-Sync ermöglichen.

Admin-Interface

docker run -d \
  -e ADMIN_TOKEN=$(openssl rand -base64 48) \
  ...

Das Admin-Token in einer sicheren Stelle notieren. Das Interface ist dann unter /admin erreichbar.

Backup

Das Verzeichnis /opt/vaultwarden/data enthält die SQLite-Datenbank und alle verschlüsselten Daten.
Regelmäßig sichern — die Daten sind zwar verschlüsselt aber wenn sie weg sind sind sie weg.