Server-Setup
PluriKey-Server installieren, konfigurieren und als systemd-Service betreiben. Ein einzelnes Rust-Binary — keine Abhaengigkeiten.
Voraussetzungen
- Linux-Server (Debian/Ubuntu empfohlen, auch in LXC-Containern oder VMs)
- Mindestens 512 MB RAM, 1 CPU-Core
- Netzwerkzugriff fuer die Clients (Browser-Extension, Desktop-App, CLI)
1. Binary installieren
PluriKey wird als statisch gelinktes Rust-Binary ausgeliefert — keine Runtime, keine Libraries, einfach kopieren und starten.
# Verzeichnisstruktur anlegen
sudo mkdir -p /opt/plurikey/{bin,vaults,data,config}
# Binary kopieren (aus Release oder selbst gebaut)
sudo cp plurikey-server /opt/plurikey/bin/
sudo cp plurikey-cli /opt/plurikey/bin/
sudo chmod +x /opt/plurikey/bin/*
2. Vault initialisieren
Ein Vault ist ein Verzeichnis mit age-verschluesselten Dateien. Jeder Benutzer bekommt sein eigenes Vault-Verzeichnis.
# Ersten Vault erstellen
/opt/plurikey/bin/plurikey-cli --path /opt/plurikey/vaults/meinname init
# Master-Key mit 2-von-3 Threshold einrichten
/opt/plurikey/bin/plurikey-cli --path /opt/plurikey/vaults/meinname setup-key
Recovery Key sicher aufbewahren!
Der setup-key-Befehl erzeugt eine Passphrase und einen Recovery-Key (BIP39 Mnemonic). Bewahre den Recovery-Key getrennt und sicher auf — er ist der einzige Weg, den Vault wiederherzustellen, wenn die Passphrase verloren geht.
3. Konfiguration
Der Server wird ueber Kommandozeilen-Parameter oder Umgebungsvariablen konfiguriert:
| Parameter | Env-Variable | Standard | Beschreibung |
|---|---|---|---|
--host | PLURIKEY_HOST | 0.0.0.0 | Bind-Adresse |
--port | PLURIKEY_PORT | 8200 | Listening-Port |
--vault-root | PLURIKEY_VAULT_ROOT | — | Wurzelverzeichnis der Vaults (Pflicht) |
--db-path | PLURIKEY_DB_PATH | plurikey.db | SQLite-Datenbank (Audit Trail) |
--mode | PLURIKEY_MODE | local | Deployment-Modus |
--allowed-origins | PLURIKEY_ALLOWED_ORIGINS | — | Zusaetzliche CORS-Origins |
--webauthn-rp-id | PLURIKEY_WEBAUTHN_RP_ID | Host | WebAuthn Relying Party ID |
--webauthn-rp-origin | PLURIKEY_WEBAUTHN_RP_ORIGIN | http://host:port | WebAuthn RP Origin |
Deployment-Modi
| Modus | Bind | CORS | TLS | Anwendungsfall |
|---|---|---|---|---|
local | 127.0.0.1 | Extension only | Nein | Einzelrechner, alles lokal |
lan | 0.0.0.0 | LAN + Extension | Nein | Heimnetzwerk, mehrere Geraete |
remote | 0.0.0.0 | Strict | Ja (via Proxy) | Oeffentlich erreichbar |
Welchen Modus waehlen?
Fuer den Heimgebrauch mit mehreren Geraeten im selben Netzwerk ist lan die richtige Wahl. local nur, wenn Extension und Server auf demselben Rechner laufen. remote erfordert einen Reverse Proxy mit TLS — siehe Netzwerk-Konfiguration.
4. systemd Service einrichten
Erstelle /etc/systemd/system/plurikey.service:
[Unit]
Description=PluriKey Password Manager Server
After=network.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/opt/plurikey/bin/plurikey-server \
--vault-root /opt/plurikey/vaults \
--db-path /opt/plurikey/data/plurikey.db \
--host 0.0.0.0 \
--port 8200 \
--mode lan
Restart=always
RestartSec=5
WorkingDirectory=/opt/plurikey
Environment=RUST_LOG=info
[Install]
WantedBy=multi-user.target
# Service registrieren und starten
sudo systemctl daemon-reload
sudo systemctl enable plurikey
sudo systemctl start plurikey
# Status pruefen
sudo systemctl status plurikey
# Logs anzeigen
sudo journalctl -u plurikey -f
5. Installation pruefen
# Health-Check (lokal)
curl http://localhost:8200/health
# Vom LAN (anderes Geraet)
curl http://<server-ip>:8200/health
Verzeichnisstruktur
/opt/plurikey/
bin/
plurikey-server # Server-Binary
plurikey-cli # CLI-Tool fuer Vault-Verwaltung
config/ # Optionale Konfigurationsdateien
data/
plurikey.db # SQLite (Audit Trail, Hash-Chain)
vaults/
benutzer1/ # Ein Verzeichnis pro Benutzer
.age-recipients # age Public Keys
.identity # Verschluesselter Private Key
.plurikey.json # Vault-Metadaten
domain.age # Verschluesselte Secrets
...
Sicherheitshinweise
- Keine Passphrase auf der Kommandozeile! Der
--passphrase-Parameter ist nur fuer Tests. Im Produktivbetrieb per-Request-Auth oder WebAuthn nutzen. - Dateiberechtigungen:
chmod 700 /opt/plurikey/vaults— nur root/Service-User darf zugreifen. - TLS im remote-Modus: Pflicht! Reverse Proxy (nginx, Caddy) davor — siehe Netzwerk.
- Audit Trail sichern: Die SQLite-DB enthaelt die Hash-Chain. Regelmaessig sichern — siehe Backup & Restore.
- Firewall: Port 8200 nur im LAN freigeben, nicht ins Internet — ausser hinter Reverse Proxy.