Bitwarden 是一款开源的密码管理解决方案,支持通过自托管方式部署于私有服务器。本文依据官方文档(Install Bitwarden on-premise for Linux),系统阐述在 Linux 环境下完成 Bitwarden 自托管实例的完整部署流程,涵盖环境准备、依赖安装、配置生成、服务启动及后续运维等关键环节,适用于企业或个人对数据主权与安全有较高要求的场景。
Bitwarden 官方推荐的最低硬件与软件配置如下:
docker compose),而非旧版独立 docker-compose 命令默认部署方案包含 Microsoft SQL Server Express 作为后端数据库,其最大数据库容量限制为 10 GB,适用于中小规模用户群体。
vault.example.com)注:无有效域名的部署仅限本地测试,不适用于生产环境,因多数客户端(如移动端)强制要求有效 TLS 证书。
以 Ubuntu 22.04 为例,执行以下命令安装所需运行时环境:
bashsudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
验证安装结果:
bashdocker --version # 应 ≥ 26.x
docker compose version # 确认使用插件形式
为遵循最小权限原则,应创建非 root 用户运行 Bitwarden 服务:
bashsudo adduser --disabled-password --gecos "" bitwarden
sudo mkdir -p /opt/bitwarden
sudo chown bitwarden:bitwarden /opt/bitwarden
sudo chmod 700 /opt/bitwarden
sudo usermod -aG docker bitwarden
切换至该用户并进入工作目录:
bashsudo su - bitwarden
cd /opt/bitwarden
访问 Bitwarden 自托管注册页面,提交有效邮箱地址。系统将发送包含以下两项凭证的邮件:
此凭证用于激活自托管实例,即使使用免费功能亦为必需。
bashcurl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux"
chmod 700 bitwarden.sh
./bitwarden.sh install
安装过程中需依次提供以下信息:
| 配置项 | 说明 |
|---|---|
| Domain name | 服务绑定的完整域名(如 vault.example.com) |
| Use Let’s Encrypt certificate | 建议选择 y,自动申请并配置 TLS 证书 |
| Let’s Encrypt email | 用于证书过期通知 |
| Installation ID / Key | 从注册邮件中复制 |
| Region (US/EU) | 影响未来订阅计费区域,不影响核心功能 |
安装完成后,系统将在当前目录生成 bwdata/ 目录,包含所有持久化数据、配置文件与 SSL 证书。
Bitwarden 依赖 SMTP 服务完成用户注册验证、密码重置及组织邀请等功能。编辑覆盖配置文件:
bashnano ./bwdata/env/global.override.env
添加或修改以下参数(以 Gmail 为例):
envglobalSettings__mail__smtp__host=smtp.gmail.com globalSettings__mail__smtp__port=587 globalSettings__mail__smtp__ssl=false [email protected] globalSettings__mail__smtp__password=your_app_password
注意:若使用 Gmail,需启用两步验证并生成“应用专用密码”。其他邮件服务商请参照其 SMTP 文档配置。
保存后重启服务使配置生效:
bash./bitwarden.sh restart
bash./bitwarden.sh start
首次启动将拉取多个 Docker 镜像,耗时较长。可通过以下命令确认容器状态:
bashdocker ps
预期输出应包含 mssql, web, api, identity, sso, notifications 等容器,且状态均为 Up。
在浏览器访问 https://<your-domain>,完成初始管理员账户注册。首个注册用户将自动获得管理员权限。
bitwarden.sh 脚本提供标准化运维接口:
| 命令 | 功能 |
|---|---|
./bitwarden.sh start | 启动所有服务容器 |
./bitwarden.sh stop | 停止服务 |
./bitwarden.sh restart | 重启服务 |
./bitwarden.sh update | 升级至最新版本 |
./bitwarden.sh renewcert | 手动续订 Let's Encrypt 证书 |
./bitwarden.sh backup | 创建数据库与附件备份(存于 bwdata/backups/) |
./bitwarden.sh uninstall | 卸载服务(可选保留数据) |
建议定期执行备份,并将 bwdata/backups/ 目录同步至异地存储。恢复操作需先停止服务,再运行:
bash./bitwarden.sh restore <backup_file.tar.gz>
在 global.override.env 中指定管理员邮箱:
随后可访问 https://<your-domain>/admin 进入管理控制台。
当用户规模扩大或数据量接近 10 GB 限制时,建议迁移至外部 Microsoft SQL Server 实例。Bitwarden 支持连接标准 MSSQL 数据库,具体配置参见官方高级部署文档。
./bitwarden.sh update 保持系统处于最新安全补丁状态。global.override.env 配置日志级别),并定期审查。通过上述步骤,可在标准 Linux 服务器上成功部署功能完整的 Bitwarden 自托管实例。该方案兼顾安全性、可用性与可维护性,适用于对密码管理数据隐私有严格要求的组织或个人。部署完成后,用户可通过 Web、桌面客户端、浏览器扩展及移动应用无缝同步凭据,实现跨平台安全访问。
本文所涉操作均基于 Bitwarden 官方文档截至 2026 年的技术规范。具体实施时,请以 Bitwarden Help Center 最新指南为准。
本文作者:Maxwell P.
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处!