mrkeyoor.com_
Wed 16 Sept 23:55 UTC
Self-Hostedevaluationupdated 26 Aug 2026

vaultwarden review

Vaultwarden is an unofficial Rust server that works with the official Bitwarden password-manager clients. It gives individuals, families, and small organizations a lighter self-hosted backend for vaults, sharing, attachments, two-factor authentication, and emergency access.

+607stars / 7d
Verdict

Our Vaultwarden install took 52 seconds, but its plain build and test commands both stopped because no database backend was enabled. It is a good choice for a technically capable household or small team that wants official Bitwarden clients with a server they control. Use the published container, put it behind HTTPS, test restores, and stage client upgrades; choose the official server when vendor support matters more than a smaller deployment.

We ran it

Lab card: what happened when we ran vaultwardenScreenshot of vaultwarden (github.com/dani-garcia/vaultwarden)
Install✓ · 52s593 packages
Build✗ · 125s
Tests✗ · 28sran, no count parsed
Repo557 files~67,425 lines of source · 3.3 MB · 8 CI workflows · Dockerfile

Answers from our run

Does vaultwarden build from source?

Dependencies installed in 52 seconds (593 packages), and the build failed. We cloned commit fa2566d into a clean Debian container with 3 CPUs and no project-specific setup.

Do vaultwarden's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use vaultwarden?

Organizations that require official Bitwarden support or a vendor contract: Vaultwarden is independent, and its maintainers tell users not to contact Bitwarden support for its bugs.

What are the alternatives to vaultwarden?

Bitwarden server, Passbolt, KeePassXC. Our Vaultwarden install took 52 seconds, but its plain build and test commands both stopped because no database backend was enabled.

Setup3/5Simple container start, with HTTPS and backups still required
Docs4/5Good README and wiki, though source features need attention
Community5/5Fresh releases and active issue and pull-request work
Maturity4/5Long-lived and capable, with ongoing client-compatibility duties

Discussed on

  1. hnBitwarden compatible server written in Rust193 points
  2. hnVaultwarden commit introduces SSO using OpenID Connect186 points
  3. hnVaultwarden: Unofficial Bitwarden compatible server written in Rust153 points
  4. hnRe-License Vaultwarden to AGPLv3129 points
  5. hnVaultwarden: Alternative implementation of the Bitwarden server API in Rust19 points

Who it’s for

Individuals and families that want Bitwarden clients with a server they operate themselves.
Small organizations that need shared collections, groups, policies, and event logs without running Bitwarden's official stack.
Home-lab operators comfortable managing HTTPS, backups, container updates, and mail delivery.
Administrators who prefer a compact Rust service and can test client compatibility after upgrades.

Who it’s NOT for

Organizations that require official Bitwarden support or a vendor contract: Vaultwarden is independent, and its maintainers tell users not to contact Bitwarden support for its bugs.
Anyone who cannot maintain tested backups: the README disclaims data-loss liability and specifically recommends backing up both files and the database.
Operators who plan to expose the web vault over plain HTTP: Web Crypto requires a secure context, and the project directs deployments to HTTPS plus a reverse proxy.
Teams that cannot stage client and storage upgrades: release 1.37.2 was required for Bitwarden clients from 2026.8.0 onward, and open issue 7630 reports a startup failure for its optional S3 data-folder path.

Setup reality

Our sandbox installed 593 Rust packages in 52 seconds. A plain build failed after 125 seconds with exit 101, and tests failed after 28 seconds with the same exit code. Both logs say a database backend must be enabled and give cargo build --features sqlite as the previous-default path.

The recommended container needs a persistent /data volume and a correct public DOMAIN. The web vault requires HTTPS, so an internet-facing deployment also needs a reverse proxy and certificates. Mail, two-factor providers, SSO, and external databases add their own credentials and settings.

Source builders must select SQLite, MySQL, or PostgreSQL instead of relying on Cargo defaults. Operators also own backups and client compatibility. The repository includes a Dockerfile, but the published images are the documented route and bundle the modified web vault.

Official Bitwarden clients can use your own server

Vaultwarden implements the Bitwarden Client API in Rust, so users keep the official browser extensions, desktop programs, and mobile apps while pointing them at a server they control. The feature list covers personal vaults, attachments, Send, organizations, collections, groups, policies, event logs, directory sync, emergency access, and several forms of two-factor authentication. A modified Bitwarden web vault is bundled with the published containers.

That compromise makes sense for a household or small organization. Password-manager clients touch every browser and phone, which makes a wholesale switch disruptive. Vaultwarden changes the server side instead. The code carries an AGPL-3.0 license, and the maintainers explicitly aim it at individuals, families, and small organizations.

Compatibility is also an ongoing duty. Vaultwarden is not associated with Bitwarden, and users must report its problems to the Vaultwarden community. When official clients change their API expectations, the server may need a matching update. Release 1.37.2, published August 22, 2026, says it is required for client version 2026.8.0 and newer.

What happened when we ran it

Our sandbox cloned commit fa2566d into an unprivileged container with 3 CPUs, 12 GB of RAM, no secrets, and the lab's Rust image. The checkout contained 557 files, about 67,425 lines of source, and occupied 3.3 MB. Dependency installation succeeded in 52 seconds and installed 593 Rust packages.

A plain Cargo build did not pass. After 125 seconds it exited with code 101 while compiling Vaultwarden. The final error came from build.rs: a database backend must be enabled. It gave cargo build --features sqlite as the command for the previous default behavior. The log identifies a missing feature selection rather than an unknown compiler crash.

The test command failed after 28 seconds with exit 101 for the same reason. Its log reached compilation and printed the same database-backend requirement. We did not rerun either command with SQLite or another backend, so our run does not show whether a feature-selected build or its tests pass. It does show that a contributor using plain Cargo stops before application tests can run.

The repository has 8 CI workflow files and a Dockerfile, but no top-level tests directory. Rust tests can live beside the code, so that layout is not a coverage measure. The failed command above is the only test outcome we claim.

The published container avoids the Cargo feature decision

Vaultwarden recommends images from GitHub Container Registry, Docker Hub, or Quay. Its minimal example sets the public domain, binds the service to localhost, and mounts /data from the host. That persistent directory sits at the center of the backup plan. Losing it can mean losing vault data and attachments, and the README tells operators to back up files and the database.

The web vault needs a secure browser context for Web Crypto, which means HTTPS outside localhost. The README recommends putting Rocket behind a reverse proxy instead of using its built-in TLS support. A public deployment therefore includes DNS, certificates, proxy headers, an update policy, and restore testing even if the application container starts with one command.

Source builds expose a deliberate choice. Vaultwarden supports more than one database backend, and our 125-second build log shows that none was selected by the plain command. The error is direct and gives SQLite as one route. Normal operators will find the published image less surprising because it also includes the modified web client.

S3 users should stage the 1.37.2 upgrade

The server covers more than personal password storage. Organizations can share collections, assign roles, synchronize directories, reset member passwords under policy, and record events. Authentication options include authenticator apps, email, WebAuthn, YubiKey, and Duo. Each enabled service adds configuration, recovery work, and sometimes external credentials.

Open issue 7630 reports that the optional S3 data-folder path in 1.37.2 fails during startup because no default HTTP transport is installed. The report describes a PostgreSQL and S3 source build, and says 1.37.1 worked with the same recipe. That is a narrow configuration, not evidence that the standard container path fails. It is enough reason for S3 users to test startup and access to stored attachments before upgrading.

GitHub recorded the last push on August 24, 2026, two days after release 1.37.2. The repository had 66,275 stars and 89 open issues and pull requests when fetched. Those numbers point to an active project with a sizable support surface; the combined open count is not a bug count. The release fixed cross-linking and a Playwright test while updating client compatibility.

Self-hosting a password vault means owning recovery

Vaultwarden is mature enough for careful self-hosters, but password storage punishes casual operations. A successful login does not prove that backups restore, attachments survive, email recovery works, or a newly updated phone can still talk to the server. Those checks belong in every upgrade routine.

For a family, nonprofit, or small technical team, that maintenance can be a fair price for one server and the official Bitwarden clients. A company that needs a vendor to own incidents should run the official Bitwarden server or buy its hosted service. Vaultwarden suits administrators who accept that ownership before a failed login forces the lesson.

Alternatives

ProjectWhat it isPick it when
Bitwarden server gh↗The official self-hosted backend for Bitwarden's clients and commercial offering.pick this instead when official support, vendor alignment, or the full Bitwarden deployment is more important than a smaller server.
PassboltA team-oriented password manager built around sharing and browser workflows.pick this instead when group collaboration and Passbolt's own client model fit better than Bitwarden compatibility.
KeePassXC gh↗A desktop password manager that stores encrypted vault files without a required server.pick this instead when you want local encrypted files and can handle synchronization outside the password manager.

What people are saying

  1. [github-trending] dani-garcia/vaultwarden

Sources

  1. Vaultwarden repository and README
  2. Vaultwarden 1.37.2 release
  3. Vaultwarden wiki
  4. Vaultwarden issue 7630

More self-hosted reviews

Octop · newsnow · forem · octo-server · runtime · openfang · the whole board →