Vaultwarden
Vaultwarden, früher bekannt als Bitwarden_RS, ist eine leichtgewichtige und performante Open-Source-Alternative zu Bitwarden. Es handelt sich um eine selbst gehostete Passwortverwaltungslösung, die vollständig mit dem offiziellen Bitwarden-Ökosystem kompatibel ist. Vaultwarden ermöglicht es, sensible Zugangsdaten, sichere Notizen und andere geheime Informationen zentral und sicher zu verwalten.
Mit minimalen Systemanforderungen kann Vaultwarden problemlos auf ressourcenschwachen Systemen oder in Containern betrieben werden. Es unterstützt Funktionen wie Zwei-Faktor-Authentifizierung (2FA), End-to-End-Verschlüsselung und die Integration in bestehende Verzeichnisdienste. Vaultwarden bietet zudem eine Webschnittstelle und verschiedene Clients für eine nahtlose Benutzererfahrung.
Installation
Cargo herunterladen
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
Vaultvarden herunterladen und builden
git clone https://github.com/dani-garcia/vaultwarden.git
cargo build --features postgresql --release
Auf eine Domain aufschalten
# run.sh
#!/bin/bash
screen -dmS bitwarden ~/vaultwarden/target/release/vaultwarden
.env File
Passe den Port nach belieben an, und stelle sicher das die SQL Daten (user, passwort und dbname) und der admin token stimmen, die vollständigen Informationen und alle setzbare Optionen (und deren defaults) findet sich unter https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/.env.template
## Be aware that most of these settings will be overridden if they were changed
## in the admin interface. Those overrides are stored within DATA_FOLDER/config.json .
##
## By default, Vaultwarden expects for this file to be named ".env" and located
## in the current working directory. If this is not the case, the environment
## variable ENV_FILE can be set to the location of this file prior to starting
## Vaultwarden.
DOMAIN=https://bitwarden.example.com
SIGNUPS_ALLOWED=false
ROCKET_ADDRESS=127.0.0.1
ROCKET_PORT=8222
DATABASE_URL='postgresql://xyz00_bitwarden:thesqlpassword@localhost/xyz00_bitwarden'
SMTP_HOST=127.0.0.1
SMTP_PORT=25
SMTP_SSL=false
SMTP_FROM=bitwarden@example.com
SMTP_FROM_NAME="My Personal Bitwarden"
ADMIN_TOKEN=<someverLonganduniquetoken>
ORG_CREATION_USERS=user@example.com
REQUIRE_DEVICE_EMAIL=true
.htaccess
Falls du den Port angepasst hast muss er auch hier angepasst werden.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC,OR]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://127.0.0.1:8222%{REQUEST_URI} [proxy]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:8222%{REQUEST_URI} [proxy,last]
Weboberfläche bereitstellen
Versionsnummer anpassen, herunterladen und entpacken https://github.com/dani-garcia/bw_web_builds/releases/
wget https://github.com/dani-garcia/bw_web_builds/releases/download/v2022.6.2/bw_web_v2022.6.2.tar.gz
tar xvf bw_web_v2022.6.2.tar.gz
rm bw_web_v2022.6.2.tar.gz
Update von Vaultwarden
Das Update von Vaultwarden auf einem Hostsharing-Server erfordert ein paar Besonderheiten. Diese Anleitung beschreibt das Update ohne Docker unter Nutzung der vorkompilierten Binärdatei. Wegen abweichender `glibc`-Versionen wird zwingend die **Alpine-Version** verwendet, die per Skript aus dem offiziellen Docker-Image extrahiert wird.
Die folgende Anleitung geht davon aus, dass Vaultwarden im Verzeichnis `~/vaultwarden` installiert ist.
Dienst stoppen und Backup erstellen
cd ~/vaultwarden
systemctl --user stop vaultwarden
cp -r data data_backup_$(date +"%Y%m%d")
mv vaultwarden vaultwarden_alt
mv web-vault web-vault_alt
Vaultwarden Backend (Alpine) aktualisieren
wget -qO docker-image-extract https://raw.githubusercontent.com/jjlin/docker-image-extract/main/docker-image-extract
chmod +x docker-image-extract
./docker-image-extract vaultwarden/server:alpine
cp output/vaultwarden ./vaultwarden
chmod +x vaultwarden
Web-Vault (Frontend) aktualisieren
Den direkten Link zur aktuellen `.tar.gz`-Datei unter https://github.com/dani-garcia/bw_web_builds/releases/latest manuell kopieren.
wget -O web-vault.tar.gz "HIER_KOPIERTEN_LINK_EINFÜGEN"
tar -xzf web-vault.tar.gz
Aufräumen und Dienst neu starten
rm -rf output docker-image-extract web-vault.tar.gz
systemctl --user start vaultwarden
systemctl --user status vaultwarden
Abschluss
Wenn der Server nach dem Update fehlerfrei läuft, können die Backups entfernt werden:
rm -rf vaultwarden_alt web-vault_alt data_backup_*