Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Docker 29.05.2026 · 4 min Lesezeit

Bitwarden selbst hosten mit Vaultwarden, Docker & Nginx Proxy Manager

Vaultwarden-Logo als Schild mit Schlüsselloch vor dunklem Netzwerk-Hintergrund

Wenn du einen eigenen Passwort-Manager betreiben möchtest, ist Vaultwarden die ressourcenschonendste Variante. Es handelt sich um eine in Rust geschriebene, quelloffene Implementierung der Bitwarden-Server-API – sie spricht dasselbe Protokoll wie der offizielle Bitwarden-Server und funktioniert mit allen offiziellen Bitwarden-Clients (Browser-Erweiterung, Desktop- und Mobile-App). Im Gegensatz zum offiziellen Bitwarden-Server, der .NET samt SQL-Datenbank voraussetzt und mehrere Gigabyte RAM benötigt, läuft Vaultwarden als einzelner Container mit eingebetteter SQLite-Datenbank und kommt mit rund 100 MB RAM aus. Beachte jedoch: Die Bitwarden-Clients erzwingen verschlüsselte Verbindungen – ohne gültiges HTTPS-Zertifikat funktioniert die Einrichtung nicht. Wir lösen das hier über den Nginx Proxy Manager.



Voraussetzungen

Bevor du startest, solltest du Folgendes bereithalten:

  1. Einen Linux-Server (z. B. Ubuntu) mit installiertem Docker und Docker Compose
  2. Eine eigene Domain bzw. Subdomain wie vault.deine-domain.de, deren A-Record auf die Server-IP zeigt
  3. Geöffnete Ports 80 und 443 in der Firewall (für den Nginx Proxy Manager bzw. die Zertifikatsausstellung)

Vaultwarden funktioniert zwar auch über eine reine IP-Adresse, aber für TLS – und damit für die meisten Bitwarden-Clients – brauchst du eine echte Domain.



Schritt 1: Verzeichnis und Docker-Netzwerk anlegen

Lege zunächst ein dediziertes Verzeichnis an, damit Compose-Datei und persistente Daten leicht zu finden und zu sichern sind:

sudo mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Damit der Nginx Proxy Manager den Vaultwarden-Container später über den Containernamen erreichen kann, legen wir ein gemeinsames Docker-Netzwerk an:

docker network create proxy-net



Schritt 2: Nginx Proxy Manager einrichten

Falls du den Nginx Proxy Manager noch nicht betreibst, lege dafür ein eigenes Verzeichnis und eine Compose-Datei an:

sudo mkdir -p /opt/npm
cd /opt/npm
nano docker-compose.yml

Füge folgenden Inhalt ein:

services:
  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: npm
    restart: unless-stopped
    ports:
      - "80:80"     # HTTP / ACME-Challenge
      - "443:443"   # HTTPS
      - "81:81"     # Admin-Oberfläche
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    networks:
      - proxy-net

networks:
  proxy-net:
    external: true

Starte den Proxy Manager:

docker compose up -d

Rufe anschließend die Admin-Oberfläche unter http://deine-server-ip:81 auf. Die Standard-Zugangsdaten beim ersten Login lauten admin@example.com / changeme. Du wirst sofort aufgefordert, E-Mail-Adresse und Passwort zu ändern – das solltest du unbedingt direkt erledigen.



Schritt 3: Vaultwarden per Docker Compose starten

Wechsle zurück in das Vaultwarden-Verzeichnis und erstelle die Compose-Datei:

cd /opt/vaultwarden
nano docker-compose.yml

Füge folgende Konfiguration ein und passe die DOMAIN an deine Subdomain an:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      DOMAIN: "https://vault.deine-domain.de"
      SIGNUPS_ALLOWED: "true"   # Nach Erstellung des eigenen Kontos auf "false" setzen
    volumes:
      - ./vw-data:/data
    networks:
      - proxy-net

networks:
  proxy-net:
    external: true

Wichtig: Der Container veröffentlicht hier keinen Port nach außen. Der Zugriff erfolgt ausschließlich über den Nginx Proxy Manager im gemeinsamen Netzwerk. Starte den Container:

docker compose up -d

Über DOMAIN weiß Vaultwarden, dass es per HTTPS erreichbar ist – das ist u. a. für Datei-Anhänge und WebAuthn/2FA erforderlich.



Schritt 4: Proxy Host mit HTTPS einrichten

Wechsle in die Admin-Oberfläche des Nginx Proxy Managers und lege unter Hosts → Proxy Hosts → Add Proxy Host einen neuen Eintrag an.

Im Reiter Details:

  1. Domain Names: vault.deine-domain.de
  2. Scheme: http
  3. Forward Hostname / IP: vaultwarden (der Containername)
  4. Forward Port: 80
  5. Websockets Support: aktivieren

Im Reiter SSL:

  1. SSL Certificate: „Request a new SSL Certificate"
  2. Force SSL und HTTP/2 Support aktivieren
  3. Den Let's-Encrypt-Bedingungen zustimmen und eine gültige E-Mail-Adresse hinterlegen

Nach dem Speichern fordert der Nginx Proxy Manager automatisch ein Let's-Encrypt-Zertifikat an. Damit das gelingt, muss der A-Record deiner Subdomain bereits auf die Server-IP zeigen und Port 80 erreichbar sein.



Schritt 5: Konto anlegen und Registrierung schließen

Rufe nun https://vault.deine-domain.de im Browser auf. Erstellst du erfolgreich ein Konto, ist die Installation abgeschlossen. Lege als Erstes dein eigenes Benutzerkonto an.

Anschließend solltest du die offene Registrierung deaktivieren, damit sich keine Fremden anmelden können. Öffne dazu die Compose-Datei erneut:

cd /opt/vaultwarden
nano docker-compose.yml

Ändere die entsprechende Zeile auf:

SIGNUPS_ALLOWED: "false"

Übernimm die Änderung mit:

docker compose up -d



Updates und Backups

Vaultwarden zu aktualisieren ist dank Docker unkompliziert. Wechsle in das Verzeichnis und hole das neueste Image:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

Datenbank-Migrationen führt Vaultwarden dabei automatisch durch. Sichere dennoch vor jedem Update zur Sicherheit deine Daten.

Für das Backup ist ausschließlich der Ordner vw-data entscheidend: Er enthält die SQLite-Datenbank (db.sqlite3), die RSA-Schlüssel sowie sämtliche Anhänge und Icons. Geht dieser Ordner verloren, sind deine Passwörter unwiederbringlich weg. Sichere ihn daher regelmäßig, z. B. so:

sudo tar czf vaultwarden-backup-$(date +%F).tar.gz /opt/vaultwarden/vw-data



Nächste Schritte nach der Installation

Vaultwarden ist jetzt einsatzbereit. Sinnvolle Ergänzungen sind das Aktivieren der Zwei-Faktor-Authentifizierung in deinem Konto sowie das Einrichten von SMTP für E-Mail-Benachrichtigungen. Für weiterführende Konfigurationen lohnt ein Blick in weitere Docker Anleitungen sowie in das offizielle Vaultwarden-Wiki auf GitHub.