Vaultwarden ist jetzt schon sehr lange in aller Munde und wird immer immer beliebter. Dabei ist für die es nicht wissen, Vaultwarden die kostenlose Vollversion von dem Original Bitwarden. Natürlich ist das nicht direkt vom Hersteller, sondern von einer außenstehenden Person die das komplett geforkt hat. Aber keine Sorge, es ist genauso Sicher und Stabil wie das Original. Ich würde wetten auf dem Markt findet man 90% Vaultwarden und 10% Bitwarden. Und das alles natürlich Selfhosted. Wie das geht auf dem Raspberry Pi zeige ich euch hier.

Alle Informationen zum Vaultwarden Projekt findet Ihr zusätzlich auf der GitHub Seite. Github Seite

Bestseller Nr. 1
Raspberry Pi 5 8 GB
  • Quad-Core-ARMA76-Prozessor (64-Bit – 2,4 GHz) °Integrierte VideoCore VII 800 MHz GPU °2- bis 3-mal mehr Leistung als Version 4
  • Deutlich verbesserte Grafikwiedergabe ° Hochgeschwindigkeits-Micro-SD ° 2x 4K-60 fps gleichzeitig anzeigen
  • 2x USB 3.0 5GBps ° 2x 4-Wege-MIPI-DSI/CSI-Anschlüsse
Bestseller Nr. 2
Raspberry Pi 5 8GB Starter-Kit | 128GB microSD | Offizielles 27W Netzteil | Offizielles Gehäuse mit Lüfter | 4K Micro HDMI Kabel 1m | Alu-Kühlkörper
  • ✔ Raspberry Pi 5 mit 8GB RAM: Leistungsstarker Einplatinencomputer für vielseitige Projekte und Anwendungen.
  • ✔ Offizielles 27W Netzteil: Stabile und zuverlässige Stromversorgung für Ihren Raspberry Pi 5.
  • ✔ Offizielles Gehäuse mit Lüfter: Schützt Ihren Raspberry Pi und sorgt für optimale Kühlung bei intensiver Nutzung.

Vaultwarden Installationsanleitung auf dem Raspberry Pi

Als erstes sollte man das System auf den aktuellsten Stand der Dinge bringen und Docker als unsere Grundlage installieren. Die Docker Umgebung kann man dann auch sehr gerne noch für weitere Container nutzen. Z.B. für ein Pi-Hole wer möchte. Anleitung findet Ihr hier.

System Updaten & Docker installieren

# System Updaten und aufräumen
sudo apt update && apt upgrade -y && apt autoclean

#Docker Installieren
sudo apt install docker.io -y

#Docker bei jedem Start ausführen
sudo systemctl enable --now docker

#Zu guter Letzt gib dem Benutzer Pi Docker Berechtigungen
sudo usermod -aG docker pi

System vorbereiten für den Container

## Ordner anlegen für die Konfiguration und die Daten
mkdir /home/pi/vaultwarden_data

Vaultwarden Container erstellen

docker run -d -it --name bitwarden \
  -e ADMIN_TOKEN=Ein_Schweres_Passwort_fuer_den_Adminzugang \
  -v /home/pi/vaultwarden_data:/data/ \
  -p 8555:80 \
  -p 3012:3012 \
  --restart=always \
  vaultwarden/server:latest

Ich habe erstmal den Port 80 auf den Port 8555 gemappt. Somit ist jetzt erstmal Vaultwarden auf dem Port 8555 erreichbar. Testen könnt Ihr das unter folgender URL. http://<IP-Vom-Raspberry-Pi>:8555

Wieso habe ich das gemacht? Vaultwarden lässt nur eine Registrierung zu wenn eine Verbindung über HTTPS erfolgt. Und hier hat unser Vault noch ein Problem. Von Hause aus kann es das nicht. Daher werden wir jetzt auf die schnelle und OHNE Lets Encrypt einen Nginx Proxy Manager erstellen.

Vaultwarden HTTPS Problem
Vaultwarden HTTPS Problem
Bestseller Nr. 1
Bestseller Nr. 2
AMD Ryzen 7 5700X3D Box
AMD Ryzen 7 5700X3D Box
Default TDP: 105W; CPU Compute Die (CCD) Size: 74mm²; Processor Technology for CPU Cores: TSMC 7nm FinFET
239,90 EUR Amazon Prime

Nginx Proxy Manager erstellen

#Für den Proxy Manager Volumes erstellen. Eins für die Konfigurationen und eins für spätere Zertifikate
mkdir /home/pi/npm_data
mkdir /home/pi/npm_letsencrypt

docker run -d -it --name npm\
  -v /home/pi/npm_data:/data \
  -v /home/pi/npm_letsencrypt:/etc/letsencrypt \
  -p 80:80 \
  -p 81:81 \
  -p 443:443 \
  -e DB_SQLITE_FILE="/data/database.sqlite" \
  --restart=always \
  jc21/nginx-proxy-manager:latest

Hier kann man nun sehen die Ordner werden wieder verknüpft und es werden die Ports 80,81 und 443 genutzt. Port 81 wird benutzt um auf die Coole Nignx Proxy Manager Web Gui zu kommen.
Also los, öffne die GUI unter http://<IP-Vom-Raspberry-Pi>:81

Die Standard Benutzername lautet „admin@example.com“ und das Passwort „changeme„. Bei der ersten Anmeldung bitte der NPM euren Namen und E-Mail einzugeben. Ebenfalls wird er euch bitten das Passwort zu ändern.

Bevor wir hier aber weiter machen, werden wir nun ein selbst signiertes Zertifikat anlegen und dieses auf unserem PC abspeichern. Auf dem Raspberry Pi brauchen wir dafür das OpenSSL Paket.

Custom SSL Zertifikat erstellen

## OpenSSL Installieren
sudo apt install openssl

##Zertifikat Generieren
openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key

#Füllt bitte die Abfragen so für euch passend aus. In dem Punkt Common Name füllt Ihr bitte die URL aus worauf Ihr später den Bitwarden erreichen möchtet.

Generating a RSA private key
...................++++
................................................................................................................................................................++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:NRW
Locality Name (eg, city) []:Muelheim an der Ruhr
Organization Name (eg, company) [Internet Widgits Pty Ltd]:schroederdennis.de
Organizational Unit Name (eg, section) []:schroederdennis.de
Common Name (e.g. server FQDN or YOUR name) []:vault.schroederdennis.de
Email Address []:vault@schroederdennis.de
Bestseller Nr. 1
Synology Diskstation DS124 NAS System
Synology Diskstation DS124 NAS System
Kleines & Mittleres Unternehmen NAS Desktop Schwarz; DiskStation Manager; Anzahl der unterstützten Speicherlaufwerke: 1 HDD & SSD
149,90 EUR Amazon Prime
AngebotBestseller Nr. 2
Synology 4-Bay DS423+ - Celeron J4125 schwarz
Synology 4-Bay DS423+ - Celeron J4125 schwarz
Hochwertige Material; Langlebig; Robustheit; Flexible Gestaltung
−70,99 EUR 519,00 EUR Amazon Prime

Dabei werden 2 Dateien erstellt welche Ihr auf euren PC herunter laden müsst. Ich verwende da immer das kleine Programm WINSCP. Damit lassen sich Dateien via SSH super einfach auf den PC kopieren. Findet Ihr schon selber raus. Die erstellen Dateien liegen natürlich in dem /home/pi Verzeichnis und heißen: example.crt & example.key.

Mit diesen zwei Dateien erstellen wir nun ein „Custom Certifcate“ im Proxy Manager. Einfach unter SSL Certificates ein Custom Zertifikat hinzufügen und wie im Bild zu sehen ausfüllen.

Proxy Host hinzufügen

Zu guter Letzt brauchen wir nur noch den Proxy Host hinzufügen. Fülle die Felder wie im Bild zu sehen einfach aus und wählt unter dem Reiter SSL euer selbst signiertes Zertifikat aus. Und das wars auch schon.