storage-p vs Vaultwarden: zero-knowledge & self-hosted
Both storage-p and Vaultwarden keep secrets safe, but they take different routes. storage-p is a self-hosted, zero-knowledge vault you operate yourself; Vaultwarden is a self-hosted, open-source server. Here is a factual side-by-side.
At a glance
- Hosting: storage-p runs self-hosted on your own server; Vaultwarden is a self-hostable server.
- Encryption: storage-p is zero-knowledge — your key is derived in the browser with Argon2id and the server only ever stores XChaCha20-Poly1305 ciphertext.
- Beyond passwords: storage-p also stores SSH/TLS keys, API keys and TOTP, and generates Ed25519 SSH keys and self-signed certificates client-side.
- Integrations: storage-p issues scoped API tokens whose every read can require your in-app or Telegram confirmation.
- Both Vaultwarden and storage-p can be self-hosted; storage-p keeps the database encrypted at rest with SQLCipher on top of client-side encryption.
- Both are open about their internals: Vaultwarden is open-source, and storage-p is self-hostable with a transparent, documented crypto design.
The core difference
You already self-host with Vaultwarden, so the real question is the model: storage-p derives keys in your browser (the server only ever holds ciphertext), additionally encrypts the database at rest with SQLCipher, and hands integrations scoped, confirmable API tokens instead of broad access.
Where storage-p stands out
The server never sees your master password or plaintext — encryption, decryption, key generation and the security audit all run on your device. You can store and generate SSH/TLS material, share via burn-after-read links or end-to-end sealed-box, and grant integrations narrow, auditable access instead of all-or-nothing exports.
When Vaultwarden may fit better
Vaultwarden is a mature project with its own ecosystem and clients; if you already run it and rely on its integrations, staying put may be simplest.
Switching from Vaultwarden
Moving is straightforward: Vaultwarden can export a Bitwarden-format JSON, which storage-p imports directly. See the step-by-step migration guide linked below.