🔑 Von Vaultwarden zu KeePass + KeeWeb

Vor ein paar Wochen habe ich Vaultwarden vorgestellt – einen selbst gehosteten Passwort-Manager. Jetzt habe ich ihn wieder abgeschaltet. Nicht weil er schlecht ist, sondern weil ich eine Lösung gefunden habe, die besser zu meinem Alltag passt: KeePass + KeeWeb.

Warum nicht mehr Vaultwarden?

Vaultwarden ist gut – aber fĂŒr meinen Use-Case zu viel Overhead:

  • 🐳 Docker-Container auf dem Homeserver – ein Dienst mehr, der laufen und gewartet werden muss
  • đŸ’Œ Kunden-Passwörter teilen war umstĂ€ndlich – jeder Kunde brauchte einen eigenen Account
  • 🔧 Wartungsaufwand – Updates, Backups, Docker-Pflege fĂŒr einen einzigen Dienst

Dazu kommt ein Punkt, den ich unterschĂ€tzt hatte: die Bedienung. Vaultwarden nutzt die Bitwarden-App – und die ist im Verlgeich zu KeePass IMO weniger intuitiv. Ordner, Sammlungen, Organisationen – klingt strukturiert, ist in der Praxis aber umstĂ€ndlich. KeePass hingegen: Gruppen links, EintrĂ€ge rechts, Doppelklick kopiert, fertig. Nach zwei Jahrzehnten weiß man einfach wo alles ist.

Vor allem der letzte Punkt war entscheidend: Ich verwalte Zugangsdaten fĂŒr Kunden – und die brauchen keinen eigenen Vaultwarden-Account. Die brauchen einen Link.

KeePass: Die Datenbank bleibt lokal

KeePass ist der Klassiker unter den Passwort-Managern:

  • 📁 Eine einzige Datei – die .kdbx
  • 🔒 AES-256 verschlĂŒsselt – ohne Masterpasswort nichts zu machen
  • đŸ–„ïž Desktop-App – kein Server, kein Internet nötig
  • 🔓 Open Source – seit 20 Jahren bewĂ€hrt
  • 🔄 Sync via FreeFileSync – Änderungen landen automatisch auf dem Server

Die Datenbank liegt lokal auf meinem PC. FreeFileSync synchronisiert sie automatisch auf den Server – kein Vaultwarden-Server, kein Bitwarden-API, einfach eine verschlĂŒsselte Datei.

KeeWeb: KeePass im Browser

KeeWeb ist ein webbasierter KeePass-Viewer – Open Source, selbst gehostet, lĂ€uft im Browser. Keine Installation, kein Plugin.

  • 🌐 Reines HTML/JS – lĂ€uft auf jedem Webserver
  • 🔓 Öffnet .kdbx Dateien direkt im Browser
  • đŸ“± Funktioniert auf Handy und Desktop
  • 🔒 Passwort nie ĂŒbertragen – EntschlĂŒsselung im Browser

Mein KeeWeb lĂ€uft unter pass.4uweb.de. Ich öffne die Seite, gebe mein Masterpasswort ein – fertig.

Das Plugin: KeePassSubsetExport

Hier wird’s interessant. Das Plugin KeePassSubsetExport ermöglicht es, automatisch Teilmengen der Hauptdatenbank als separate .kdbx zu exportieren – beim jedem Speichern.

Ich habe in KeePass eine Gruppe pro Kunde. Das Plugin exportiert diese Gruppe in eine eigene Datei mit eigenem Masterpasswort:

  • 📂 fh.kdbx – meine komplette Datenbank
  • 📂 mustermann.kdbx – nur die Passwörter von Kunde Mustermann
  • 📂 beispiel-gmbh.kdbx – nur die Passwörter dieser Firma

Beim DrĂŒcken von Strg+S werden alle Kunden-Datenbanken automatisch aktualisiert – und dann ĂŒbernimmt die Automatisierung den Rest.

Der Workflow: Speichern → fertig

Das Schöne am Setup ist, dass nach dem Speichern nichts mehr manuell passieren muss. Der Ablauf lÀuft vollautomatisch:

  1. Strg+S in KeePass → KeePassSubsetExport exportiert alle Kunden-Datenbanken
  2. FreeFileSync erkennt die geĂ€nderten .kdbx-Dateien und ĂŒbertrĂ€gt sie auf den Server
  3. KeeWeb auf pass.4uweb.de liest die aktuellen Dateien – fertig

FreeFileSync lĂ€uft dabei im Hintergrund als Echtzeit-Synchronisation (RealTimeSync). Sobald sich eine Datei Ă€ndert, wird sie sofort hochgeladen – ohne dass ich daran denken muss. Kein manuelles Kopieren, kein FTP-Client, kein Deployment-Skript.

Die zwei Skripte auf dem Server

Auf dem Server laufen zwei PHP-Skripte, die das Ganze zusammenhalten:

k.php – das Gateway. Wenn ein Kunde die URL aufruft, prĂŒft dieses Skript zuerst: Existiert die .kdbx-Datei fĂŒr diesen Kunden ĂŒberhaupt? Falls nein – 404. Falls ja: Session starten, JSON-Konfiguration generieren, und KeeWeb mit der richtigen Datenbank ausliefern. Die KeeWeb-OberflĂ€che wird dabei angepasst: Unnötige MenĂŒpunkte werden ausgeblendet, der Kunde sieht nur das Nötigste.

fh-kdbx.php – der WebDAV-Endpoint. KeeWeb lĂ€dt und speichert Datenbanken ĂŒber WebDAV. Dieses Skript ĂŒbernimmt genau das: Es liefert die .kdbx-Datei aus, nimmt Änderungen entgegen und kĂŒmmert sich um den „Safe Save“-Mechanismus von KeeWeb (erst Temp-Datei schreiben, dann umbenennen). Zugriff gibt es nur, wenn k.php zuvor eine Session gesetzt hat – ein Direktaufruf der Datei-URL funktioniert nicht.

Das Zusammenspiel: FreeFileSync legt die Datei auf dem Server ab → k.php erkennt sie und öffnet den Zugang → fh-kdbx.php liefert sie sicher an KeeWeb aus.

Das Ergebnis: pass.4uweb.de

Jeder Kunde bekommt eine eigene URL:

https://pass.4uweb.de/kunde/mustermann

Dort öffnet KeeWeb automatisch die richtige Datenbank – der Kunde gibt nur sein Masterpasswort ein und sieht seine Zugangsdaten. Kein Account, keine App, kein App Store. Nur ein Link und ein Passwort.

Vorteile auf einen Blick

Vaultwarden KeePass + KeeWeb
Server nötig ✅ Immer 🟡 Nur fĂŒr Web-Zugriff
Offline-Zugriff ❌ Nein ✅ Ja (lokale .kdbx)
Kunden-Zugang ❌ Account nötig ✅ Nur ein Link
App erforderlich ✅ Bitwarden-App ❌ Browser reicht
Format ProprietĂ€r (Bitwarden) ✅ Offenes .kdbx-Format

Fazit

KeePass + KeeWeb ist die simplere Lösung – und einfacher ist oft besser. Die Passwörter liegen in einer verschlĂŒsselten Datei. FreeFileSync ĂŒbertrĂ€gt sie automatisch auf den Server. KeeWeb macht sie im Browser zugĂ€nglich. Und fĂŒr Kunden gibt es einfach eine URL – kein Account, keine App, kein Overhead.

Vaultwarden war ein gutes Experiment. Aber manchmal ist eine Datei besser als ein Server. đŸ—ïž