Anleitung Vaultwarden Installation

Anleitung Vaultwarden Installation

Warum Bitwarden / Vaultwarden?

Wer heutzutage noch überall “123456” als Passwort nutzt, sich selbst aus sperrt weil er sein Passwort vergessen hat oder gar seit 20 Jahren das selbe Passwort in unterschiedlichen Kombinationen verwendet samt eindeutigen Namen die Rückschlüsse auf die Person geben. Der lebt eindeutig hinterm Datenschutz-Mond.

Es gibt sicherlich Alternativen aber wie sehen diese aus? Diverse Apps bieten zwar Online-Speicher an, aber wie sicher ist dieser? Auch Datenschützer empfehlen gerne die KeePass Lösungen. Aber das ständige sichern und aufbewahren sowie das Abgleichen einer einzigen Datenbankdatei kann aufwendig und auch nervig sein.

Einzig Bitwarden bietet hier eine selfhost alternative die es in sich hat. (Es sei auch zu erwähnen, dass es auch kostenlos bei Bitwarden selbst eine 1-Personen Lösung gibt. Auf den Servern von Bitwarden selbstverständlich).

Der OpenSource-Fork vaultwarden kann genauso gut die Apps und Tools von Bitwarden nutzen. Denn das ist ein weiterer Pluspunkt von Bitwarden, die Tatsache, dass es für jede Plattform eine App gibt und für jeden Browser eine Erweiterung. Vaultwarden ist allerdings wesentlich Schlanker und nicht so Ressourcenhungrig wie das Original von Bitwarden.

Voraussetzung

Zunächst wird wieder ein Linux-Server notwendig sein Ob das ein SBC ist oder ein kleiner VPS ist quasi egal. 1 CPU mit 500 MB Ram reicht vollkommen aus.

Da ich hierfür docker-compose und Caddy einsetze ist es ratsam diese Tutorials zu kennen.

Docker-compose Datei

services:
  bwrs:
    image: vaultwarden/server
    restart: unless-stopped
    volumes:
      - ./bwdata:/data
    env_file:
      - .env
  caddy:
    image: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy/caddy_data:/data
      - ./caddy/config:/config
    env_file:
      - .caddyenv
    links:
      - bwrs

volumes:
  caddy_data:
     external: true
  caddy_config:

Caddy als Compose Zusatz

In diesem Fall habe ich den Caddy-Proxy gleich als Docker Image hinzugefügt. Man erspart sich also die zusätzliche Installation
Nach dem ersten docker compose up -d wird auch im gleichen Verzeichnis eine Caddyfile Datei angelegt, welche folgenden Inhalt hat:

{$DOMAIN} {
 tls {$EMAIL}

 encode gzip

 header / {
      # Enable HTTP Strict Transport Security (HSTS)
      Strict-Transport-Security "max-age=31536000;"
      # Enable cross-site filter (XSS) and tell browser to block detected attacks
      X-XSS-Protection "1; mode=block"
      # Disallow the site to be rendered within a frame (clickjacking protection)
      X-Frame-Options "DENY"
      # Prevent search engines from indexing (optional)
      X-Robots-Tag "none"
      # Server name removing
      -Server
  }
 # The negotiation endpoint is also proxied to Rocket
 reverse_proxy /notifications/hub/negotiate bwrs:80

 # Notifications redirected to the websockets server
 reverse_proxy /notifications/hub bwrs:3012

 # Proxy the Root directory to Rocket
 reverse_proxy bwrs:80 {
      # Send the true remote IP to Rocket, so that bitwarden_rs can put this in the
      # log, so that fail2ban can ban the correct IP.
      header_up X-Real-IP {remote_host}
 }
}

Ebenfalls notwendig ist die Erstellung einer .caddyenv Datei per:

nano .caddyenv

Hier sollte folgendes Hinterlegt werden:

DOMAIN=sub.domain.com
EMAIL=user@mail.com

Zusätzlich dient die .env Datei weitere Parameter einzustellen. Für den Anfang reicht es aus unter Domain= wieder seine eigene Domain einzutragen.