Tutorials  /  Container & Cloud

Vaultwarden auf Ubuntu 20.04 mit Docker & Caddy einrichten

Ccentron Redaktion · Mai 2025 ·6 Min. Lesezeit ·Container & Cloud, Tutorial

Vaultwarden ist eine gemeinschaftlich entwickelte Alternative zum offiziellen Bitwarden-Server und wurde in Rust programmiert. Im Gegensatz zur offiziellen Version benötigt Vaultwarden deutlich weniger Systemressourcen, ist jedoch vollständig kompatibel mit den offiziellen Bitwarden-Clients. Diese Anleitung beschreibt die Installation von Vaultwarden mithilfe von Docker und docker-compose unter Ubuntu 20.04 und zeigt, wie die Verbindung mithilfe von Caddy abgesichert wird.

Voraussetzungen für das System

Vor der Installation sollte Folgendes erfüllt sein:

  • Ein Ubuntu 20.04 System sollte bereits laufen.
  • Das System sollte auf dem aktuellen Stand sein.
  • Ein Benutzerkonto mit sudo-Rechten (nicht root) sollte vorhanden sein.
  • Du solltest als dieser Benutzer auf den Server zugreifen.
  • Port 443 sollte für eingehenden Datenverkehr freigegeben sein.
  • Ein DNS A-Eintrag sollte eingerichtet sein, der eine (Sub-)Domain mit der IP deines Servers verbindet – Caddy benötigt eine auflösbare Domain, um ein TLS/SSL-Zertifikat zu generieren.
K8

Passende Infrastruktur bei centron

Vom Container zum Cluster: Managed Kubernetes mit cStack gibt es ab 29,99 € im Monat – Control Plane, AutoScaler und Traffic inklusive. Managed Kubernetes ansehen →

Docker Engine installieren

Starte mit der Entfernung eventuell vorhandener älterer Docker-Versionen und Komponenten:

Konsole
$ sudo apt remove docker docker.io containerd runc 

Anschließend sollte snapd auf den neuesten Stand gebracht werden:

Konsole
$ sudo snap install core; sudo snap refresh core 

Nun erfolgt die Installation von Docker über Snap:

Konsole
$ sudo snap install docker 

Vaultwarden einrichten

Docker-Container vorbereiten

Erstelle zunächst ein eigenes Verzeichnis für Vaultwarden und wechsle anschließend in dieses Verzeichnis:

Konsole
$ mkdir ~/vaultwarden
$ cd ~/vaultwarden

Erstelle nun die Datei docker-compose.yml und öffne sie im Editor:

Konsole
$ nano docker-compose.yml

Füge in die Datei folgende Konfiguration ein:

YAML
version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      - WEBSOCKET_ENABLED=true
    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:
      - DOMAIN=
      - EMAIL=
      - LOG_FILE=/data/access.log

Trage deine eigene Domain oder Subdomain ein, indem du die DOMAIN-Variable im Abschnitt environment des Caddy-Containers entsprechend aktualisierst:

YAML
environment:
  - DOMAIN=https://example.com

Gib zusätzlich eine gültige E-Mail-Adresse in der EMAIL-Variable an, damit Let's Encrypt ein TLS-Zertifikat ausstellen kann:

YAML
environment:
  - DOMAIN=https://example.com
  - EMAIL=user@example.com

Um die Änderungen im Nano-Editor zu speichern und den Editor zu schließen, drücke Strg + X, bestätige mit Y und beende den Vorgang mit Enter.

Die Caddyfile einrichten

Erstelle zunächst die Konfigurationsdatei für Caddy und öffne sie zur Bearbeitung:

Konsole
$ nano Caddyfile

Füge anschließend die folgende Konfiguration in die Datei ein:

Code
{$DOMAIN}:443 {
  log {
    level INFO
    output file {$LOG_FILE} {
      roll_size 10MB
      roll_keep 10
    }
  }

  # TLS-Zertifikat über ACME HTTP-01 Challenge beziehen
  tls {$EMAIL}

  encode gzip

  # Zusätzliche HTTP-Header zur Absicherung
  header {
    Strict-Transport-Security "max-age=31536000;"
    X-XSS-Protection "1; mode=block"
    X-Frame-Options "DENY"
    X-Robots-Tag "none"
    -Server
  }

  # Weiterleitung der Benachrichtigungen per WebSocket
  reverse_proxy /notifications/hub vaultwarden:3012

  reverse_proxy vaultwarden:80 {
    header_up X-Real-IP {remote_host}
  }
}

Speichere die Datei und beende den Editor, indem du Strg + X drückst, danach mit Y bestätigst und mit Enter abschließt.

Diese Konfiguration weist Caddy an, eingehenden HTTPS-Datenverkehr auf Port 443 an Vaultwarden weiterzuleiten. Zusätzlich sind Sicherheits-Header gesetzt – darunter HSTS für strikte Transport-Sicherheit, Schutz vor Cross-Site-Scripting, Blockierung der Darstellung in Frames zum Schutz vor Clickjacking, die Verhinderung von Indexierung durch Suchmaschinen sowie das Entfernen der Caddy-Serverkennung.

Vaultwarden starten

Zum Starten von Vaultwarden verwende den Befehl docker-compose im Hintergrundmodus. Der Startvorgang kann einige Augenblicke in Anspruch nehmen:

Konsole
$ sudo docker-compose up -d

Prüfe, ob die Container korrekt laufen, indem du den Status mit docker ps abfragst:

Konsole
$ sudo docker ps

Im Ergebnis sollte ein Status wie „Up“ angezeigt werden, der bestätigt, dass der Container seit Sekunden oder Minuten aktiv ist.

Sicherheitsoptionen verbessern

Vaultwarden erlaubt zusätzliche Konfigurationsmöglichkeiten, um die Sicherheit der Installation zu erhöhen.

Benutzerregistrierung deaktivieren

Standardmäßig ist es allen Nutzern möglich, sich bei deiner Vaultwarden-Instanz selbstständig zu registrieren. Das ist in der Einrichtungsphase hilfreich, kann später jedoch ein Risiko darstellen.

Sobald dein eigenes Benutzerkonto eingerichtet ist, kannst du die Neuregistrierung durch folgende Änderung in der Datei docker-compose.yml deaktivieren:

YAML
services:
  vaultwarden:
    ... other configuration ...
    environment:
      - SIGNUPS_ALLOWED=false
      ... other configuration ...

Einladungsfunktion abschalten

Vaultwarden ermöglicht es bestehenden Nutzern, andere Personen per Einladung hinzuzufügen. Für Einzelnutzer oder kleine, vertrauenswürdige Gruppen ist diese Funktion meist überflüssig.

Um sie zu deaktivieren, setze die Variable INVITATIONS_ALLOWED auf false:

YAML
services:
  vaultwarden:
    ... other configuration ...
    environment:
      - INVITATIONS_ALLOWED=false
      ... other configuration ...

Passworthinweise ausblenden

Im offiziellen Bitwarden-Server werden Passworthinweise in der Regel per E-Mail zugestellt. Vaultwarden hingegen zeigt diese Hinweise direkt im Browser an – das spart eine E-Mail-Konfiguration.

Wenn du dieses Verhalten deaktivieren möchtest, füge die Variable SHOW_PASSWORD_HINT in die docker-compose.yml ein und setze sie auf false:

YAML
services:
  vaultwarden:
    ... other configuration ...
    environment:
      - SHOW_PASSWORD_HINT=false
      ... other configuration ...

Abschließende Hinweise

Wenn du alle oben beschriebenen Schritte durchgeführt hast, steht dir nun eine funktionstüchtige und abgesicherte Vaultwarden-Installation unter Ubuntu 20.04 zur Verfügung – betrieben mit Docker und Caddy. Sämtliche sicherheitsrelevanten Einstellungen kannst du direkt in der Datei docker-compose.yml anpassen, wodurch du maximale Kontrolle über Registrierungsmöglichkeiten, Einladungsrechte und die Anzeige von Passworthinweisen erhältst.

Achte darauf, deine Docker-Container regelmäßig zu aktualisieren und die Zugriffprotokolle kontinuierlich zu überwachen, um ungewöhnliches Verhalten frühzeitig zu erkennen. Die Protokollierung von Caddy erfolgt automatisch in der Datei, die über die Variable LOG_FILE festgelegt wurde. Das erleichtert dir die Nachverfolgung von Zugriffen und die kontinuierliche Überwachung der Anwendung.

Falls du planst, deine Installation zu erweitern oder mit anderen Systemen zu integrieren, findest du in der offiziellen Dokumentation von Vaultwarden und Docker hilfreiche Informationen zu erweiterten Konfigurationsmöglichkeiten – darunter Einstellungen per Umgebungsvariablen, Backup-Konzepte oder Szenarien für mehrere Benutzer.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Container & Cloud
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren