Bitwarden ist ein Online Passwort Dienst, den ihr selbst hosten könnt. Dies hat für euch den Vorteil, dass ihr genau wisst, wo eure Daten gespeichert sind.
Nun zeige ich euch, wie ihr dies in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
Wer Traefik noch nicht installiert hat, findet hier eine Anleitung, wie ihr dies schnell tun könnt.
Als Grundlage meiner Anleitung dient diese Anleitung von Bitwarden_rs. Bitwarden_rs wurde vor kurzem in Vaultwarden umbenannt. Weitere Infos dazu findet ihr hier.
Bitwarden rs ist kein offizielles Bitwarden sondern eine für Docker angepasste Version. Mehr Infos dazu hier.
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/bitwarden/data
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an
cd /opt/containers/bitwarden/ nano docker-compose.yml
version: '3' services: bitwarden: image: vaultwarden/server:latest restart: unless-stopped volumes: - /opt/containers/bitwarden/data:/data labels: - "traefik.enable=true" - "traefik.http.routers.bitwarden.entrypoints=http" - "traefik.http.routers.bitwarden.rule=Host(`bitwarden.euredomain.de`)" ## Hier anpassen ## - "traefik.http.middlewares.bitwarden-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.bitwarden.middlewares=bitwarden-https-redirect" - "traefik.http.routers.bitwarden-secure.entrypoints=https" - "traefik.http.routers.bitwarden-secure.rule=Host(`bitwarden.euredomain.de`)" ## Hier anpassen ## - "traefik.http.routers.bitwarden-secure.tls=true" - "traefik.http.routers.bitwarden-secure.tls.certresolver=http" - "traefik.http.routers.bitwarden-secure.service=bitwarden" - "traefik.http.services.bitwarden.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.bitwarden-secure.middlewares=secHeaders@file" networks: - proxy networks: proxy: external: true
Notwendige Anpassungen:
- 2x eure Domain bei Traefik anpassen (“bitwarden.euredomain.de”)
Diese Docker Compose Datei funktioniert nur, wenn ich euch mittels meiner Anleitung hier Traefik installiert habt. Sonst heißen einige Traefik Variablen wohl anders. Diese müsst ihr dann dementsprechend bei euch anpassen.
3. Bitwarden Server starten
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker-compose -f /opt/containers/bitwarden/docker-compose.yml up -d
4. Quellen
https://hub.docker.com/r/bitwarden/server
https://hub.docker.com/r/vaultwarden/server
Bei 3. ist ein Tippfehler oder C+P fehler drinn:
richtig ist
Der Bindestrich muss weg
Hi,
ich versuch grad bitwarden auf “(Host(`meine-domain.de`) && PathPrefix(`/bitwarden`))” zum laufen zu bekommen aber es kommt nur:
404: Not Found
The requested resource could not be found.
Rocket
wenn ich auf https://meine-domain.de/bitwarden gehe
Mach ich was falsch? hab ich was vergessen?
Hallo Christian,
Nachdem ich deine super Anleitung umgesetzt habe, bekomme ich wenn ich die Subdomain aufrufe einen 404 Fehler. Woran könnte das liegen?
VG
Marvin
Hallo Christian,
vielen Dank für die Mühe und gigantische Zeit, die Du investierst, um Leuten zu helfen.
Ich finde deine Anleitungen super und gut verständlich.
Begonnen habe ich mit deinen Anleitungen zum Thema Traefik, hat super funktioniert, danach habe ich auch die Security-Anpassungen vorgenommen, nun bin ich auch bei A+ 🙂
Dann habe ich mich an die Bitwarden Anleitung gewagt und diese bekomme ich nicht hin.
D.h. alles hat funktioniert, der Container wird installiert, die Zertifikate werden erstellt, mache ich auf der Domain den SSL Server Test, bekomme ich auch ein A. D.h. alles sieht gut aus, rufe ich aber meine URL auf, bekomme ich ein “Gateway Timeout”, hast Du einen Tipp für mich?
Beste Grüße
Frank
Hallo Christian
Um es noch mal für Alle klar zu sagen:
Diese Anleitung installiert keinen Bitwarden-Server, sondern Bitwarden RS https://github.com/dani-garcia/bitwarden_rs/.
Der Link am Anfang des Artikels zeigt auf die Original-Bitwarden-Doku.
Die installierte Software meldet sich dann sogar mit “© 2021, Bitwarden Inc.”
Das ist schon maximal verwirrend!!
Man vertraut seine Daten also Dani Garcia an, und nicht Bitwarden Inc.
Das solltest DU auf jeden Fall klarstellen.
Grüße
M
mahlzeit!
an die leute mit dem middleware „secHeaders@file“ does not exist fehler: ihr müßt nicht nur den ssl test durch führen sondern das komplette workaround dann ist der fehler weg und alles läuft wie es soll.
soweit ich weiß gibt es keinerlei funktionalen unterschied zwischen bitwarden_rs und dem orig bitwarden. die einzigen unterschiede sind das ihr keine extra datenbank benötigt und dass das ganze dadurch ressourcen schonender ist das wars dann auch schon. das admin panel bietet übrigens auch die funktion des sperrens der möglichkeit neue accounts zu erstellen.
Hi,
danke für den Artikel für den Einstieg ins Thema! Hast du bereits die WebSocket connection per Traefik realisiert? Das wäre für unser Team wichtig – ggf. muss ich mich noch damit beschäftigen.
Wer es benötigt mit folgenden Zeilen in der Service-Definition kann der Service ohne root Berechtigungen laufen (999999 muss natürlich mit den eigenen Nummern ersetzt werden). Auch die SMTP Konfiguration war bei mir zwingend.
“`
…
env_file: ../.env
user: ${PUID:-999999}:${PGID:-999999}
sysctls:
– net.ipv4.ip_unprivileged_port_start=0
volumes:
– ./bitwarden/data:/data
– /etc/localtime:/etc/localtime:ro
– /etc/timezone:/etc/timezone:ro
…
environment:
# – WEBSOCKET_ENABLED=true
– DOMAIN=http://benoetigt.fuer.die.email.local
– SIGNUPS_ALLOWED=true
– SMTP_HOST=${SMTP_HOST}
– SMTP_FROM=${MAIL_FROM_ADDRESS}
– SMTP_PORT=${SMTP_PORT}
– SMTP_SSL=true
– SMTP_USERNAME=${SMTP_NAME}
– SMTP_PASSWORD=${SMTP_PASSWORD}
…
“`
Hallo Christian,
kannst du mir sagen wie ich das updaten kann
Diagnostics Version
Server Installed Ok 1.18.0
Server Latest 1.18.0
Web Installed Update 2.17.1 <—-
Web Latest 2.18.1
Weißt Du wie das geht?
Vielen Dank vorab, viele Grüße
Oliver
hallo Christian
ich habe Traefik und bitwarden gemäss Deinen Angaben installiert. Traefik und Portainer laufen klaglos.
Nur bitwarden zeigt in Traefik einen Error:
Name: bitwarden-secure@docker
error: middleware “secHeaders@file” does not exist
Was für einen Fehler meint Traefik damit?, resp. was kann ich machen?
Ähhhm eine Frage:
Wenn man deine Anleitung genauso umsetzt, dann kann sich ja jeder auf z.B. bitwarden.meinserver.de einen account anlegen? ist das so richtig?
Wenn ja, wie schützt man sich davor?
VG Hardy
Hallo Christian,
vielen Dank für die tollen Anleitungen! Alles topaktuell und es hat mir sehr weitergeholfen!
Ich versuche nun, aus Ermangelung einer subdomain die Anwendung mit subdirectory zum Laufen zu bekommen.. also anstatt bitwarden.meinedomain.de meinedomain.de/bitwarden
Weißt Du wie das geht?
Vielen Dank vorab, viele Grüße
Stefan
Hallo,
vielen dank erstmal für die Anleitung. Ist leicht nachgestellt.
Paar Fragen habe ich jedoch zu der Konfiguration:
1. Kann ich das offizielle Bitwarden Image auch nutzen? Da ich bei RS einige Funktionen vermisse.
2. Kann ich den Standard Port von Bitwarden in der Docker-Compose direkt beim installieren ändern?
Hi Christian,
vorab dein Blog ist klasse, der hat mir sehr geholfen.
aber zu dem bitwardenrs hier hab ich eine frage.
das ist doch nur das webfrontend in rust (not official)… wie flunche ich denn da das richtige bitwarden ran ?
das ist eine container composition aus vielen microservicen:
installier bar hierrueber:
https://github.com/bitwarden/server/blob/master/scripts/bitwarden.sh
gruesse
Matthias
ps
ich habs nun hinbekommen dort traefik als reverse zu nehmen. (ich hab die tage mein ganzes homelab von nginx/certbot (old but gold – es hat funktioniert) zu traefik migriert, so bin ich auf deinen blog hier aufmerksam geworden.