Overview
Discover what makes Vaultwarden powerful
Vaultwarden is a lightweight, **Rust‑based** reimplementation of the Bitwarden server API that aims to deliver full client compatibility while drastically reducing resource consumption. It exposes the same REST endpoints, WebSocket streams, and encryption protocols that official Bitwarden clients expect, enabling developers to drop it into existing infrastructures without changing client code. The core design philosophy is “fast, secure, and self‑hostable”, making it ideal for edge deployments, container‑oriented environments, or low‑budget hosting scenarios.
API Compatibility
Encryption‑First
WebSocket Sync
Multitenancy & Organizations
Overview
Vaultwarden is a lightweight, Rust‑based reimplementation of the Bitwarden server API that aims to deliver full client compatibility while drastically reducing resource consumption. It exposes the same REST endpoints, WebSocket streams, and encryption protocols that official Bitwarden clients expect, enabling developers to drop it into existing infrastructures without changing client code. The core design philosophy is “fast, secure, and self‑hostable”, making it ideal for edge deployments, container‑oriented environments, or low‑budget hosting scenarios.
Key Features
- API Compatibility – Implements the official Bitwarden API surface, including user management, vault CRUD, sharing, and group policies. Developers can use existing Bitwarden client SDKs or browser extensions without modification.
- Encryption‑First – All secrets are encrypted client‑side using the same PBKDF2 + AES-GCM scheme as Bitwarden, ensuring zero‑knowledge storage. The server only stores the encrypted blobs and a small set of metadata.
- WebSocket Sync – Real‑time sync via WebSocket is fully supported, mirroring the Bitwarden desktop/mobile experience.
- Multitenancy & Organizations – Supports organization‑level sharing, group roles, and permissions, enabling multi‑tenant SaaS or internal team deployments.
- Self‑Hosted Flexibility – Runs as a single binary; no external dependencies beyond the chosen database. Docker images are pre‑built for Docker Hub, GHCR, and Quay.io.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Rust 1.70+ (async‑std / tokio) |
| Web Framework | Actix‑web or Rocket (configurable via feature flags) |
| Database | PostgreSQL (primary), SQLite (dev/testing), optional Redis for caching |
| Auth & Encryption | Argon2id for password hashing, OpenSSL/ RustCrypto for AES‑GCM |
| Deployment | Docker (OCI), systemd service files, optional Kubernetes Helm chart |
The choice of Rust gives deterministic performance and memory safety guarantees. Actix‑web’s actor model handles concurrent connections efficiently, while the optional Rocket build offers a more ergonomic API surface for experimentation.
Core Capabilities
- RESTful Endpoints – CRUD operations for vault items, collections, groups, and users. Supports pagination, filtering, and bulk imports/exports.
- WebSocket Streams – Real‑time event bus for item changes, organization updates, and user notifications.
- OAuth & SSO – Built‑in support for OAuth2 providers (Google, Microsoft) and custom SAML via external adapters.
- Webhooks – Developers can register HTTP callbacks for events such as item creation, deletion, or user login.
- CLI Utilities –
vaultwarden-clifor database migration, backup, and health checks. - Metrics & Logging – Prometheus metrics endpoints (
/metrics) and structured JSON logs for observability.
Deployment & Infrastructure
Vaultwarden is intentionally minimalistic: a single binary plus a database. Typical deployment patterns include:
- Docker Compose – Quick spin‑up with environment variables for DB connection, TLS certs, and feature flags.
- Kubernetes – Official Helm chart supports StatefulSets with PostgreSQL sidecar or external DB, autoscaling based on request load.
- Bare Metal / VPS – Systemd service files allow running as a background daemon with log rotation.
- Edge Devices – The binary size (~30 MB) and low RAM footprint (≈200 MiB) make it suitable for Raspberry Pi or NAS environments.
Scalability is achieved by horizontally scaling the API layer behind a load balancer and using a shared PostgreSQL instance. The WebSocket layer can be clustered with Redis Pub/Sub to synchronize state across nodes.
Integration & Extensibility
- Plugin System – Developers can write custom Rust modules that hook into request lifecycle events (pre‑auth, post‑save). These are compiled into the binary or loaded as dynamic libraries.
- API Extension – The open API specification is available in JSON/YAML, enabling generation of client SDKs or integration tests.
- Custom Authentication – Replace the default auth flow with LDAP, Kerberos, or custom JWT providers via feature flags.
- Webhooks & Callbacks – Expose external services to respond to vault events, useful for CI/CD pipelines or audit logging.
- UI Customization – While the server is headless, developers can serve a custom front‑end that consumes the same API, allowing branding or feature additions.
Developer Experience
- Configuration – All settings are environment‑driven (
VAULTWARDEN_DB_URL,VAULTWARDEN_ADMIN_TOKEN, etc.), enabling CI pipelines and IaC tools. - Documentation – Comprehensive README, API spec, and feature matrix. The project’s GitHub repo hosts a dedicated docs folder with examples.
- Community – Active issue tracker, frequent releases (every 2–3 weeks), and a Matrix chat channel for real‑time support.
- Licensing – AGPL‑3.0, which is permissive for open‑source projects but requires derivative works to remain open; suitable for internal tooling.
Use Cases
- Enterprise Self‑Hosting – Organizations needing a private Bitwarden instance without cloud vendor lock‑in.
- SaaS Providers – Developers building a password‑management SaaS can embed Vaultwarden, expose a custom UI, and manage multi‑tenant data.
- Edge & IoT – Deploy on low‑power devices to provide secure credential storage for local networks.
- **Compliance‑Heavy
Open SourceReady to get started?
Join the community and start self-hosting Vaultwarden today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
g3proxy
Async Rust forward proxy with TLS, SOCKS5, and reverse‑proxy support
sigal
Self-hosted other
Fasten
Securely aggregate your health data into a personal record
Bracket
Manage tournaments effortlessly
Yarr
Self-hosted other
NymphCast
Turn any Linux device into a network media streamer