If you want to self-host a password manager that uses the Bitwarden client apps, you have two main options. The official Bitwarden server (open source, supported by Bitwarden Inc., Microsoft .NET stack). Or Vaultwarden, the community-developed Rust rewrite of the Bitwarden server API.
Both work with the same Bitwarden clients (mobile apps, browser extensions, desktop apps). The choice between them comes down to operational characteristics.
What each one is
Bitwarden official server is the open-source self-hosted version of what Bitwarden Inc. offers as their commercial cloud service. Same code, same features, runs on your own infrastructure. Released under AGPL license.
Vaultwarden is an unofficial implementation of the Bitwarden API in Rust, started by dani-garcia in 2018 (originally as Bitwarden_RS, renamed for trademark reasons). Same client compatibility as the official server, very different operational characteristics.
Both work with the standard Bitwarden client apps. The clients do not need to know which server they are talking to; they speak the Bitwarden API regardless.
What the official Bitwarden server does well
It is the official, vendor-supported implementation. Bug fixes and feature parity track Bitwarden’s commercial product.
It supports the full enterprise feature set if you have an enterprise license (SSO integration, advanced policies, etc.).
It is what Bitwarden’s own support team can help you with if you need help.
For organizations that already use Bitwarden’s enterprise features, self-hosting the official server provides feature parity with the cloud version.
What the official Bitwarden server does less well
The resource requirements are heavy. Bitwarden’s official self-hosted server runs as multiple Docker containers (web vault, identity, API, admin, attachments, icons, notifications, plus database, plus Redis cache). Memory usage starts around 2 GB and grows from there.
The setup is complex. The official installation script handles much of it but the resulting deployment has many moving parts.
The Microsoft .NET stack is heavyweight. Container images are large; updates pull substantial data.
For a single-user or small-family setup, the official server is dramatic overkill. The complexity is justified for organizations; not for individuals.
What Vaultwarden does well
The resource usage is dramatically lower. The single Rust binary uses 50-100 MB of RAM idle; under typical load it stays under 200 MB.
The setup is single-container. One Docker image, one configuration file, you are done.
The performance is excellent. Rust is genuinely fast; Vaultwarden is more responsive than the official server in our testing.
The community is active. Issues are fixed quickly, features are added regularly, the Discord and GitHub discussions are responsive.
The configuration is simpler. Most settings are environment variables in your docker-compose.yml; no separate admin web interface for basic configuration.
For individuals, families, and small teams self-hosting: Vaultwarden is dramatically easier and more efficient.
What Vaultwarden does less well
It is not officially endorsed by Bitwarden Inc. While Bitwarden’s company is officially “neutral” toward Vaultwarden, the lack of formal endorsement creates some operational uncertainty for users who want vendor-supported infrastructure.
The enterprise features are limited. Vaultwarden supports the basic features and most premium features (organizations, vault sharing) but does not implement the full enterprise feature set.
Some specific premium features are subtly different from the official server. Most users do not notice; some specific advanced configurations may behave differently.
The single-developer-led nature (with community contributors) creates some continuity risk if the lead maintainer steps back. The community would likely continue, but the transition could be bumpy.
Side by side
| Property | Official Bitwarden Server | Vaultwarden |
|---|---|---|
| Source | Bitwarden Inc., AGPL | Community, GPLv3 |
| Language | C# (.NET) | Rust |
| Memory usage | 2 GB+ | 100-200 MB |
| Container count | 8+ | 1 |
| Setup complexity | High | Low |
| Update complexity | Moderate | Trivial |
| Vendor support | Yes (paid) | No |
| Feature parity with Bitwarden Cloud | Full | Almost full |
| Best for | Enterprise self-hosting | Individual/family/small team |
Use cases where official Bitwarden server wins
Your organization already pays for Bitwarden Enterprise and you want self-hosted with full feature parity.
You need vendor support for compliance reasons.
You have the operational capacity to manage a heavyweight multi-container application.
Use cases where Vaultwarden wins
You are self-hosting for personal, family, or small-team use.
You want the lowest resource usage and simplest setup.
You do not need enterprise-only features.
You value operational simplicity over vendor support.
A specific recommendation
For 95 percent of self-hosters: Vaultwarden. The resource savings and operational simplicity are decisive. The features you actually use work fine.
For organizations using enterprise Bitwarden features and self-hosting for compliance reasons: official Bitwarden server.
For users uncertain whether they will need enterprise features: start with Vaultwarden, migrate to official server if you eventually need the enterprise features. The migration is straightforward (export from Vaultwarden, import to official server).
For most readers of this site: Vaultwarden, no exception.
Vaultwarden GitHub | Bitwarden Self-hosted
Related: Bitwarden setup walkthrough on a five dollar VPS, Vaultwarden complete setup with Caddy and Tailscale, 13 things I wish someone had told me before self-hosting