Zum Hauptinhalt springen
Zurück zur Kategorie

Vaultwarden Installation: Self-Hosted Passwort-Manager

Vaultwarden (Bitwarden-kompatibel) Docker-Installation, HTTPS-Konfiguration, Admin-Panel, Organisations- und Sammlungsverwaltung, Verwendung mit Bitwarden-Clients.

Lesezeit: 13 Min Self-Hosting
vaultwardenbitwardenpasswort-managerself-hostingdockersicherheit

Inhaltsverzeichnis

Vaultwarden Installation: Self-Hosted Passwort-Manager

Vaultwarden ist eine leichtgewichtige, community-unterstützte Alternative zum offiziellen Bitwarden-Server, geschrieben in Rust. Im Vergleich zum offiziellen Bitwarden-Server verbraucht es deutlich weniger Ressourcen und ist vollständig kompatibel mit allen Bitwarden-Clients (Web, Desktop, Mobil, Browser-Erweiterung). Durch das Hosting auf Ihrem eigenen Server behalten Sie die vollständige Kontrolle über Ihre Passwörter.

Was ist Vaultwarden?

Vaultwarden (früher bitwarden_rs) ist ein Open-Source-Projekt, das die Bitwarden-API in Rust neu implementiert. Hauptmerkmale:

  • Geringer Ressourcenverbrauch: Läuft problemlos mit 512 MB RAM
  • Bitwarden-Kompatibilität: Alle offiziellen Bitwarden-Clients werden unterstützt
  • Organisationsunterstützung: Kostenlose Erstellung von Organisationen und Sammlungen
  • TOTP-Unterstützung: Zwei-Faktor-Authentifizierung
  • Web Vault: Über den Browser zugängliche Weboberfläche
  • Send-Funktion: Sicheres Teilen von Dateien und Texten

Systemanforderungen

  • Server mit Docker und Docker Compose
  • Mindestens 512 MB RAM
  • Gültiger Domainname (für HTTPS erforderlich)
  • SSL-Zertifikat (Let's Encrypt empfohlen)

Installation mit Docker

docker-compose.yml erstellen

hljs yaml
version: '3.8'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
      ADMIN_TOKEN: "starkes-admin-token-hier"
      WEBSOCKET_ENABLED: "true"
      LOG_LEVEL: "warn"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"
      - "127.0.0.1:3012:3012"
hljs bash
# Container starten
docker compose up -d

# Logs prüfen
docker logs vaultwarden -f

Verwenden Sie einen starken und zufälligen Wert für ADMIN_TOKEN. Mit openssl rand -base64 48 können Sie ein sicheres Token generieren.

Admin-Token generieren

hljs bash
# Sicheres Admin-Token generieren
openssl rand -base64 48

# Sichereres Token mit Argon2-Hash (empfohlen)
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp

Nginx Reverse Proxy und SSL-Konfiguration

Da Vaultwarden HTTPS erfordert, ist die Einrichtung eines Nginx Reverse Proxy obligatorisch.

Nginx-Konfiguration

hljs nginx
server {
    listen 80;
    server_name vault.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name vault.example.com;

    ssl_certificate /etc/letsencrypt/live/vault.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vault.example.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 128M;

    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:3012;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /notifications/hub/negotiate {
        proxy_pass http://127.0.0.1:8080;
    }
}

Let's Encrypt SSL-Zertifikat

hljs bash
# Certbot installieren
apt install certbot python3-certbot-nginx -y

# SSL-Zertifikat erhalten
certbot --nginx -d vault.example.com

# Automatische Erneuerung testen
certbot renew --dry-run

Admin-Panel-Konfiguration

Zugriff auf das Admin-Panel unter https://vault.example.com/admin.

Wichtige Admin-Einstellungen

hljs bash
# Registrierung nach der Einrichtung deaktivieren
SIGNUPS_ALLOWED=false

# Registrierung nur für bestimmte Domains erlauben
SIGNUPS_DOMAINS_WHITELIST=example.com,company.org

# Einladungssystem
INVITATIONS_ALLOWED=true

# E-Mail-Verifizierung
SIGNUPS_VERIFY=true

SMTP E-Mail-Konfiguration

hljs yaml
environment:
  SMTP_HOST: "smtp.gmail.com"
  SMTP_FROM: "vault@example.com"
  SMTP_PORT: "587"
  SMTP_SECURITY: "starttls"
  SMTP_USERNAME: "vault@example.com"
  SMTP_PASSWORD: "app-passwort"

Benutzerverwaltung

Benutzer einladen

Über das Admin-Panel unter UsersInvite User können Sie E-Mail-Einladungen senden.

hljs bash
# Benutzer per CLI einladen
docker exec vaultwarden /vaultwarden invite --email user@example.com

Organisationen und Sammlungen erstellen

Organisationen sind in Vaultwarden kostenlos (kostenpflichtig im offiziellen Bitwarden):

  1. Im Web Vault anmelden
  2. OrganisationenNeue Organisation
  3. Organisationsname und Rechnungs-E-Mail eingeben
  4. Sammlungen zum Kategorisieren von Passwörtern verwenden
  5. Mitglieder einladen und Rollen zuweisen (Admin, Manager, User, Custom)

Bitwarden-Clients verbinden

Browser-Erweiterung

  1. Bitwarden-Erweiterung installieren (Chrome, Firefox, Edge)
  2. Auf Server-URL im Anmeldebildschirm klicken
  3. https://vault.example.com eingeben
  4. Mit Ihrem Konto anmelden

Mobile App

1. Bitwarden-App öffnen
2. Auf den Regionsauswähler im Anmeldebildschirm tippen
3. "Self-hosted" auswählen
4. Server-URL: https://vault.example.com
5. Speichern und anmelden

Backup

hljs bash
# Vaultwarden-Daten sichern
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data/

# Automatisches Backup-Skript
cat > /etc/cron.daily/vaultwarden-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/vaultwarden"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz /opt/vaultwarden/vw-data/
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/vaultwarden-backup

Vaultwarden läuft hervorragend auf REXE VPS-Servern. 1 GB RAM und 1 vCPU reichen für kleine Teams aus.