Probleme mit Vaultwarden nach Postgres Versionswechsel 16 -> 17

mikadoNA

Benutzer
Registriert
12. Juni 2013
Beiträge
95
Reaktionspunkte
13
Punkte
8
Hallo,
ich nutze Vaultwarden jetzt seit ca. 1/2 Jahr nach der Anleitung von Mariushosting (Docker mit Portainer, den Stack habe ich angehängt) und bin damit sehr zufriedern.
Watchtower hat mich bisher auch immer auf dem aktuellen Stand gehalten. Nur letzte Woche hat Watchtower das neue Image Vaultwarden-DB installiert. Dabei wurde die genutzte Datenbank von Version 16 auf 17 angehoben. Seit dem Startet die datenbank nicht mehr. Das Lofile enthält folgende Fehlermeldungen:

024/09/28 04:24:57stderr2024-09-28 02:24:57.039 UTC [1] DETAIL: The data directory was initialized by PostgreSQL version 16, which is not compatible with this version 17.0 (Debian 17.0-1.pgdg120+1).
2024/09/28 04:24:57stderr2024-09-28 02:24:57.039 UTC [1] FATAL: database files are incompatible with server

In Foren und Git habe ich nur gefunden, dass man dies mit einem Skript pg_upgrade behoben werden kann. Das soll aber unter Docker nicht funktionieren.
Wie geht Ihr damit um ? Gibt es da eine bessere Möglichkeit als Export der Daten, Löschen und neu erstellen des Vaultwarden im Docker und wieder Import ?
Die Datenbankversion wird sich ja weiter entwickeln und dieses Prozedere nach jedem Upgrade ?
Wie oft ändert sich denn bei Postgres die Major-Versionsnummer ?

Für Eure Hilfe wie ich da raus komme bin ich dankbar.
Viele Grüße
mikado
 

Anhänge

In Deinem Fall würde ich - als erste, schnelle Maßnahme - ein Restore aus dem Backup machen und die alte Version von Postgres im compose fest hinterlegen. Dann kommst Du auf alle Fälle wieder an Deinen Vault.

Als nächstes würde ich mir die Frage stellen, ob ich wirklich eine separate DB benötige. Wenn Du mit der Benutzerzahl im Rahmen bleibst, sollte die "eingebaute" SQLite meist reichen. Dadurch bist Du auch etwaige Abhängigkeiten los (unabhängig davon, wie sinnvoll watchtower&co überhaupt sein mögen).

Um dann noch ganz auf Nummer sicher zu gehen, kannst Du bspw. ttionya/vaultwarden-backup verwenden, um den Vault auch als passwortgeschütztes Zip ins Dateisystem exportieren zu lassen.
 
  • Like
Reaktionen: mj084 und mikadoNA
Wie geht Ihr damit um ?
In dem ich mir Datenbank Dumps erzeuge. Es ist nun mal bekannt, dass ein Update der Major Versionen bei PostgreSQL nicht immer kompatibel sind. Daher Dumps..... Vor allem wieso updaten, wenn die Software die Features gar nicht nutzt oder damit bis jetzt getestet wurde.
Wie oft ändert sich denn bei Postgres die Major-Versionsnummer ?
Ich würde eher gucken wie lange die anderen Versionen noch komplett supportet werden. Nochmal die Frage. Wieso brauchst du die neuste Version? Bist du Entwickler und auf die Features angewiesen? Oder was erhoffst du dir davon?

Ich würde auch eher zu SQLite wechseln. Du merkst keinen Unterschied und hast diese Probleme nicht.

kannst Du bspw. ttionya/vaultwarden-backup verwenden
Ich würde mir noch Lazywarden angucken. Das kann dir auch einen regelmäßigen Export für Keepass erzeugen lassen. Dann musst du im Problemfall nicht alles neu aufsetzen, damit du erst an die Passwörter kommst.
 
  • Like
Reaktionen: mikadoNA und mj084
Wenn die Leute sich auch mal damit mehr befassen würden, dann wäre die Seite von Marius tot. Jedes Projekt bietet eine fertige Docker Compose an. Da braucht man ja keine Anleitung für.....
Es gibt ja auch nie groß Hinweise was man beachten sollte. Wie z.B. mit PostgreSQL Updates. Ich verstehe auch nicht wieso hier immer auf die Seite verlinkt wird. Die Docker Compose wird bei ihm auch nicht aktualisiert. Wenn die Anwendung Änderungen hat, dann passt er es nicht an.

Edit: Vor allem macht er jetzt wohl die selben Anwendungen für UGreen als eigenes HowTo. Docker bleibt Docker, egal welches OS/System.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: mj084
Du musst im Vaultwarden Stack nur die DB auf Version 16 festlegen und den Stack updaten.
Code:
version: "3.9"
services:
  db:
    image: postgres:16
Edit: Bei der Anleitung von Marius ist die DB Version fest eingetragen!
 

Anhänge

  • 1727686669216.png
    1727686669216.png
    18,2 KB · Aufrufe: 16
Zuletzt bearbeitet:
@ctrlaltdelete und @Der Paul :
Danke das hat geholfen.

An die anderen:
Ich werde mal prüfen wie lange Postgres 16 supportet wird und wann ein Umstieg auf eine spätere Postgres-Version bzw. eine andere Datenbank sinnvoll ist.
 
  • Like
Reaktionen: ctrlaltdelete
Du musst im Vaultwarden Stack nur die DB auf Version 16 festlegen und den Stack updaten.
Code:
version: "3.9"
services:
  db:
    image: postgres:16
super, das hat mich auch gerade "gerettet"

Edit: Bei der Anleitung von Marius ist die DB Version fest eingetragen!

aber wohl auch erst seit kurzem - bei meiner Erst-Installation noch nicht - aber dafür gibt es ja zum Glück auch dieses Forum (und ein paar graue Gehirnzellen, die sich glücklicherweise an dieses Topic hier erinnert haben)
 
  • Like
Reaktionen: ctrlaltdelete
oh mein Gott… ich hatte schon gedacht ich hätte gerade mein halbes Leben verloren. Unvorstellbar ohne Passwort-Manager. Ich danke euch vielmals… die Anleitung (#7) oben hat perfekt funktioniert. Werde eure Zwischenkommentare mal beherzigen … aber später. Soweit, danke für den Fisch.
 
Kleiner Tipp noch von mir .
Immer mal nen Aktuellen Ausdruck machen von den Kennwörtern. Und den Sicher aufbewahren.
 
  • Like
Reaktionen: Benie
Im Prinzip reicht eins: das des Passwortmanagers…und ein Backup. In den meisten Fällen (online) kann das Passwort zurückgesetzt werde.

Und ja, sqlite reicht meiner Meinung.
 
Grundlegend hast da recht.
Aber ich find ,einfach ne ausgedruckte Kopie als Notnagel ist schon praktisch. Gerade wenn es mal nen Problem mit dem Projekt gibt.
Bringt ja nix wenn du nen Backup hast der DB , aber du es nicht direkt nutzen kannst weil die Software nicht funktioniert.
Aus welchem Grund auch immer.

Meine Meinung zumindest
 
Ich sagte ja, „Im Prinzip“. Ein Dokument mit „kws Top 10“ (nicht-online) in Papierform gibt‘s und liegt im Tresor.
 
,einfach ne ausgedruckte Kopie als Notnagel ist schon praktisch
ABSOLUT, mache ich schon seit dem 1. Tag Passwort Manager so.
Früher hatte ich das ja eh alles auf Papier, als der Wechsel zum Passwort Manager stattfand, hab ich das einfach fortgesetzt.

Edit : es genügt ja schon diese Liste in einem Software HDD Safe woanders wegzusperren
 
Ich denke, es führen bekanntlich viele Wege nach Rom. Mein Docker Vaultwarden Verzeichnis hat 23MB, das lässt sich "überall" mal ablegen. So viel ändert sich in der Regel nicht und wenn es zu Probleme käme, einen 100%-Verlust würde ich nie erleiden.
 
Ich würde sofort auf SQLite umsteigen, welche Vorteile bietet Postgres in deinem Szenario genau?
Ratschlag befolgt : nachdem mir das mit dump und Co und dem Damokles-Schwert einer neuen Postgres-Version, deren Umstieg für mich nur schwer handelbar wäre zu heikel war, bin ich auf eine docker-compose gestoßen, die ich mit Marius' Version pimpen konnte (ist doch einfacher und machbarer als befürchtet) . Damit wieder rein in den Portainer (Konsole allein ist noch nicht ;) ) und oh Wunder : es lief sogar.
Nun bin ich noch bei den Randbegradigungen (User und Organisationen etc - vielleicht wäre es auch anders gegangen ) , aber allein der Test eine db.sqlite3 raus- und wieder reinzukopieren fand ich cool (der tägliche Hyper backup - Job freut sich nun mit)
Danke an alle für den Wink mit dem Zaunpfahl und vielleicht hat das Portainer - und Dockergespenst etwas vom Schrecken verloren
 
  • Like
Reaktionen: *kw*
Danke @ctrlaltdelete,

Code:
image: postgres:16

hat auch meinen Allerwertesten soeben gerettet. Allerdings bei einem ganz anderen Projekt, nämlich PaperlessNGX. Das Ur-Setup war auch auf Basis einer Compose von Marius-Hosting entstanden. Auch dort war damals noch nicht die Version pinned.

Ich frage mich nun aber ob Postgres auch für PaperlessNGX Overkill ist. Und was ist der konkrete Vorteil von SQLite? Plattenplatz sollte es ja nicht sein.
 
Wieso sollte das ein Overkill sein? Sonst hätten es sie Entwickler ja nicht ja nicht unterstützt.
SQLite hat den Vorteil, dass alles in einer Datei ist. Die kannst du kopieren und hast alle Daten drin... Nachteil ist die Performance wenn mehrere zugreifen. Les dich sonst einfach mal bisschen in Datenbanken ein
 

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat