You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Bitwarden-compatible server in Rust, so the official clients and browser extensions work against it unchanged. Of everything ADR-0008 places on the sensitive tier, this is the highest value per megabyte — a few hundred MB resident, and it replaces the single most consequential piece of SaaS in a household.
Upstream Bitwarden (README.md:1652, AGPL-3.0) is the alternative and is a heavier deployment (MSSQL, several containers) for no benefit at two users.
The part that actually matters
The restore path, not the deployment. A password vault is the one service here where "it is running" and "it is recoverable" are entirely different claims, and only the second one counts on the day it matters.
None of those are blockers for standing the service up, but shipping Vaultwarden without settling at least #64 and #77 means the household's credentials would be the least-backed-up data in the house. That inversion is worth avoiding on purpose rather than discovering later.
What it needs
Admin token and any SMTP credential in secrets/*.sops.yaml, rendered by scripts/render-config.sh. Never in compose.yaml, per the Grafana-password lesson in docs/security.md.
SIGNUPS_ALLOWED=false after the two accounts exist.
Sub-issue of #102.
What and why
Vaultwarden
GPL-3.0Rust/Docker— awesome-selfhostedREADME.md:1654.A Bitwarden-compatible server in Rust, so the official clients and browser extensions work against it unchanged. Of everything ADR-0008 places on the sensitive tier, this is the highest value per megabyte — a few hundred MB resident, and it replaces the single most consequential piece of SaaS in a household.
Upstream Bitwarden (
README.md:1652,AGPL-3.0) is the alternative and is a heavier deployment (MSSQL, several containers) for no benefit at two users.The part that actually matters
The restore path, not the deployment. A password vault is the one service here where "it is running" and "it is recoverable" are entirely different claims, and only the second one counts on the day it matters.
This lands on an estate where:
make backupoverwrites its own last-good archive, and nothing verifies it.make backupuses an unpinned alpine image.None of those are blockers for standing the service up, but shipping Vaultwarden without settling at least #64 and #77 means the household's credentials would be the least-backed-up data in the house. That inversion is worth avoiding on purpose rather than discovering later.
What it needs
secrets/*.sops.yaml, rendered byscripts/render-config.sh. Never incompose.yaml, per the Grafana-password lesson indocs/security.md.SIGNUPS_ALLOWED=falseafter the two accounts exist.Which VLAN this touches
🔴 99 — Winterfell (management)
Security review
secrets/*.sops.yamldocs/network.mdwith an OUI-truncated MAC — n/aDepends on
#129 (Caddy) and the mini PC in #102. Strongly related: #122, #106, #64, #77.