Vaultwarden: Self-Hosted Password Management Done Right
Learn how to deploy Vaultwarden on your own server. Step-by-step guide covering Docker setup, HTTPS configuration, admin hardening, backup strategy, and Bitwarden client integration.

PASSWORD MANAGEMENT
Why Your Password Manager Should Run on Your Own Server
Cloud password managers are convenient but they represent a fundamental trust decision: you are storing your most sensitive credentials on someone else's infrastructure, under someone else's security practices, subject to someone else's data retention policies. Every major password manager has experienced at least one security incident. Some have been catastrophic.
Self-hosting your password manager eliminates the third-party trust requirement entirely. Your credentials never leave your infrastructure. There are no subscription fees, no vendor lock-in, and no risk of a provider being acquired, shut down, or breached.
Vaultwarden is a lightweight, open-source implementation of the Bitwarden server API. It is fully compatible with all official Bitwarden clients — browser extensions, mobile apps, and desktop applications — while running on a fraction of the resources required by the official Bitwarden server. Zero-Exposure Infrastructure guide
Vaultwarden vs Official Bitwarden Server
The official Bitwarden server is a full .NET application stack requiring significant resources. Vaultwarden implements the same API in Rust, consuming roughly 10MB of RAM at idle. For personal and small team use, Vaultwarden provides identical functionality at a fraction of the operational cost. All official Bitwarden clients connect to Vaultwarden without modification.
MANAGED ALTERNATIVE
Prefer Not to Self-Host Your Passwords?
Self-hosting Vaultwarden gives you full control — but it also gives you full responsibility. If you want the same zero-knowledge security model without the operational overhead, Proton Pass is the managed option we'd recommend.
Try Proton PassThis is an affiliate link. If you purchase, I earn a commission at no extra cost to you.
Vaultwarden Architecture
Vaultwarden sits behind your reverse proxy and Cloudflare Tunnel. Clients connect using the standard Bitwarden protocol — the self-hosted server is transparent to the client applications.
From Bitwarden client to self-hosted vault — the complete request path
Client Compatibility
All official Bitwarden clients work without modification. Point them at your server URL instead of bitwarden.com — everything else is identical.
HTTPS Required
Bitwarden clients require HTTPS. Behind Cloudflare Tunnel, TLS is handled at the edge — Vaultwarden itself only needs to serve HTTP internally.
End-to-End Encryption
Vault data is encrypted client-side before transmission. The server stores only encrypted blobs — even with full server access, credentials are unreadable without the master password.
Offline Access
Bitwarden clients cache an encrypted copy of the vault locally. Credentials remain accessible even when your server is temporarily unreachable.
Deploy Vaultwarden as a Docker container with a persistent volume for vault data storage.
From zero to a fully operational self-hosted password manager in five steps.
Deploy Vaultwarden as a Docker container with a persistent volume for vault data storage.
Configure Traefik routing labels to expose Vaultwarden under your chosen subdomain through Cloudflare Tunnel.
Secure the admin panel. Vaultwarden's admin interface must be protected with a strong token — it is disabled by default and should remain inaccessible from the public internet.
Configure the Bitwarden client. Point your browser extension or mobile app at your server URL and create your account.
Set up automated backups. The entire vault is stored in a single SQLite file — back it up on a schedule to at least one off-server location.
HARDENING
Hardening Vaultwarden for Production Use
Admin Panel Security
Vaultwarden's admin panel provides full control over all user accounts and vault data. It must never be publicly accessible. The recommended approach is to restrict the admin panel to internal network access only — either by routing it through a separate Traefik router with an IP allowlist middleware, or by disabling it entirely after initial setup and re-enabling only when needed. Traefik guide
The admin token should be a bcrypt-hashed value rather than a plaintext string. Vaultwarden supports hashed tokens natively — store the plaintext token in your password manager and only the hash in the configuration.
Registration Control
By default, Vaultwarden allows anyone with access to your server URL to create an account. For personal use, disable open registration immediately after creating your accounts. New accounts can still be invited via email when needed — open registration is not required for invite-based onboarding.
Backup Strategy
Vaultwarden stores all data in a single SQLite database file. This simplicity is a backup advantage — a single file copy is a complete backup. Automate daily backups using a cron job or container sidecar that copies the database file to an encrypted off-server location. Test restores periodically — a backup you have never restored is a backup you cannot trust. Production Backup guide
Two-Factor Authentication
Enable two-factor authentication on every Vaultwarden account. The server supports TOTP, email codes, and FIDO2/WebAuthn. TOTP with an authenticator app is the recommended minimum. This ensures that a compromised master password alone is insufficient to access the vault.
MANAGED ALTERNATIVE
A Polished Managed Password Manager
If self-hosting isn't the right fit for your situation, NordPass offers zero-knowledge encryption, cross-platform clients, and a clean interface — from the same team behind NordVPN. A solid managed alternative to Vaultwarden.
Try NordPassThis is an affiliate link. If you purchase, I earn a commission at no extra cost to you.
Vaultwarden Security Layers
Password manager security operates at multiple independent layers. Each layer must hold independently — a failure in one should not compromise the others.
- All encryption and decryption happens in the client — server never sees plaintext • Master password never transmitted — only a derived key used for authentication • Zero-knowledge architecture — server compromise does not expose credentials • PBKDF2 or Argon2 key derivation with configurable iterations
- TLS enforced at Cloudflare edge — no plaintext transmission possible • HSTS header prevents protocol downgrade attacks • Certificate managed automatically — no manual renewal risk • Bitwarden clients reject non-HTTPS server URLs by default
- Admin panel restricted to internal network only • Open registration disabled after account creation • Failed login attempt logging and optional rate limiting • Admin token stored as bcrypt hash — not plaintext
- Daily automated backups of SQLite database file • Backups encrypted before transmission to off-server storage • Restore procedure documented and tested • Multiple backup destinations — single point of failure unacceptable for credential storage
Vaultwarden System Requirements
Vaultwarden Production Checklist
Complete every item before using Vaultwarden as your primary password manager. A misconfigured password manager is worse than no password manager.
Vaultwarden is an unofficial Bitwarden server implementation and is not affiliated with or endorsed by Bitwarden Inc. It is maintained by the open-source community. Before migrating your primary credentials to any self-hosted solution, ensure you have a tested backup and recovery procedure in place. Losing access to your password manager without a recovery path is a severe operational incident.