Vaultwarden #21

Closed
opened 2024-03-21 12:29:19 +01:00 by lukas · 10 comments
Owner

Dieses Issue ist zur Evaluierung, Planung und Organisation eines potenziellen Vaultwarden-Servers, welcher eine freie Implementierung von Bitwarden für das selbsthosting ist.

Der Grund zum selbsthosten ist das Freischalten jeglicher Premium-Features, mittels unserer eigenen Infra.

Ich würde mich sehr über Feedback freuen, ob das eine gute Idee ist und wie viele an diesem Projekt interessiert wären. Auch wenn ihr keinen Kommentar schreiben wollt, so wäre eine Reaktion mittels Emojis bereits schon sehr erfreulich.

Dieses Issue ist zur Evaluierung, Planung und Organisation eines potenziellen Vaultwarden-Servers, welcher eine freie Implementierung von Bitwarden für das selbsthosting ist. Der Grund zum selbsthosten ist das Freischalten jeglicher Premium-Features, mittels unserer eigenen Infra. Ich würde mich sehr über Feedback freuen, ob das eine gute Idee ist und wie viele an diesem Projekt interessiert wären. Auch wenn ihr keinen Kommentar schreiben wollt, so wäre eine Reaktion mittels Emojis bereits schon sehr erfreulich.
lukas added the
Status
Need More Info
Domain
libre.moe
labels 2024-03-21 12:29:19 +01:00
lukas self-assigned this 2024-03-21 12:29:19 +01:00
lukas added this to the Issue Board project 2024-03-21 12:29:19 +01:00
Owner

*Evaluierung

*Evaluierung
Author
Owner

Vaultwarden hat sogar offizielle Podman docs und scheint generell container-first gedacht zu sein, so good news.

Anscheinend brauchen die lediglich ein volume für /data, nicht mal eine Datenbank-Verbindung, da es by default mit sq-lite shipped. Ich würde das auch erstmal unverändert lassen, um Vaultwarden keine dependencies zu geben. Ich werde aber die Performance noch testen.
Auf jeden Fall scheint es recht simpel zu sein einen twin-server aufzusetzen, falls der primary offline geht.

Erster draft einer podman-compose.yml könnte so aussehen:

version: '3.5'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: on-failure
    mem_limit: 500M
    ports:
      - "5005:8080"
    environment:
      - TZ=Europe/Berlin
      - DOMAIN=https://vault.libre.moe
      - ROCKET_PORT=8080
    volumes:
      - vaultwarden:/data

volumes:
  vaultwarden:
    external: true
Vaultwarden hat sogar offizielle [Podman docs](https://github.com/dani-garcia/vaultwarden/wiki/Using-Podman) und scheint generell container-first gedacht zu sein, so good news. Anscheinend brauchen die lediglich ein volume für `/data`, nicht mal eine Datenbank-Verbindung, da es by default mit `sq-lite` shipped. Ich würde das auch erstmal unverändert lassen, um Vaultwarden keine dependencies zu geben. Ich werde aber die Performance noch testen. Auf jeden Fall scheint es recht simpel zu sein einen twin-server aufzusetzen, falls der primary offline geht. Erster draft einer `podman-compose.yml` könnte so aussehen: ```yaml version: '3.5' services: vaultwarden: image: vaultwarden/server:latest container_name: vaultwarden restart: on-failure mem_limit: 500M ports: - "5005:8080" environment: - TZ=Europe/Berlin - DOMAIN=https://vault.libre.moe - ROCKET_PORT=8080 volumes: - vaultwarden:/data volumes: vaultwarden: external: true ```
lukas added
Status
Acknowledged
and removed
Status
Need More Info
labels 2024-03-28 16:11:01 +01:00
lukas added the
Priority
Low
label 2024-03-28 16:13:12 +01:00
Author
Owner

Eine Test-Instanz ist nun online und entsprechend konfiguriert. Wenn alles gut läuft, werde ich sie in ein paar Tagen als offiziellen Dienst eintragen. Die Daten dieser Instanz werden dabei auch einmal gelöscht. Diese Instanz kann auch unangekündigt für Tests offline gehen etc, sie ist aktuell nur zum Testen gedacht.

https://vault.libre.moe

Eine Test-Instanz ist nun online und entsprechend konfiguriert. Wenn alles gut läuft, werde ich sie in ein paar Tagen als offiziellen Dienst eintragen. Die Daten dieser Instanz werden dabei auch einmal **gelöscht**. Diese Instanz kann auch unangekündigt für Tests offline gehen etc, sie ist aktuell nur zum Testen gedacht. https://vault.libre.moe
Author
Owner

Für die Nutzung von Clients ist es lediglich erforderlich, den Client auf "selbst gehostet" zu stellen, und dann die URL anzugeben.
grafik

Für die Nutzung von Clients ist es lediglich erforderlich, den Client auf "selbst gehostet" zu stellen, und dann die URL anzugeben. ![grafik](/attachments/be71a5e2-1c27-4515-8178-2f88ec12fe94)
lukas removed the
Status
Acknowledged
label 2024-04-04 19:09:33 +02:00
Author
Owner

Kleine Umfrage / Bitte um Feedback!

Es gibt zwei Arten diesen Server zu betreiben.

  • Mit eingebauter SQLite Datenbank-Datei
  • Mit Anbindung an eine existierende Datenbank

Nutzen wir die SQLite db, so wird es sehr einfach möglich sein, die Instanz temporär isolated zu hosten, im Falle eines Totalausfalles. Außerdem wird das hosten einer Spiegelinstanz einfach. Jedoch ist diese db langsamer und potenziell nicht sehr fehlertolerant.

Nutzen wir eine echte Datenbank, so muss für die Operation vom Server auch die Datenbank in Betrieb sein, jedoch erlaubt dies eine bessere Performance, standardisierte Backup-Richtlinien und eine höhere Kontrolle / Datensicherheit.

Opinions?

# Kleine Umfrage / Bitte um Feedback! Es gibt zwei Arten diesen Server zu betreiben. - Mit eingebauter SQLite Datenbank-Datei - Mit Anbindung an eine existierende Datenbank Nutzen wir die SQLite db, so wird es sehr einfach möglich sein, die Instanz temporär isolated zu hosten, im Falle eines Totalausfalles. Außerdem wird das hosten einer Spiegelinstanz einfach. Jedoch ist diese db langsamer und potenziell nicht sehr fehlertolerant. Nutzen wir eine echte Datenbank, so muss für die Operation vom Server auch die Datenbank in Betrieb sein, jedoch erlaubt dies eine bessere Performance, standardisierte Backup-Richtlinien und eine höhere Kontrolle / Datensicherheit. Opinions?
Owner

Kannst du bei der richtigen DB sqlite Exports machen?
Dann könntest du theoretisch täglich einen Export machen und wenn es einen Ausfall gibt, könntest du schnell einen read-only Ersatzserver aufsetzen, der halbwegs aktuell ist. Wofür würdest du jedoch eine Spiegelinstanz haben wollen?

Kannst du bei der richtigen DB sqlite Exports machen? Dann könntest du theoretisch täglich einen Export machen und wenn es einen Ausfall gibt, könntest du schnell einen read-only Ersatzserver aufsetzen, der halbwegs aktuell ist. Wofür würdest du jedoch eine Spiegelinstanz haben wollen?
Author
Owner

Ursprünglich einfach als Redundanz, damit man sehr einfach im Falle eines Totalausfalles an seine PWs kommt, aber mein testen mit Bitwarden-Clients zeigte, dass die generell sehr gut damit klarkommen, wenn der Server nicht avail ist. Es juckt die basically nicht, bis du etwas ändern willst.

Anscheinend sind sqlite backups aber nicht mehr möglich, seit ich die test instance auf postgres gestellt habe. Aber ja, eigentlich müsste mann einen sql dump ja auch in sqlite konvertieren.

Ursprünglich einfach als Redundanz, damit man sehr einfach im Falle eines Totalausfalles an seine PWs kommt, aber mein testen mit Bitwarden-Clients zeigte, dass die generell sehr gut damit klarkommen, wenn der Server nicht avail ist. Es juckt die basically nicht, bis du etwas ändern willst. Anscheinend sind sqlite backups aber nicht mehr möglich, seit ich die test instance auf postgres gestellt habe. Aber ja, eigentlich müsste mann einen sql dump ja auch in sqlite konvertieren.
Owner

Wenn es so ist, würde ich tendenziell Postgres als sinnvoller erachten.

Wenn es so ist, würde ich tendenziell Postgres als sinnvoller erachten.
Author
Owner

Ja, vorallem kann man ja auch einfach dann postgres mit starten. Meine daily backups sind nämlich nicht nur von postgres, sondern beinhalten auch einen dump, insodern sollte man (gänzlich untested) einfach eine neue instance starten und den dump importieren können.

Ja, vorallem kann man ja auch einfach dann postgres mit starten. Meine daily backups sind nämlich nicht nur von postgres, sondern beinhalten auch einen dump, insodern sollte man (gänzlich untested) einfach eine neue instance starten und den dump importieren können.
Author
Owner

Die Instanz ist jetzt offiziell online und bereit für die Geheimnisse dieser Welt ^^

Die Instanz ist jetzt offiziell online und bereit für die Geheimnisse dieser Welt \^\^
lukas closed this issue 2024-04-12 11:49:59 +02:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: KomuSolutions/igot99issues#21
No description provided.