Tropic Host

Vaultwarden: Was es ist und wie man es auf einem VPS installiert

6 Min Lesezeit
Tropic
Vaultwarden: Was es ist und wie man es auf einem VPS installiert

Vaultwarden: Einen eigenen Passwortmanager auf einem VPS installieren

Mit Vaultwarden können Sie Passwörter auf Ihrem eigenen Server speichern und zwischen Computer, Smartphone und Browser synchronisieren. Dabei verwenden Sie die offiziellen Anwendungen und Erweiterungen von Bitwarden und tragen dort die Adresse Ihres eigenen Servers ein.

Im Folgenden zeigen wir, welchen VPS Vaultwarden benötigt, wie Sie es unter Ubuntu mit Docker Compose starten, die offene Registrierung deaktivieren, HTTPS einrichten und Backups konfigurieren.

Vaultwarden in fünf Schritten

Der minimale Einrichtungsplan:

  1. Einen VPS mit Ubuntu erstellen und eine Subdomain darauf verweisen, zum Beispiel vault.example.com.
  2. Docker und Docker Compose installieren.
  3. Vaultwarden zusammen mit Caddy für automatisches HTTPS starten.
  4. Das erste Konto erstellen und die offene Registrierung deaktivieren.
  5. Zwei-Faktor-Authentifizierung, Updates und Backups aktivieren.

Für einen persönlichen Tresor oder eine kleine Familie reicht die integrierte SQLite-Datenbank aus. Ein separater PostgreSQL-Server ist normalerweise nicht erforderlich.

Was ist Vaultwarden

Vaultwarden ist eine inoffizielle Serverimplementierung der Bitwarden-API, die in Rust geschrieben und für den Self-hosted-Betrieb entwickelt wurde. Sie ist mit den offiziellen Bitwarden-Clients kompatibel: Weboberfläche, mobile und Desktop-Anwendungen, Browsererweiterungen und CLI.

Die Tresordaten werden auf dem Gerät des Benutzers verschlüsselt, bevor sie an den Server gesendet werden. Der VPS synchronisiert die verschlüsselte Datenbank, kennt das Master-Passwort jedoch nicht und kann es bei Verlust nicht wiederherstellen.

Vaultwarden ist kein offizielles Produkt von Bitwarden. Der Betreiber ist selbst für Updates, Verfügbarkeit, HTTPS, Backups und die Sicherheit des VPS verantwortlich.

Vaultwarden und Bitwarden: Wo liegt der Unterschied

ParameterBitwarden CloudVaultwarden
ServerBitwarden-InfrastrukturIhr VPS oder Heimserver
AnwendungenBitwarden-ClientsDieselben Clients im Self-hosted-Modus
WartungWird vom Anbieter übernommenWird vom Betreiber übernommen
Kontrolle über BackupsDurch den Dienst eingeschränktVollständig
EinrichtungKontoregistrierungDomain, Docker und VPS-Konfiguration

Vaultwarden eignet sich für Nutzer, die die Serverseite kontrollieren möchten und bereit sind, Linux zu aktualisieren und Backups zu überprüfen. Ein Cloud-Dienst ist praktischer, wenn Sie sich nicht mit der Administration beschäftigen möchten. Self-Hosting macht ein System nicht automatisch sicher, sondern überträgt die Verantwortung auf den Betreiber.

Serveranforderungen für Vaultwarden

Für die persönliche Nutzung ist folgende Startkonfiguration sinnvoll:

  • 1 vCPU;
  • 1–2 GB RAM;
  • 10–20 GB SSD oder NVMe;
  • Ubuntu 24.04 LTS;
  • eine öffentliche IP-Adresse und eine Domain;
  • geöffnete Ports 80 und 443.

Dies ist eine praktische Reserve für Ubuntu, Docker, Caddy und Updates und keine strikte Mindestanforderung des Projekts. Für Dutzende Benutzer, viele Anhänge oder mehrere Container sollten Sie mindestens 2 GB RAM wählen.

So installieren Sie Vaultwarden auf einem VPS

In diesem Beispiel werden Ubuntu 24.04 und die Subdomain vault.example.com verwendet. Ersetzen Sie sie in allen Dateien durch Ihre eigene Adresse.

1. DNS konfigurieren und Ubuntu vorbereiten

Erstellen Sie einen DNS-A-Eintrag, der auf die IPv4-Adresse des VPS verweist. Stellen Sie anschließend eine SSH-Verbindung her:

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Schließen Sie die aktuelle SSH-Sitzung erst, nachdem Sie überprüft haben, dass eine neue Verbindung funktioniert.

2. Docker und Docker Compose installieren

Fügen Sie das offizielle Docker-Repository hinzu:

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. Konfiguration erstellen

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Erstellen Sie compose.yaml:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2-alpine
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Erstellen Sie die Datei Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80
}

Nach außen wird nur Caddy freigegeben. Der Vaultwarden-Container ist innerhalb des Docker-Netzwerks erreichbar, und die Daten werden unter /opt/vaultwarden/vw-data gespeichert. In der aktuellen Konfiguration ist kein separater Port für WebSocket erforderlich.

4. Vaultwarden starten

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

Öffnen Sie https://vault.example.com. Caddy bezieht automatisch ein TLS-Zertifikat, wenn DNS bereits auf den VPS verweist und die Ports 80 und 443 erreichbar sind. Falls die Website nicht geöffnet wird, prüfen Sie DNS, die Firewall und ob auf diesen Ports ein anderer Webserver läuft.

5. Konto erstellen und Registrierung schließen

Registrieren Sie das erste Konto. Verwenden Sie ein langes, einzigartiges Master-Passwort und bewahren Sie eine Notfallkopie außerhalb von Vaultwarden auf: Der Serveradministrator kann das Master-Passwort weder zurücksetzen noch wiederherstellen.

Ändern Sie nach der Registrierung in compose.yaml folgende Einstellung:

SIGNUPS_ALLOWED: "false"

Wenden Sie die Einstellung an:

docker compose up -d

Nun können Außenstehende keine Konten mehr erstellen. Um einen neuen Benutzer hinzuzufügen, können Sie die Registrierung vorübergehend aktivieren oder Einladungen konfigurieren.

So verbinden Sie die Bitwarden-Anwendung

Ein separater Vaultwarden-Client muss nicht installiert werden. Wählen Sie auf dem Anmeldebildschirm der Bitwarden-Anwendung oder -Erweiterung Self-hosted und geben Sie Folgendes ein:

https://vault.example.com

Verwenden Sie diese Adresse auf dem Computer, Smartphone und im Browser. Importieren Sie für die Migration einen Export aus Ihrem bisherigen Passwortmanager. Löschen Sie eine unverschlüsselte CSV- oder JSON-Datei unmittelbar nach der Übertragung und versenden Sie sie nicht per E-Mail oder über öffentliche Links.

Vaultwarden sicher konfigurieren

Führen Sie nach dem Start einige Maßnahmen durch:

  • TOTP oder WebAuthn aktivieren und Wiederherstellungscodes separat aufbewahren;
  • SIGNUPS_ALLOWED deaktiviert lassen;
  • SSH-Schlüssel verwenden und Ubuntu regelmäßig aktualisieren;
  • den internen Port des Vaultwarden-Containers nicht veröffentlichen;
  • keine fragwürdigen Container auf demselben VPS ausführen;
  • prüfen, ob sich die Backups wiederherstellen lassen.

Für einen persönlichen Tresor wird das /admin-Panel normalerweise nicht benötigt. Wenn Sie es aktivieren, verwenden Sie ein langes Token in Form eines Argon2-Hashes und beschränken Sie den Zugriff nach Möglichkeit per IP-Adresse oder VPN. Ein ADMIN_TOKEN im Klartext sollte nicht gespeichert werden.

Erstellen Sie vor einem Update ein Backup und führen Sie anschließend Folgendes aus:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

Der Server sollte regelmäßig aktualisiert werden: Bitwarden-Clients werden unabhängig veröffentlicht, sodass eine sehr alte Vaultwarden-Version die Kompatibilität mit ihnen verlieren kann.

Vaultwarden sichern

Die zentrale SQLite-Datenbank befindet sich unter vw-data/db.sqlite3, während Anhänge als separate Dateien gespeichert werden. Kopieren Sie eine laufende Datenbank nicht mit dem gewöhnlichen Befehl cp: Ein Schreibvorgang in diesem Moment kann die Kopie inkonsistent machen.

Erstellen Sie mit dem integrierten Befehl einen sicheren Snapshot:

docker exec vaultwarden /vaultwarden backup

Im Datenverzeichnis erscheint eine separate Datei db_.sqlite3. Sichern Sie zusammen damit attachments, sends, gegebenenfalls die erstellte Datei config.json sowie die Dateien rsa_key.

Ein Backup auf demselben VPS schützt nicht vor dem Löschen des Servers oder einem Festplattenausfall. Übertragen Sie Kopien automatisch auf ein anderes Gerät oder in einen separaten Objektspeicher, möglichst mit zusätzlicher Verschlüsselung. Führen Sie regelmäßig eine testweise Wiederherstellung durch.

Welchen VPS Sie für Vaultwarden wählen sollten

Für einen persönlichen oder familiären Tresor reicht ein einfacher Linux-VPS mit 2 GB RAM aus. Diese Größe bietet Reserven für Ubuntu, Docker, Caddy, Updates und automatische Backups.

Vaultwarden lässt sich auf einem Einstiegs-VPS von tropic.host betreiben. Die Ressourcen können später erhöht werden, wenn weitere Self-hosted-Dienste auf dem Server hinzukommen. Für einen Passwortmanager sind ein stabiles Netzwerk, eine dauerhafte öffentliche Adresse und ein zuverlässiger Datenträger wichtiger als zusätzliche CPU-Kerne.

Auch ein Heimserver ist geeignet. Dann müssen Sie jedoch externen Zugriff, HTTPS, eine stabile Stromversorgung und die Wiederherstellung nach Ausfällen gewährleisten. Ein VPS ist in der Regel einfacher, wenn der Tresor aus jedem Netzwerk erreichbar sein soll.

Fazit

Vaultwarden ist ein praktischer Self-hosted-Passwortmanager für alle, die Bitwarden-Clients nutzen, die Serverseite aber auf der eigenen Infrastruktur betreiben möchten. Für den Start genügen ein kleiner VPS, eine Domain, Docker Compose und Caddy.

Die eigentliche Verantwortung beginnt nach der Installation: Registrierung deaktivieren, 2FA aktivieren, Container aktualisieren und geprüfte Backups außerhalb des Servers aufbewahren.

FAQ

Kann Vaultwarden ohne Domain installiert werden?

Technisch kann eine lokale Adresse verwendet werden, doch der Web-Tresor benötigt einen sicheren HTTPS-Kontext. Für den Zugriff von verschiedenen Geräten ist eine Domain mit TLS-Zertifikat einfacher.

Wie viel Arbeitsspeicher benötigt Vaultwarden?

Für einen oder mehrere Benutzer reicht normalerweise 1 GB RAM aus. Ein VPS mit 2 GB bietet eine komfortablere Reserve für das System, Docker, Caddy und Updates.

Funktioniert Vaultwarden mit der mobilen Bitwarden-App?

Ja. Wählen Sie auf dem Anmeldebildschirm einen Self-hosted-Server und geben Sie die vollständige HTTPS-Adresse Ihrer Vaultwarden-Instanz ein.

Was geschieht, wenn der VPS vorübergehend nicht erreichbar ist?

Bereits synchronisierte Daten verbleiben normalerweise im lokalen verschlüsselten Cache des Clients. Synchronisierung, Anmeldung auf einem neuen Gerät und der Empfang von Änderungen funktionieren jedoch erst wieder, wenn der Server verfügbar ist.

Kann ein vergessenes Master-Passwort über /admin wiederhergestellt werden?

Nein. Der Administrator kann den Server und die Konten verwalten, besitzt aber nicht den Entschlüsselungsschlüssel für den Tresor des Benutzers. Master-Passwort und Wiederherstellungscodes müssen separat aufbewahrt werden.