Vaultwarden Proxmox – Tutorial

Vaultwarden LXC installieren Proxmox 7.x.x 4

Es gibt viele Cloud Passwortmanager aber am besten ist es, wenn man selber einen Passwortmanager hosten kann. Da bietet sich ein Vaultwarden Proxmox 7 oder Proxmox Vaultwarden 8 LXC Container sehr 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 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 Proxmox 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 Proxmox LXC Container noch nicht.

2. Konfiguration des Proxmox 7.x.x / Proxmox 8.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 Proxmox 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 Proxmox 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 Proxmox 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.

Vaultwarden Proxmox LXC installieren Proxmox 7.x.x 2

Geben Sie die nötigen Informationen ein und klicken Sie auf Submit.

Proxmox Vaultwarden

9. Anmelden

Sie können sich nun auf Ihrem eigenen, selbst gehosteten Vaultwarden Passwortmanager anmelden.

Vaultwarden LXC installieren Proxmox 7.x.x 3
Nun haben Sie einen Vaultwarden Proxmox Container

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

Über ramhee 254 Artikel
Mein Name ist Ramon Heeb und das ist mein Technikmagazin. Ich liebe es Tutorials, Reviews und anderes zu schreiben und so anderen Menschen zu helfen. Ich bin seit einigen Jahren Technik-interessiert und habe technium.ch im Jahre 2019 gegründet.

4 Kommentare

  1. Hallo,
    klasse Anleitung (so wie alle hier). Kannst Du etwas näher Beschreiben, was es mit der eigenen Domain aufsich hat ?
    Es geht wohl darum, dass ich von außerhalb auf mein Vaultwarden zugreifen kann, oder ?
    Was genau macht die Domain in diesem Fall, bzw. muss hier konfiguriert werden ?

    Danke und schöne Grüße aus dem Münsterland

    Frank

    • Hallo Frank
      Also wenn du von ausserhalb deines Netzwerkes darauf zugreifen möchtest, musst du eine Domain kaufen und diese dann da eingeben. Und dann die Domain auf deine Public IP darauf zeigen lassen mit einem «A Record» und Port forwarding. Allenfalls ist DynDNS noch sinvoll wenn sich deine public IP öfters ändert.
      LG Ramon

  2. Hallo,
    tolles Tutorial, besonders wenn man Vaultwarden nur intern nutzen möchte. In Verbindung mit Caddy werden die Zertifikate scheinbar selbstständig erneuert.
    Um auf Vaultwarden von Ausserhalb zugreifen zu können, kann man doch auch eine VPN-Verbindung (Wireguard,OpenVPN) nutzen, oder spricht da sicherheitstechnisch was dagegen?

    Vielen Dank und einen guten Rutsch ins neue Jahr
    Mike

    • Hallo Mike
      Ja man kann durchaus VPN verwenden.
      Meines erachtens spricht da nicht im geringsten etwas dagegen, da so im Gegensatz zum öffentlich verfügbaren Vaultwarden nur Zugriff über VPN möglich ist, was es für einen Angreiffer noch zusätzlich erschwert.

      Danke.
      LG Ramon

Schreib einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht.


*