Vaultwarden LXC installieren – Proxmox 7.x.x – 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 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.

Vaultwarden LXC installieren Proxmox 7.x.x 2

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

Vaultwarden LXC installieren Proxmox 7.x.x 1

9. Anmelden

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

Vaultwarden LXC installieren Proxmox 7.x.x 3

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 240 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.

12 Kommentare

  1. 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?

      • 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?!

  2. 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.

  3. 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?

  4. 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

Schreib einen Kommentar

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


*