Direkt zum Inhalt

Bitwarden Docker: So hostest du Bitwarden selbst mit Docker

Ein praktischer Leitfaden, wie du deinen eigenen Bitwarden-Passwort-Tresor mit Docker betreibst, von der ersten Server-Einrichtung über die Konfiguration bis hin zu Updates und häufigen Fehlerbehebungen.
Aktualisiert 9. Feb. 2026  · 15 Min. lesen

In diesem Artikel zeige ich dir, wie du Bitwarden mit Docker auf einem neuen Ubuntu-Server installierst, HTTPS mit Let's Encrypt einrichtest und mit häufigen Problemen bei der Einrichtung umgehst.

Wenn du gerade erst mit Docker anfängst, solltest du dich lieber für unseren Einführung in Docker oder Docker für Fortgeschrittene – lerne die Grundlagen, bevor du mehrere Container-Setups verwaltest.

Was ist die Docker-Bereitstellung von Bitwarden?

Bitwarden hat eine offizielle Docker-basierte Installation , mit der du einen Passwort-Manager nach deinen eigenen Vorstellungen nutzen kannst.

Du musst nur ein einziges Installationsskript ausführen. Du musst weder Datenbanken noch Webserver manuell installieren oder Code schreiben. Docker holt sich vorkonfigurierte Container, richtet die Vernetzung zwischen ihnen ein und sorgt dafür, dass alles läuft. Updates funktionieren genauso – einfach das Update-Skript ausführen und Docker kümmert sich um den Rest.

Die Docker-Konfiguration von Bitwarden läuft über mehrere Container, die zusammenarbeiten:. Du bekommst einen Web-Tresor-Container für die Benutzeroberfläche, einen API-Container für die Bearbeitung von Anfragen, einen Datenbank-Container zum Speichern verschlüsselter Tresordaten und unterstützende Dienste für Anhänge und Symbole. Docker Compose sorgt dafür, dass diese Container zusammenarbeiten, damit sie miteinander reden können.

Alles ist schon für dich vorbereitet.

Bei diesem Multi-Container-Ansatz läuft jede Komponente für sich. Wenn du die Datenbank ändern musst, kannst du einfach diesen Container neu starten, ohne die Webschnittstelle anzufassen. Wenn du die Protokolle checken willst, hat jeder Dienst seinen eigenen Protokoll-Stream.

Bei der offiziellen Bereitstellung wird Docker Compose genutzt, um alles über eine einzige Konfigurationsdatei zu verwalten. Dadurch ist das ganze System einfacher zu verstehen und zu warten als eine herkömmliche Serverinstallation.

Was du brauchst, bevor du Bitwarden mit Docker startest

Bevor du Bitwarden nutzen kannst, musst du ein paar Sachen einrichten, aber dafür brauchst du keine teure Hardware oder komplizierte Einstellungen.

Ein Linux-Server oder eine VM ist dein Startpunkt. Ubuntu Server ist echt alles, was du brauchst. Du kannst eine Cloud-Instanz von AWS, DigitalOcean oder Linode nutzen. Eine Basisinstanz mit 2 GB RAM und 20 GB Speicher reicht aus, um Bitwarden für den privaten Gebrauch oder kleine Teams zu nutzen.

Docker und Docker Compose kümmern sich um die eigentliche Installation. Du installierst Docker Engine (nicht Docker Desktop) und Docker Compose als separate Pakete. Die meisten Linux-Distributionen haben beides in ihren Paketmanagern.

Ein Domainname ist nötig, weil Bitwarden HTTPS braucht, um zu funktionieren. Du kannst es nicht über eine IP-Adresse ausführen. Du musst deine Domain auf die IP-Adresse deines Servers zeigen, bevor du mit der Installation loslegen kannst.

Die Ports 80 und 443 müssen auf deinem Server für offen sein. Port 80 kümmert sich um den HTTP-Datenverkehr und die Zertifikatsüberprüfung, während Port 443 den eigentlichen HTTPS-Datenverkehr abwickelt. Richte deine Firewall und die Sicherheitsgruppen deines Cloud-Anbieters so ein, dass eingehende Verbindungen auf beiden Ports erlaubt sind.

Du brauchst auch grundlegende Kenntnisse der Befehlszeile. Du wirst dich per SSH in deinen Server einloggen, Installationsskripte ausführen und Konfigurationsdateien bearbeiten. Wenn du weißt, wie man durch Verzeichnisse navigiert und Befehle mit sudo ausführt, bist du startklar.

Das war's schon! Es gibt natürlich ein paar Dinge, die du wissen musst, aber fast jeder, der ein bisschen technisch versiert ist, kann das machen. Ich zeig dir mal, wie's geht.

So installierst du Bitwarden mit Docker (offizielle Methode)

In dieser Anleitung wird ein DigitalOcean Ubuntu-Droplet Cloudflare für die Domain- und DNS-Verwaltung benutzt. Du kannst natürlich auch andere Anbieter und Dienste nutzen – aber wenn du ohne Stress mitmachen willst, empfehle ich dir, dich für denselben zu entscheiden.

Einrichten deiner Umgebung

Mach erst mal ein DigitalOcean-Droplet mit Ubuntu 24.04 LTS. Das Basic-Droplet für 12 $/Monat (2 GB RAM, 1 CPU, 50 GB SSD) läuft super mit Bitwarden für den privaten Gebrauch oder kleine Teams. Such dir ein Rechenzentrum in deiner Nähe aus, um bessere Reaktionszeiten zu haben. Vergiss nicht, einen vorhandenen SSH-Schlüssel hinzuzufügen oder einen neuen zu erstellen.

Nachdem der Droplet hochgefahren ist, schau dir seine öffentliche IP-Adresse im DigitalOcean-Dashboard an.

Details zum DigitalOcean-Droplet

Details zum DigitalOcean-Droplet

Als Nächstes stellst du DNS in Cloudflare ein. Logge dich in dein Cloudflare-Konto ein und füge einen A-Eintrag hinzu, der deine Domain auf die IP-Adresse des Droplets verweist:

  • Typ: A

  • Name: vault (oder deine bevorzugte Subdomain)

  • IPv4-Adresse: Die IP-Adresse deines Droplets

  • Proxy-Status: Aus (graue Cloud)

Schalte den Proxy von Cloudflare für die Ersteinrichtung aus. Let's Encrypt braucht direkten Zugriff auf deinen Server, um die Domain-Inhaberschaft zu überprüfen. Du kannst den Proxy aktivieren, sobald Bitwarden läuft und die Zertifikate erstellt wurden.

Ich hab für diesen Artikel eine meiner aktiven Domains benutzt:

Cloudflare DNS einrichten

Cloudflare DNS einrichten

Die DNS-Verbreitung dauert ein paar Minuten. Mach diesen shell-Befehl, um zu checken, ob die Änderungen sichtbar sind:

nslookup vault.yourdomain.com

Du solltest die IP-Adresse deines Droplets in der Antwort sehen.

Nslookup-Ergebnisse

Nslookup-Ergebnisse

Du kannst dich jetzt über SSH mit deinem Droplet verbinden:

ssh root@your-droplet-ip

Und schon bist du dabei:

Verbindung zur Ubuntu-Instanz herstellen

Verbindung zur Ubuntu-Instanz herstellen

Okay, als Erstes müssen wir die Systempakete aktualisieren. Mach mal den folgenden Befehl:

apt update && apt upgrade -y

Jetzt kannst du Docker und Bitwarden installieren.

Wie schon gesagt, brauchst du sowohl Docker als auch Docker Compose. Führ diese Befehle aus, um sie zu installieren:

sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable docker
sudo systemctl start docker

Und jetzt check mal die Installation:

docker --version
docker compose version

Du solltest die Versionsnummern für beide Befehle sehen.

Versionen von Docker und Docker Compose

Versionen von Docker und Docker Compose

Als Nächstes zeig ich dir, wie du Bitwarden installierst.

Herunterladen und Vorbereiten des Bitwarden-Installationsprogramms

Der offizielle Installer von Bitwarden ist in ihrem GitHub-Repository gespeichert. Du kannst es direkt auf deinen Server runterladen:

curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" && chmod +x bitwarden.sh

Damit wird das Installationsskript runtergeladen und als ausführbare Datei gespeichert. Das Skript kümmert sich um alles, vom Herunterladen von Docker-Images über das Erstellen von Konfigurationsdateien bis hin zum Einrichten der Verzeichnisstruktur.

Als nächstes musst du ein Verzeichnis anlegen, wo Bitwarden seine Daten speichert:

sudo mkdir /opt/bitwarden

Jetzt kannst du das Installationsskript dorthin verschieben:

sudo mv bitwarden.sh /opt/bitwarden/
cd /opt/bitwarden

Und zum Schluss startest du das Installationsprogramm:

sudo ./bitwarden.sh install

Das Skript erstellt ein Verzeichnis namens „ bwdata “, das alle Konfigurationsdateien, Zertifikate, Protokolle und Datenbankdateien von Bitwarden enthält. Hier ist alles gespeichert, also mach regelmäßig ein Backup von diesem Ordner.

Die Installation starten

Das Installationsprogramm stellt dir ein paar Fragen. Beantworte die Fragen sorgfältig, denn wenn du sie falsch beantwortest, musst du von vorne anfangen.

Gib deinen Domainnamen genau so ein, wie er in deinen DNS-Einträgen steht. Wenn du „ vault.yourdomain.com “ in Cloudflare eingerichtet hast, gib genau diese Zeichenfolge ein. Schreib nicht https:// “ oder Schrägstriche am Ende rein.

Wähle „Let's Encrypt“ für SSL-Zertifikate. Das Installationsprogramm kümmert sich automatisch um die Erstellung und Erneuerung von Zertifikaten. Wenn du den Proxy von Cloudflare (die orangefarbene Cloud) benutzt, musst du ihn während der Ersteinrichtung vielleicht vorübergehend deaktivieren, damit Let's Encrypt deine Domain überprüfen kann.

Gib deine E-Mail-Adresse ein:. Hier kriegst du Erinnerungen zum Ablauf deiner Zertifizierung.

Bitwarden-Installation (1)

Bitwarden-Installation (1)

Bitwarden holt dann die benötigten Docker-Images. Es dauert etwa eine Minute, dann bekommst du eine weitere Runde mit Eingabeaufforderungen.

Such dir einen Namen für die Datenbank aus:. Hier musst du nicht kreativ werden, vault ” funktioniert super.

Bitwarden-Installation (2)

Bitwarden-Installation (2)

Dann wird die Installation fortgesetzt, um weitere Docker-Images herunterzuladen.

Hol dir die Installations-ID und den Schlüssel. Öffne den Bitwarden Host Seite und gib deine Admin-E-Mail-Adresse und Region ein. Du bekommst dann beide Werte – kopiere sie und füge sie ein, wenn du während der Installation dazu aufgefordert wirst.

Bitwarden-Installations-ID und Schlüssel

Bitwarden-Installations-ID und Schlüssel

Und das war's schon – die Installation ist fertig:

Bitwarden-Installation (3)

Bitwarden-Installation (3)

Das Skript erstellt Konfigurationsdateien in den Verzeichnissen „ ./bwdata/config.yml “ und „ ./bwdata/env/global.override.env “. Du kannst diese Dateien direkt bearbeiten, wenn du später Einstellungen ändern musst.

Jetzt musst du nur noch Bitwarden starten:

sudo ./bitwarden.sh start

Docker holt alle benötigten Images und startet die Container. Beim ersten Mal dauert das ein paar Minuten. Das Skript zeigt den Fortschritt an, wenn jeder Container startet.

Bitwarden-Installation (4)

Bitwarden-Installation (4)

Nach ein paar Minuten solltest du die Meldung „ Bitwarden is up and running! “ im Terminal sehen. Das heißt, die Installation hat geklappt und du kannst jetzt mit dem nächsten Abschnitt weitermachen.

Bitwarden-Installation (5)

Bitwarden-Installation (5)

Überprüfen der Installation

Öffne deine Domain in einem Browser. Du solltest die Bitwarden-Anmeldeseite mit einem gültigen HTTPS-Zertifikat sehen.

Bitwarden-Anmeldeseite

Wenn du eine Zertifikatswarnung siehst, konnte Let's Encrypt deine Domain wahrscheinlich nicht überprüfen. Schau mal hier:

  • Deine DNS-Einträge zeigen auf die richtige IP-Adresse.
  • Die Ports 80 und 443 sind in deiner Firewall offen.
  • Wenn du den Proxy von Cloudflare benutzt, versuch mal, ihn vorübergehend auszuschalten.

Klick auf „Konto erstellen“, um deinen ersten Benutzer einzurichten. Dieses Konto wird zum Besitzer deines Tresors, also wähle ein starkes Master-Passwort, das du nicht vergisst. Bitwarden kann dieses Passwort nicht wiederherstellen – wenn du es verlierst, sind deine Tresordaten weg.

Bitwarden-Benutzer erstellen

Bitwarden-Benutzer erstellen

Nachdem du dein Konto erstellt hast, logg dich ein, um zu checken, ob alles funktioniert. Du kannst ein Test-Anmeldeelement erstellen und sicherstellen, dass es richtig gespeichert wird.

Hinzufügen eines Anmeldeelements zu Bitwarden

Hinzufügen eines Anmeldeelements zu Bitwarden

Das klappt wie erwartet, also geh ich jetzt zurück zum Terminal, um zu checken, ob da auch alles gut läuft.

Mach diesen Befehl, um zu checken, ob alle Container laufen:

sudo docker ps

Du solltest mehrere Container mit Namen wie bitwarden-web “, bitwarden-api “, bitwarden-db “ und anderen sehen.

Laufende Container

Laufende Container

Wenn irgendwelche Container als „Restarting“ angezeigt werden oder nicht aufgelistet sind, check die Protokolle mit diesen Befehlen:

sudo docker logs bitwarden-api
sudo docker logs bitwarden-web

Wenn du Probleme beim Starten hast, sind das meistens Port-Konflikte oder Probleme mit den Berechtigungen.

Portkonflikte treten auf, wenn die Ports 80 oder 443 von etwas anderem benutzt werden. Halt einfach den anderen Dienst an oder änder die Ports von Bitwarden in der Datei ./bwdata/config.yml “.

Fehler beim Initialisieren der Datenbank sind meistens auf Probleme mit den Berechtigungen zurückzuführen. Schau mal, ob der Docker-Benutzer ins Verzeichnis „ bwdata schreiben kann:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

Fehler bei der Zertifikatserstellung bedeuten, dass Let's Encrypt deinen Server nicht erreichen konnte. Schau mal, ob deine Domain auf die richtige IP-Adresse zeigt und ob deine Firewall eingehenden Datenverkehr auf den Ports 80 und 443 zulässt.

Wenn Container immer wieder neu starten, check mal den verfügbaren Speicherplatz und Arbeitsspeicher. Bitwarden braucht mindestens 2 GB RAM, um alle seine Dienste laufen zu lassen.

HTTPS und Zertifikate einrichten

Bitwarden braucht HTTPS für alle Verbindungen. Es gibt keine Möglichkeit, es über einfaches HTTP laufen zu lassen.

Die Browser-Erweiterungen und mobilen Apps von Bitwarden verbinden sich nicht mit HTTP-Endpunkten. Das Protokoll selbst braucht verschlüsselte Verbindungen, um deine Daten im Tresor während der Übertragung zu schützen.

Das Installationsskript richtet Let's Encrypt-Zertifikate ein. Let's Encrypt ist 'ne kostenlose Zertifizierungsstelle, die SSL/TLS-Zertifikate ausstellt und sich um Verlängerungen kümmert. Als du bei der Installation deine Domain eingegeben hast, hat das Skript die automatische Zertifikatserstellung über das ACME-Protokoll von Let's Encrypt eingerichtet.

Zertifikate laufen nach 90 Tagen ab, aber die Docker-Einrichtung von Bitwarden hat eine automatische Verlängerung. Ein Cron-Job checkt, ob Zertifikate bald ablaufen, und erneuert sie, bevor sie ablaufen. Du musst nichts manuell machen.

Benutzerdefinierte Zertifikate sind in einigen Situationen sinnvoll. Wenn du Bitwarden hinter einem Reverse-Proxy laufen lässt, der schon SSL-Terminierung macht, kannst du Let's Encrypt deaktivieren und den Proxy die Zertifikate verwalten lassen. Wenn deine Organisation eine interne Zertifizierungsstelle hat, kannst du Bitwarden so einrichten, dass es stattdessen diese Zertifikate nutzt.

Um eigene Zertifikate zu nutzen, schau mal in die Datei ./bwdata/config.yml rein und setz ssl_certificate_path “ und ssl_key_path “ auf deine Zertifikatsdateien.

Benutzerdefinierte Zertifikate für Docker Bitwarden verwenden

Benutzerdefinierte Zertifikate verwenden

Starte Bitwarden dann neu:

sudo ./bitwarden.sh restart

Wenn die Zertifikatserneuerung nicht klappt, solltest du erst mal die Protokolle checken:

sudo docker logs bitwarden-nginx

Häufige Probleme bei der Verlängerung treten auf, wenn:

  • Die DNS deiner Domain hat sich geändert und zeigt jetzt nicht mehr auf den Server.
  • Der Proxy von Cloudflare ist aktiviert (die orangefarbene Cloud) und blockiert die Überprüfung von Let's Encrypt.
  • Port 80 ist gesperrt, sodass ACME-Challenges nicht abgeschlossen werden können.
  • Die Zertifikatsdateien haben falsche Berechtigungen.

Mach das eigentliche Problem fertig und starte dann die Verlängerung von Hand:

sudo docker exec bitwarden-nginx certbot renew

Wenn das klappt, sollte der Cron-Job für die automatische Verlängerung bei zukünftigen Versuchen funktionieren.

E-Mail (SMTP)-Einstellungen

Bitwarden braucht eine E-Mail-Adresse, um Einladungen an Benutzer, Links zum Zurücksetzen von Passwörtern und Codes für die Zwei-Faktor-Authentifizierung zu verschicken.

Ohne SMTP können die Leute ihre Passwörter nicht zurücksetzen. Du kannst keine Teammitglieder in deine Organisation einladen. Notfallzugriffsanfragen funktionieren nicht. Das System funktioniert, aber du verlierst wichtige Funktionen zur Kontowiederherstellung und Benutzerverwaltung.

Die SMTP-Einstellungen findest du unter ./bwdata/env/global.override.env “.

SMTP-Einstellungsdatei Docker Bitwarden

SMTP-Einstellungsdatei

Öffne diese Datei und füge die Einstellungen deines E-Mail-Anbieters hinzu:

globalSettings__mail__replyToEmail=no-reply@yourdomain.com
globalSettings__mail__smtp__host=smtp.gmail.com
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__username=your-email@gmail.com
globalSettings__mail__smtp__password=your-app-password

Das Format benutzt doppelte Unterstriche, um verschachtelte Konfigurationen darzustellen. Jedes __ “ trennt eine Ebene in der Hierarchie der Einstellungen.

Vergiss nicht, Bitwarden nach dem Bearbeiten der Datei neu zu starten:

sudo ./bitwarden.sh restart

Probier mal, ob die E-Mails ankommen, indem du ein neues Passwort anforderst oder über das Admin-Panel eine Test-E-Mail schickst.

Hier sind ein paar häufige SMTP-Fehler, die du vermeiden solltest:

  • Du benutzt dein normales E-Mail-Passwort anstelle eines Passworts nur für die App. Die meisten Anbieter verlangen, dass du ein spezielles Passwort für den SMTP-Zugang erstellst. Gmail nennt das „App-Passwörter“, und du kannst sie in den Sicherheitseinstellungen deines Google-Kontos erstellen.

  • Falsche Portnummern. Port 587 kümmert sich um STARTTLS-Verbindungen, Port 465 um SSL/TLS und Port 25 wird normalerweise von Cloud-Anbietern gesperrt. Wenn ein Anschluss nicht klappt, probier einfach einen anderen.

  • SSL/TLS-Verwirrung. Stell „ ssl=false “ für STARTTLS auf Port 587 oder „ ssl=true “ für direktes SSL auf Port 465 ein. Wenn du diese Einstellungen mischst, kommt es zu Verbindungsproblemen.

  • Firewall blockiert ausgehende SMTP-. Einige Cloud-Anbieter sperren standardmäßig den ausgehenden Port 25. Benutz stattdessen die Ports 587 oder 465, die fast nie gesperrt sind.

Wenn E-Mails nicht verschickt werden, check mal die API-Container-Protokolle:

sudo docker logs bitwarden-api

Such nach SMTP-Verbindungsfehlern oder Authentifizierungsfehlern. Die Protokolle zeigen genau, was bei der E-Mail-Zustellung schiefgelaufen ist.

Bitwarden aktualisieren und sichern

Bei einer selbst gehosteten Installation muss man sich mit manuellen Backups und Updates rumschlagen. Zum Glück sind die ganz einfach zu machen.

Bitwarden aktualisieren

Bevor du das Update machst, schließ Bitwarden und mach ein Backup deiner Daten. Updates können schiefgehen oder Probleme verursachen, und du brauchst eine Möglichkeit, sie rückgängig zu machen, wenn was schiefgeht.

cd /opt/bitwarden
sudo ./bitwarden.sh stop

Mach 'ne Sicherungskopie vom ganzen Verzeichnis „ bwdata “:

sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/

Speicher diese Sicherung an einem sicheren Ort, zum Beispiel auf einer externen Festplatte oder einem anderen Server.

Jetzt kannst du Bitwarden mit diesem Befehl aktualisieren:

sudo ./bitwarden.sh update

Das Update-Skript holt die neuesten Docker-Images, aktualisiert die Konfigurationsdateien, wenn nötig, und startet alle Container neu. Das dauert normalerweise ein paar Minuten.

Bitwarden aktualisieren

Bitwarden aktualisieren

Wenn das Update fertig ist, check einfach, ob alles klappt, indem du dich in deinen Web-Tresor einloggst und sicherstellst, dass deine Daten noch da sind.

Wenn das Update irgendwas kaputt macht, stell einfach dein Backup wieder her:

sudo ./bitwarden.sh stop
sudo rm -rf bwdata/
sudo tar -xzf bitwarden-backup-YYYYMMDD.tar.gz
sudo ./bitwarden.sh start

Sicherungen

Das Verzeichnis „ bwdata “ hat alles, was Bitwarden zum Laufen braucht. Du solltest regelmäßig Backups machen.

Dieses Verzeichnis enthält:

  • Deine Tresor-Datenbank mit allen verschlüsselten Passwörtern
  • SSL-Zertifikate
  • Konfigurationsdateien
  • Protokolle und Anhänge
  • Docker Compose-Definitionen

Beende Bitwarden vor dem Backup, um sicherzustellen, dass die Daten konsistent sind:

sudo ./bitwarden.sh stop
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/
sudo ./bitwarden.sh start

Speichere Backups an mehreren Orten. Speichere eine Kopie auf dem Server, eine auf einem anderen Rechner und, wenn möglich, eine im Cloud-Speicher.

Um die Sicherung wiederherzustellen, schließ Bitwarden, lösche das aktuelle Verzeichnis „ bwdata “, entpacke deine Sicherung und starte das Programm neu. Der Vorgang ist derselbe wie beim Zurücksetzen nach einem fehlgeschlagenen Update.

Du kannst Backups sogar mit einem Cron-Job automatisieren, der täglich oder wöchentlich läuft, je nachdem, wie oft sich deine Tresordaten ändern.

Häufige Probleme beim Ausführen von Bitwarden in Docker

Selbst bei einer sauberen Installation kann es zu Problemen kommen. Hier erfährst du, wie du die häufigsten Probleme diagnostizieren kannst.

Portkonflikte treten auf, wenn ein anderer Dienst bereits die Ports 80 oder 443 nutzt. Schau mal, was diese Ports benutzt:

sudo netstat -tlnp | grep ':80\\|:443'

Wenn du Apache, Nginx oder einen anderen Webserver laufen siehst, musst du entweder diesen Dienst stoppen oder die Ports von Bitwarden ändern. Um die Ports zu ändern, schau mal in die Datei „ ./bwdata/config.yml “ rein und setz „ http_port “ und „ https_port “ auf andere Werte, wie zum Beispiel 8080 und 8443. Dann neu starten:

sudo ./bitwarden.sh restart

Zertifikatsfehler zeigen sich als Browserwarnungen oder dadurch, dass Bitwarden nicht starten will. Schau dir die Protokolle des Nginx-Containers mit diesem Befehl an:

sudo docker logs bitwarden-nginx

Such nach ACME-Challenge-Fehlern oder Zertifikatsvalidierungsfehlern. Hier sind die häufigsten Gründe:

  • DNS zeigt noch nicht auf deinen Server.
  • Der Cloudflare-Proxy blockiert die Let's Encrypt-Überprüfung.
  • Port 80 ist von deiner Firewall blockiert.
  • Die Domain in deiner Konfiguration passt nicht zu deinen DNS-Einträgen.

Mach das DNS- oder Firewall-Problem fertig und hol dir dann die Zertifikate manuell:

sudo docker exec bitwarden-nginx certbot renew --force-renewal

Wenn Container nicht starten, liegt das meistens an Datenbankproblemen oder fehlenden Dateien. Schau mal, welche Container gerade laufen, indem du das hier ausführst:

sudo docker ps -a

Container mit dem Status „Beendet“ oder „Neustart“ haben Probleme. Schaut mal in ihre Protokolle rein:

sudo docker logs bitwarden-db
sudo docker logs bitwarden-api

Fehler beim Initialisieren der Datenbank bedeuten, dass es Probleme mit den Berechtigungen für das Verzeichnis „ bwdata “ gibt. Berechtigungen reparieren:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

Wenn die Container immer noch nicht starten, check mal den Speicherplatz:

df -h

Denk dran, dass Bitwarden mindestens ein paar GB freien Speicherplatz braucht, um richtig zu funktionieren.

Wenn SMTP nicht klappt, geht das Zurücksetzen von Passwörtern und das Verschicken von Einladungen an Benutzer nicht. Teste zuerst deine SMTP-Einstellungen, indem du die API-Protokolle checkst, wenn du versuchst, eine E-Mail zu verschicken:

sudo docker logs -f bitwarden-api

Versuche, das Passwort zurückzusetzen, und schau in den Protokollen nach SMTP-Fehlern. Hier sind die häufigsten Probleme:

  • Falscher Benutzername oder falsches Passwort (benutze app-spezifische Passwörter, nicht dein normales Passwort)
  • Falscher Port oder falsche SSL-Einstellungen
  • Firewall blockiert ausgehende SMTP-Verbindungen
  • E-Mail-Anbieter, der zusätzliche Schritte zur Authentifizierung verlangt

Du kannst überprüfen, ob deine SMTP-Einstellungen in „ ./bwdata/env/global.override.env “ genau mit den Angaben in der Dokumentation deines Providers übereinstimmen. Schon kleine Tippfehler im Hostnamen oder Port können die E-Mail-Zustellung kaputt machen.

Nachdem du die SMTP-Einstellungen geändert hast, starte Bitwarden neu und probier's nochmal.

Bitwarden vs. Vaultwarden (die Wahl der Docker-Nutzer)

Vaultwarden ist eine inoffizielle, von der Community gepflegte Version des Bitwarden-Servers, die in Rust geschrieben ist.

Es ist nicht mit Bitwarden Inc. verbunden, aber mit allen offiziellen Bitwarden-Clients kompatibel. Du benutzt dieselben Browser-Erweiterungen, mobilen Apps und Desktop-Anwendungen. Der Unterschied liegt komplett auf der Serverseite.

Warum Leute sich für Vaultwarden entscheiden

  • Geringerer Ressourcenverbrauch. Vaultwarden läuft auf einem einzigen schlanken Container, der weniger als 100 MB RAM braucht. Das offizielle Bitwarden nutzt mehrere Container und braucht mindestens 2 GB. Wenn du auf einem kleinen VPS oder Raspberry Pi arbeitest, ist Vaultwarden die bessere Wahl.
  • Einfacheres Setup-. Ein Behälter heißt weniger bewegliche Teile. Kein separater Datenbankcontainer, kein separater Webcontainer. Du ziehst ein Image, richtest einen Container ein, und das war's schon.
  • Einige Premium-Funktionen funktionieren auch ohne kostenpflichtige Lizenz. Vaultwarden bietet Funktionen wie Dateianhänge und Notfallzugriff, für die man bei Bitwarden ein Premium-Abo braucht.

Kompromisse mit Vaultwarden

  • Es ist ein Gemeinschaftsprojekt. Die Updates kommen von Freiwilligen, nicht von einer Firma mit eigenem Support-Team.
  • Keine offizielle Support-. Bitwarden Inc. kann dir bei Problemen mit Vaultwarden nicht helfen. Bei Community-Foren und GitHub-Issues bist du auf dich allein gestellt.
  • Mögliche Kompatibilitätsprobleme. Wenn Bitwarden neue Funktionen rausbringt, muss Vaultwarden nachziehen. Es dauert meistens eine Weile, bis neue Funktionen funktionieren.

Welches solltest du verwenden?

Nimm das offizielle Bitwarden, wenn du Support für Unternehmen, garantierte Kompatibilität mit allen Funktionen und Unterstützung vom Hersteller der Clients willst. Die Ressourcenanforderungen sind weniger wichtig, wenn du einen VPS mit ausreichender Größe nutzt.

Entscheide dich für Vaultwarden, wenn du mit eingeschränkter Hardware arbeitest, eine einfachere Einrichtung willst oder Premium-Funktionen ohne Kosten benötigst. Versteh einfach, dass du offiziellen Support gegen Ressourceneffizienz eintauschst.

Beide funktionieren super für Selbsthosting und schützen deine Passwörter mit derselben Verschlüsselung, die die Kunden erwarten.

Grundlegende Sicherheitsempfehlungen

Es ist klar, dass Bitwarden deine Passwörter speichert, also brauchst du mehr als nur Verschlüsselung zum Schutz. Hier sind ein paar bewährte Vorgehensweisen, die du beachten solltest.

Halte deinen Server auf dem neuesten Stand. Sicherheitspatches sind wichtig, also mach regelmäßig Updates. Hier ist ein Befehl dafür:

sudo apt update && sudo apt upgrade -y

Du kannst automatische Sicherheitsupdates einrichten, damit wichtige Patches ohne manuelles Eingreifen installiert werden. Installiere unter Ubuntu „ unattended-upgrades “:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Schränke den Zugriff auf das Admin-Panel ein. Die Admin-Oberfläche von Bitwarden ist unter /admin zu finden und braucht ein eigenes Admin-Token für die Anmeldung. Erstelle bei der Installation ein starkes Token und bewahre es an einem sicheren Ort auf. Mach das Admin-Panel nicht öffentlich im Internet zugänglich, wenn du das irgendwie vermeiden kannst.

Wenn du Fernzugriff für die Verwaltung brauchst, nutze lieber SSH-Tunneling oder ein VPN, statt /admin öffentlich zugänglich zu lassen.

Benutze überall HTTPS. Deaktivier niemals HTTPS und ignorier keine Zertifikatswarnungen. Wenn deine Zertifikate nicht funktionieren, bring sie in Ordnung, anstatt das Problem zu umgehen. Bitwarden-Clients lehnen aus gutem Grund eine Verbindung über HTTP ab.

Behalte die Veröffentlichungen von Bitwarden im Auge. Abonniere die GitHub-Veröffentlichungen von Bitwarden oder schau in ihrem Blog nach Sicherheitsupdates. Wenn eine neue Version rauskommt, check die Release Notes, bevor du updatest, um zu sehen, was sich geändert hat.

Aktiviere die Zwei-Faktor-Authentifizierung für dein Tresorkonto. Selbst wenn jemand dein Master-Passwort klaut, verhindert 2FA den unbefugten Zugriff. Benutze eine Authentifizierungs-App oder einen Hardware-Schlüssel.

Benutze eine Firewall. Nur zur Info, so kannst du UFW so einrichten, dass nur die wichtigen Ports offen sind:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Blockier alles andere standardmäßig.

Schau ab und zu mal in den Protokollen unter nach, ob irgendwas komisches passiert ist. Achte auf fehlgeschlagene Anmeldeversuche oder unerwartete API-Aufrufe:

sudo docker logs bitwarden-api | grep -i "failed\\|error"

Wie du siehst, musst du bei einem selbst gehosteten Bitwarden ab und zu ein bisschen was machen. Das ist der Preis für die volle Kontrolle.

Fazit

Mit Docker ist es echt einfach, Bitwarden selbst zu hosten, und du brauchst keine große Infrastruktur.

Das offizielle Installationsskript erledigt alles für dich. Du bekommst automatische Updates, Zertifikatsverwaltung und einen funktionierenden Tresor in weniger als einer Stunde – ich habe ungefähr 15 Minuten gebraucht, um alles einzurichten, einschließlich der Bereitstellung der Recheninstanz und der DNS-Einrichtung. Die meisten Leute brauchen nie mehr als das, was ich in diesem Artikel erklärt habe.

Fang mit der Grundkonfiguration auf einem einzelnen Server an. Mach dich mit Backups, Updates und grundlegender Fehlerbehebung vertraut, bevor du Reverse-Proxys, externe Datenbanken oder Hochverfügbarkeitskonfigurationen hinzufügst. Diese fortgeschrittenen Einstellungen lösen Probleme, die du wahrscheinlich noch gar nicht hast.

Wenn du deine Passwörter nicht Dritten anvertrauen willst, ist das die richtige Lösung. Aber es ist auch wichtig, die Einrichtung nicht zu kompliziert zu machen und nichts kaputt zu machen. Mach die offizielle Docker-Bereitstellung, sichere sie regelmäßig, und schon hast du einen zuverlässigen Passwort-Manager, den du selbst kontrollierst.

Bist du bereit, mehr über Docker zu erfahren? Fang mit unseren Kurs „Containerisierung und Virtualisierung – Grundlagen” und schau dir dann die praktische Anwendung mit Docker und Kubernetes.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist mit Sitz in Kroatien. Top Tech Writer mit über 700 veröffentlichten Artikeln, die mehr als 10 Millionen Mal aufgerufen wurden. Buchautor von Machine Learning Automation with TPOT.

Häufig gestellte Fragen

Wie kann ich eine hohe Verfügbarkeit für meine selbst gehostete Bitwarden-Instanz sicherstellen?

Für hohe Verfügbarkeit musst du mehrere Bitwarden-Instanzen hinter einem Load Balancer mit einer gemeinsamen externen Datenbank wie PostgreSQL oder MySQL laufen lassen. Du musst jede Instanz so einrichten, dass sie sich mit derselben Datenbank verbindet und einen gemeinsamen Speicher für Anhänge nutzt. Für die meisten privaten und kleinen Team-Installationen reichen regelmäßige Backups und ein dokumentierter Wiederherstellungsprozess aus, ohne dass man sich mit einer komplizierten HA-Architektur beschäftigen muss.

Was sind die besten Methoden, um SMTP in Bitwarden einzurichten?

Benutz app-spezifische Passwörter statt deines normalen E-Mail-Passworts und check, ob deine SMTP-Einstellungen genau mit den Angaben deines Providers übereinstimmen. Probier nach der Konfiguration immer die E-Mail-Zustellung aus, indem du eine Passwortzurücksetzung machst oder die Testfunktion im Admin-Panel nutzt. Speichere die SMTP-Anmeldedaten sicher in der Datei „ global.override.env “ und schränke die Dateiberechtigungen ein, um unbefugten Zugriff zu verhindern.

Wie behebe ich einen 502 Bad Gateway-Fehler in Bitwarden?

Überprüfe, ob alle Container mit „ sudo docker ps “ laufen, und schau nach, ob welche im Status „Restarting“ sind. Schau dir die Protokolle von nginx und API-Container mit sudo docker logs bitwarden-nginx und sudo docker logs bitwarden-api an, um den fehlerhaften Dienst zu finden. Häufige Gründe sind, dass der API-Container wegen Datenbankverbindungsproblemen nicht startet, nicht genug Speicher da ist oder Zertifikatsprobleme den Reverse-Proxy blockieren.

Kann ich mit Bitwarden eigene Server-Ports nutzen?

Ja, schau mal in die Datei „ ./bwdata/config.yml “ rein und ändere „ http_port “ und „ https_port “ auf die Werte, die du bevorzugst, wie zum Beispiel 8080 und 8443. Nach dem Portwechsel startest du Bitwarden mit „ sudo ./bitwarden.sh restart “ neu. Denk dran, dass du bei der Verwendung von nicht standardmäßigen Ports die Portnummer in deine Domain-URL einfügen musst, wenn du auf den Tresor zugreifst.

Wie schalte ich die Protokollierung in syslog bei Bitwarden frei?

Die Docker-Container von Bitwarden protokollieren standardmäßig in stdout/stderr, was von Docker automatisch erfasst wird. Du kannst diese Protokolle an syslog weiterleiten, indem du den Protokollierungstreiber von Docker in den Containereinstellungen konfigurierst oder ein Protokollaggregationstool wie Fluentd oder Logstash verwendest. Für eine einfache Syslog-Integration kannst du den Syslog-Logging-Treiber von Docker nutzen, indem du „ --log-driver=syslog “ zu deiner Container-Konfiguration hinzufügst. Dafür musst du allerdings die Docker-Compose-Datei manuell ändern.

Themen

Lerne Docker mit DataCamp

Kurs

Einführung in Docker

4 Std.
42.1K
Dieser Einführungskurs stellt dir Docker als wichtiges Tool für Datenprofis vor und erläutert Container, Images und mehr in Docker.
Details anzeigenRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Blog

Die 50 wichtigsten AWS-Interviewfragen und Antworten für 2026

Ein kompletter Leitfaden, um die grundlegenden, mittleren und fortgeschrittenen AWS-Interviewfragen zu checken, zusammen mit Fragen, die auf echten Situationen basieren.
Zoumana Keita 's photo

Zoumana Keita

15 Min.

Blog

Lehrer/innen und Schüler/innen erhalten das Premium DataCamp kostenlos für ihre gesamte akademische Laufbahn

Keine Hacks, keine Tricks. Schüler/innen und Lehrer/innen, lest weiter, um zu erfahren, wie ihr die Datenerziehung, die euch zusteht, kostenlos bekommen könnt.
Nathaniel Taylor-Leach's photo

Nathaniel Taylor-Leach

4 Min.

Tutorial

Ein Leitfaden zu Python-Hashmaps

Finde heraus, was Hashmaps sind und wie sie in Python mit Hilfe von Wörterbüchern umgesetzt werden.
Javier Canales Luna's photo

Javier Canales Luna

Tutorial

30 coole Python-Tricks für besseren Code mit Beispielen

Wir haben 30 coole Python-Tricks zusammengestellt, mit denen du deinen Code verbessern und deine Python-Kenntnisse ausbauen kannst.
Kurtis Pykes 's photo

Kurtis Pykes

Tutorial

Python JSON-Daten: Ein Leitfaden mit Beispielen

Lerne, wie man mit JSON in Python arbeitet, einschließlich Serialisierung, Deserialisierung, Formatierung, Leistungsoptimierung, Umgang mit APIs und Verständnis der Einschränkungen und Alternativen von JSON.
Moez Ali's photo

Moez Ali

Tutorial

Python Switch Case Statement: Ein Leitfaden für Anfänger

Erforsche Pythons match-case: eine Anleitung zu seiner Syntax, Anwendungen in Data Science und ML sowie eine vergleichende Analyse mit dem traditionellen switch-case.
Matt Crabtree's photo

Matt Crabtree

Mehr anzeigenMehr anzeigen