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
.kdbxDateien 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:
- Strg+S in KeePass â KeePassSubsetExport exportiert alle Kunden-Datenbanken
- FreeFileSync erkennt die geÀnderten
.kdbx-Dateien und ĂŒbertrĂ€gt sie auf den Server - KeeWeb auf
pass.4uweb.deliest 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. đïž