Es gibt viele Cloud Passwortmanager aber am besten ist es, wenn man selber einen Passwortmanager hosten kann. Da bietet sich ein Vaultwarden LXC Container gut an.
Bitwarden ist ein Open Source Passwortmanager welchen Sie auch selber in einem Docker Container Hosten können. Vaultwarden ist ein inoffizieller Bitwarden Server. Zum ofiziellen Bitwarden LXC Tutorial geht es hier.
Falls Sie Proxmox 6.x.x verwenden finden Sie hier ein LXC Container Tutorial.
Bei einem Upgrade von Proxmox 6 auf Proxmox 7 muss die LXC Container Konfiguration angepasst werden und docker und docker-ce müssen auf Version 20.x.x upgraded werden.
1. Vaultwarden LXC Container erstellen
Als erstens erstellen Sie einen LXC Container mit dem Debian 11 CT Template. Der LXC Container sollte eine Root Disk mit 4GB, 512MB RAM, 512MB SWAP und 1 CPU Core haben. Falls Sie nicht wissen wie man einen LXC Container erstellt können Sie für die Erstellung diesem Tutorial folgen.
Wichtig: Starten Sie den Vaultwarden LXC Container noch nicht.
2. Konfiguration des Proxmox 7.x.x Hosts
Nachdem Sie den Vaultwarden LXC Container erstellt haben müssen Sie eine Konfiguration am Proxmox 7.x.x Host vornehmen.
nano /etc/modules-load.d/modules.conf
Fügen Sie folgende Module am Ende der Datei ein.
aufs overlay
3. Konfiguration des LXC Containers
Editieren Sie nun die Konfiguration des Vaultwarden LXC Containers.
(«vid» entspricht der ID des LXC Containers also beispielsweise «nano /etc/pve/lxc/103.conf»)
nano /etc/pve/lxc/<vid>.conf
Fügen Sie folgende Zeilen am Ende der Datei ein.
#insert docker part below lxc.apparmor.profile: unconfined lxc.cgroup2.devices.allow: a lxc.cap.drop:
4. Vaultwarden LXC Container Starten
Jetzt können Sie Ihren Container starten und sich über SSH oder über die Konsole im PVE Web Interface anmelden.
5. Updates und Pakete installieren
Zuerst empfiehlt es sich ein update durchzuführen
apt update
Zusätzlich können Sie fail2ban installieren, um die Sicherheit zu erhöhen.
Abhängigkeiten von Doker installieren
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
Docker Repository hinzufügen
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Docker Installieren
apt update && apt install docker-ce docker-compose -y
6. Vaultwarden Docker Container Installieren
Docker Compose Config erstellen.
nano docker-compose.yml
Fügen Sie folgendes ein und speichern Sie docker-compose.yml
version: '3' services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: always environment: - WEBSOCKET_ENABLED=true - DOMAIN=https://vaultwarden-privat.home ports: - 80:80 volumes: - ./vw-data:/data
Ersetzen Sie https://vaultwarden-privat.home mit Ihrer domain.
Starten Sie nun den Vaultwarden Server.
docker-compose up -d
Nun können Sie auf die WebUI Ihres Vaultwarden LXC Servers mit der IP Ihres Servers zugreifen.
7. Caddy Reverse Proxy (Optional)
Falls Sie Vaultwarden nur intern mit selbst signiertem Zertifikat verwenden möchten, können Sie zusätzlich Caddy als lokalen Proxy einrichten.
Zuerst Stoppen Sie docker-compose
docker-compose down
Editieren Sie die Docker Compose Config.
nano docker-compose.yml
Fügen Sie folgendes am Ende der Config Datei ein.
caddy: image: caddy:2 container_name: caddy restart: always ports: - 80:80 - 443:443 volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ./caddy-config:/config - ./caddy-data:/data environment: - LOG_FILE=/data/access.log
Ändern Sie den Externen Port (links) der Vaultwarden Docker Config von 80 auf z.B. 8080!
Das ganze docker-compose.yml File könnte nun wie folgt aussehen.
version: '3' services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: always environment: - WEBSOCKET_ENABLED=true - DOMAIN=https://vaultwarden-privat.home ports: - 8080:80 volumes: - ./vw-data:/data caddy: image: caddy:2 container_name: caddy restart: always ports: - 80:80 - 443:443 volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ./caddy-config:/config - ./caddy-data:/data environment: - LOG_FILE=/data/access.log
Nun editieren Sie die Caddy config.
nano Caddyfile
Fügen Sie folgendes ein.
vaultwarden-privat.home { tls internal reverse_proxy vaultwarden:80 }
Ersetzen Sie vaultwarden-privat.home mit Ihrer internen domain.
Nun können Sie docker-compose wieder starten. Danach sollte Vaultwarden auch über die hier konfigurierte interne domain verfügbar sein.
docker-compose up -d
8. Auf der Weboberfläche registrieren
Gehen Sie auf die Weboberfläche und klicken Sie auf Create Account.
Geben Sie die nötigen Informationen ein und klicken Sie auf Submit.
9. Anmelden
Sie können sich nun auf Ihrem eigenen, selbst gehosteten Vaultwarden Passwortmanager anmelden.
10. User Registration deaktivieren
Falls Sie weitere Benutzerregistrierungen deaktivieren möchten, können Sie folgende Zeile in der Datei docker-compose.yml unter vaultwarden unter environment: hinzufügen.
SIGNUPS_ALLOWED=false
Und danach Docker mit folgendem Befehl neu starten, um die Konfiguration zu übernehmen
docker-compose down && docker-compose up -d
Danke für die Anleitung, jedoch klappt es bei mir nicht, da Proxmox da anscheinend Probleme mit apparmor und nesting hat.
Folgende Fehlermeldung kommt beim Start des CT:
«explicitly configured lxc.apparmor.profile overrides the following settings: features:nesting»
Was kann man tun?
Hallo
Vielleicht hilft es, wenn du «security.nesting=true» in der LXC config hinzufügst.
Lg Ramon Heeb
Hi,
wie gesagt klappt das jetzt alles.
Wo ich aber hänge ist Caddy. Sprich wenn ich das alles mache wie in der Anleitung und mir dort einen «internen» Namen für den Vault vergebe komme ich einfach nicht auf die Login Seite, da er mir sagt, dass die Name nicht vergeben sein. Direkte Eingabe der IP inkl. Port klappt ohne Probleme.
Scheint also etwas mit der Namensauflösung noch etwas nicht zu Stimmen?!
Sind da mit Caddy noch weitere Schritte notwendig (oder Einstellungen im Router bzw. DNS > Pi Hole mit Unbound bei mir)?
Hallo
Oha ich selber bin das Problem anders umgangen, indem ich bei meiner pfSense (Firewall und Router) einen DNS Host Override hinterlegt habe…
Bei einer Domain, welche extern verfügbar ist benötigt es Portfreigabe und gültiges SSL Cert…
Hi. Fehler gefunden. Lag an einem Proxmox Update.
Bekomme alles zum Laufen, bis auf die Caddy-Konfiguration, dass ich mein Vaultwarden nur lokal nutzen kann (werde). Das mag irgendwie nicht klappen?!
Ich kann für Vaultwarden, Bookstrack, FreshRSS und co. nur noch Yunohost empfehlen.
Pro:
Läuft extrem stabil, im Gegensatz zu Docker Container. Wer schon aus dem Nichts ein Layer-Fehler nach einem Neustart hatte, weiß wovon ich rede.
Fail2Ban direkt dabei. Lets Encrypt etc. ist natürlich auch am Board. Läuft auch Wunderbar in einem Debian 11 LXC.
Danke für den Tipp.
Danke erstmal für deine Anleitung, leider habe ich ein Problem und mehrere Fragen, bei dem ich noch Hilfe benötige.
Erstmal zu den Verständnis:
– Ich habe eine Fritzbox mit eingerichteter DYN-DNS, kann ich Vaultwarden nutzen, ohne dass ich nach Erstellung der SSL Zertifikate keine Ports offen haben muss?
– Brauche ich eine echte Domain oder reicht auch eine Interne, wenn ich Self signed Certificates verwende?
Leider bekomme ich im LXC beim stareten des Dockker die folgende Fehlermeldung:
«`
root@proxmox:~# cat /etc/pve/lxc/109.conf
arch: amd64
cores: 1
features: nesting=1
hostname: vaultwarden
memory: 1024
net0: name=eth0,bridge=vmbr0,firewall=1,gw=192.168.10.1,hwaddr=26:1A:7C:1C:0F:39,ip=192.168.10.109/24,type=veth
ostype: ubuntu
rootfs: local-lvm:vm-109-disk-0,size=8G
swap: 512
unprivileged: 1
#insert docker part below
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
root@proxmox:~# lxc-attach 109
root@vaultwarden:~# cat vaultwarden/docker-compose.yml
version: ‹3›
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
– WEBSOCKET_ENABLED=true
– DOMAIN=https://vaultwarden.fritz.box
ports:
– 80:80
volumes:
– ./vw-data:/data
root@vaultwarden:~# docker-compose up vaultwarden/docker-compose.ym
Starting vaultwarden … error
ERROR: for vaultwarden Cannot start service vaultwarden: Could not check if docker-default AppArmor profile was loaded: open /sys/kernel/security/apparmor/profiles: permission denied
ERROR: for vaultwarden Cannot start service vaultwarden: Could not check if docker-default AppArmor profile was loaded: open /sys/kernel/security/apparmor/profiles: permission denied
ERROR: Encountered errors while bringing up the project.
«`
Hat jemand eine Idee, woran das liegen könnte?
Hallo
Zu deinen ersten zwei Fragen ja das geht.
Ich nutze Vaultwarden auch mit self signed certificate und nur intern.
Jedoch musst du dann bei den Clients je, nachdem das selbst signierte Zertifikat importieren.
Hasst du Schritte 1-4. genau so wie im Tutorial befolgt?
Hallo,
die Installation hat bei mir vor ein paar Wochen super geklappt.
Wie aktualisiere ich die Web-Vault Version? Diese ist noch auf 2022.10.
mit docker-compose pull && docker-compose up -d zieht er nur vaultwarden/server:latest
VG
Hallo
Es gibt meines Wissens momentan noch keine neuere Vaultwarden Version.
LG Ramon
Hi Ramon,
danke für die schnelle Rückmeldung. Dann warte ich mal ab. Server ist ja aktuell und läuft super, dank deiner Anleitung!
VG
Philipp