VaultBox is a local-first inventory app. Treat the machine that runs it as the trust boundary.
.env(repo root) holdsSECRET_KEYandVAULTBOX_ENCRYPTION_KEY. Django creates it on first start (mode0600). Never commit it.- Changing
VAULTBOX_ENCRYPTION_KEYmakes existing Fernet ciphertext undecryptable (holding secrets, seed phrases, wrapped backup-schedule passwords). Back up.envwith the database. - Backup archive passwords are chosen per backup and are not stored. Losing the password means that
.vaultboxfile cannot be restored.
- Sign-in is passkeys (WebAuthn). RP ID is
localhostunlessVAULTBOX_HOSTNAMEor Admin → Site & Hostname sets another name. Open the App URL that matches that RP ID (http://localhost:5173for local beta, not127.0.0.1). After an RP ID change, login at the new host offers admin passkey bootstrap (no keys exist for that RP ID yet). Old passkeys remain bound to the previous host. - There is no password login.
- Demo inventory reset is Full Admin only (Admin → Danger zone, type
RESET).
Please do not file a public issue with exploit details.
Use GitHub private vulnerability reporting so the maintainer can patch before the report is public. If that form is unavailable, contact the maintainer through GitHub.