The Bitwarden Core project contains the APIs, database, and other infrastructure items needed for the "backend" of all bitwarden client applications.
The core infrastructure is written in C# using .NET Core with ASP.NET Core. The database is written in T-SQL/SQL Server. The codebase can be developed, built, run, and deployed cross-platform on Windows, macOS, and Linux distributions.
Build/Run
Requirements
These dependencies are free to use.
Recommended Development Tooling
- Visual Studio (Windows and macOS)
- Visual Studio Code (other)
These tools are free to use.
API
cd src/Api
dotnet restore
dotnet build -f netcoreapp2.0
dotnet run -f netcoreapp2.0
visit http://localhost:5000/alive
Identity
cd src/Identity
dotnet restore
dotnet build -f netcoreapp2.0
dotnet run -f netcoreapp2.0
visit http://localhost:33657/.well-known/openid-configuration
Deploy
You can deploy Bitwarden using Docker containers on Windows, macOS, and Linux distributions. Use the provided PowerShell and Bash scripts to get started quickly. Find all of the Bitwarden images on Docker Hub.
Full documentation for deploying Bitwarden with Docker can be found in our help center at: https://help.bitwarden.com/article/install-on-premise/
Requirements
- Docker
- Docker Compose (already included with some Docker installations)
These dependencies are free to use.
Linux & macOS
curl -s -o bitwarden.sh \
https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.sh \
&& sudo chmod u+x bitwarden.sh
./bitwarden.sh install
./bitwarden.sh start
./bitwarden.sh updatedb
Windows
Invoke-RestMethod -OutFile bitwarden.ps1 `
-Uri https://raw.githubusercontent.com/bitwarden/core/master/scripts/bitwarden.ps1
.\bitwarden.ps1 -install
.\bitwarden.ps1 -start
.\bitwarden.ps1 -updatedb
Contribute
Code contributions are welcome! Visual Studio or VS Code is highly recommended if you are working on this project. Please commit any pull requests against the master
branch.
Security audits and feedback are welcome. Please open an issue or email us privately if the report is sensitive in nature. You can read our security policy in the SECURITY.md
file. We also run a program on HackerOne.