Skip to main content

Bitwarden Server

Open-source backend infrastructure for secure password management

Overview

Bitwarden Server is the core backend infrastructure that powers all Bitwarden client applications. Built with C# and ASP.NET Core, it provides a comprehensive suite of microservices for secure password management, including APIs, authentication, vault management, and enterprise features.

Quick Start

Get started with local development or self-hosted deployment

Architecture

Explore the microservices architecture and system design

API Reference

Comprehensive REST API documentation

Deployment Guide

Deploy with Docker and configure for production

Core Services

The Bitwarden Server platform consists of multiple specialized microservices working together to provide a complete password management solution.

API Service

RESTful API for vault, organizations, and user management

Identity Service

OAuth 2.0 / OpenID Connect authentication and authorization

Admin Service

Administrative portal for system management

Notifications

Real-time push notifications via SignalR

Events Service

Audit logging and event tracking

Billing Service

Subscription and payment processing

Enterprise Features

Single Sign-On (SSO)

SAML 2.0 and OpenID Connect enterprise authentication

SCIM Provisioning

Automated user provisioning and directory sync

Secrets Manager

Developer credential and API key management

Advanced Policies

Granular security policies and access controls

Key Features

End-to-end encryption ensures that vault data is encrypted and decrypted only on the client side. The server never has access to unencrypted vault data or encryption keys.
Compatible with SQL Server, PostgreSQL, and MySQL. Entity Framework and Dapper provide flexible data access layers.
All services are containerized for easy deployment and scaling. Includes Docker Compose configurations for development and production.
RESTful APIs with Swagger/OpenAPI documentation. Includes public API for programmatic access and integrations.
SignalR-based push notifications keep clients synchronized across all devices in real-time.
Comprehensive event logging and auditing system for compliance and security monitoring.

Getting Started

1

Clone the Repository

git clone https://github.com/bitwarden/server.git
cd server
2

Start Development Environment

cd dev
docker compose --profile cloud up -d
3

Configure Services

Set up your local development environment with the required tools and dependencies. See the Local Setup guide for detailed instructions.
4

Run the API

cd src/Api
dotnet run

Technology Stack

  • Framework: .NET 8.0 / ASP.NET Core
  • Databases: SQL Server, PostgreSQL, MySQL
  • Authentication: Duende IdentityServer (OAuth 2.0 / OIDC)
  • Real-time: SignalR
  • Containerization: Docker
  • Cloud Storage: Azure Blob Storage, AWS S3 compatible
  • Payment Processing: Stripe
  • Email: SMTP, SendGrid, Mailgun

Community & Support

Contributing Guide

Learn how to contribute to the Bitwarden Server project

GitHub Repository

View source code and submit issues

Security Policy

Report security vulnerabilities responsibly

Community Forums

Get help and connect with other developers

Build docs developers (and LLMs) love