Bitwarden
bitwarden · Passwords & secrets
GitHub stars
20,511Awaiting first sync
No measured star history yet
What is Bitwarden?
Bitwarden is a password manager whose server is open source, so you can run it yourself. Your encrypted vault then lives on hardware you control, while you keep using the same Bitwarden apps on every device. This suits people who want their password data on their own servers rather than in someone else's cloud.
Bitwarden server is the back end behind the Bitwarden password manager, and you can run it on your own hardware. It provides the APIs, database and core services that the official browser extensions, desktop, mobile and command-line apps connect to. Vaults are end-to-end encrypted and hold logins, notes, cards and identities, with a password generator and sync across devices.
Core capabilities
- Official browser, desktop, mobile and CLI apps can connect to your own server.
- Free accounts store unlimited logins, notes, cards and identities.
- Standard Docker install with a setup script, or a single-container lite option.
Your server, the official apps
The bitwarden/server repository holds the APIs, database and other core services behind every Bitwarden client. Any official client can be pointed at a self-hosted instance: the browser extension, mobile and desktop apps have a Self-hosted option on the login screen, and the CLI uses bw config server. Vaults are end-to-end encrypted. Free accounts can store unlimited logins, notes, cards and identities, generate passwords, make encrypted exports and use two-step login with a security key, an authenticator app or email.
- Self-hosted
- Browser extension
- Mobile apps
- CLI
Standard and lite deployments
The standard deployment runs Bitwarden as a set of Docker containers managed by the bitwarden.sh script on Linux or bitwarden.ps1 on Windows. It ships with an MSSQL Express database, and the docs list 2 GB of memory and 12 GB of storage as the minimum. Bitwarden lite runs everything from one image, needs at least 200 MB of memory and supports ARM devices. Lite connects to a database you provide, such as SQLite, PostgreSQL, MySQL, MariaDB or MSSQL, and Bitwarden recommends it for personal use and home labs rather than business use.
- Docker
- Bitwarden lite
- Raspberry Pi
- PostgreSQL
- SQLite
AGPL-3.0 code and paid licences
Most of the server code is licensed under AGPL-3.0, while code in the bitwarden_license folder is under the separate Bitwarden License. Every install needs a free installation ID and key from bitwarden.com/host, and the setup script can request a Let's Encrypt certificate. Self-hosting is free, but some features are unlocked by applying a licence file from a paid subscription. Premium adds file attachments and the built-in TOTP authenticator, and shared organizations need a Families or Enterprise plan, with Enterprise adding SSO and enterprise policies.
- AGPL-3.0
- Self-hosted
- Docker
- Let's Encrypt
Where it fits
Use cases
- 01
Run your own password vault server
Point a domain at a Linux or Windows server, open ports 80 and 443 and install Docker, then get a free installation ID and key from bitwarden.com/host. Run ./bitwarden.sh install as a dedicated bitwarden user and answer the prompts for your domain and a Let's Encrypt certificate. Add SMTP settings to ./bwdata/env/global.override.env so the server can send verification emails, then run ./bitwarden.sh start.
- 02
Use the official apps with your own server
On the login screen of the browser extension, mobile app or desktop app, choose Self-hosted from the server menu and enter your server's https address. The command-line tool connects with bw config server followed by the same address. Each person then creates an account on your server and their vault syncs across their devices.
- 03
Run a light install on a home server
Bitwarden lite runs the server from the single ghcr.io/bitwarden/lite image, needs at least 200 MB of memory and works on ARM devices such as a Raspberry Pi or a NAS. Set BW_DOMAIN, your database settings and your installation ID and key in settings.env, using SQLite, PostgreSQL, MySQL, MariaDB or MSSQL. Start it with docker run or Docker Compose, keeping in mind that Bitwarden intends lite for personal use and home labs.