2026-02-04
技术
0

目录

一、部署前准备
1.1 系统要求
1.2 网络与域名要求
二、部署流程
2.1 安装 Docker 与 Docker Compose
2.2 创建专用运行用户
2.3 获取 Installation ID 与 Key
2.4 下载并执行安装脚本
2.5 配置 SMTP 邮件服务
2.6 启动服务并验证
三、日常运维
3.1 常用管理命令
3.2 备份策略
3.3 管理员门户(可选)
3.4 扩展性考虑
四、安全与合规建议
结语

Bitwarden 是一款开源的密码管理解决方案,支持通过自托管方式部署于私有服务器。本文依据官方文档(Install Bitwarden on-premise for Linux),系统阐述在 Linux 环境下完成 Bitwarden 自托管实例的完整部署流程,涵盖环境准备、依赖安装、配置生成、服务启动及后续运维等关键环节,适用于企业或个人对数据主权与安全有较高要求的场景。

一、部署前准备

1.1 系统要求

Bitwarden 官方推荐的最低硬件与软件配置如下:

  • 操作系统:64 位 Linux 发行版(如 Ubuntu 20.04/22.04、Debian 11+、CentOS 7+)
  • CPU:1.4 GHz 或更高(建议双核 2 GHz)
  • 内存:2 GB RAM(建议 4 GB)
  • 存储空间:至少 12 GB 可用磁盘(建议 25 GB)
  • Docker:Docker Engine 26.0 或更高版本
  • Docker Compose:需使用 Docker Compose 插件(docker compose),而非旧版独立 docker-compose 命令

默认部署方案包含 Microsoft SQL Server Express 作为后端数据库,其最大数据库容量限制为 10 GB,适用于中小规模用户群体。

1.2 网络与域名要求

  • 需配备一个可解析至服务器公网 IP 的有效域名(例如 vault.example.com
  • 防火墙必须开放 TCP 端口 80(HTTP)与 443(HTTPS)
  • 若启用 Let's Encrypt 自动证书申请,服务器需能被公共互联网访问(用于 ACME HTTP-01 验证)

注:无有效域名的部署仅限本地测试,不适用于生产环境,因多数客户端(如移动端)强制要求有效 TLS 证书。


二、部署流程

2.1 安装 Docker 与 Docker Compose

以 Ubuntu 22.04 为例,执行以下命令安装所需运行时环境:

bash
sudo 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

验证安装结果:

bash
docker --version # 应 ≥ 26.x docker compose version # 确认使用插件形式

2.2 创建专用运行用户

为遵循最小权限原则,应创建非 root 用户运行 Bitwarden 服务:

bash
sudo 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

切换至该用户并进入工作目录:

bash
sudo su - bitwarden cd /opt/bitwarden

2.3 获取 Installation ID 与 Key

访问 Bitwarden 自托管注册页面,提交有效邮箱地址。系统将发送包含以下两项凭证的邮件:

  • Installation ID
  • Installation Key

此凭证用于激活自托管实例,即使使用免费功能亦为必需。

2.4 下载并执行安装脚本

bash
curl -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 证书。

2.5 配置 SMTP 邮件服务

Bitwarden 依赖 SMTP 服务完成用户注册验证、密码重置及组织邀请等功能。编辑覆盖配置文件:

bash
nano ./bwdata/env/global.override.env

添加或修改以下参数(以 Gmail 为例):

env
globalSettings__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

2.6 启动服务并验证

bash
./bitwarden.sh start

首次启动将拉取多个 Docker 镜像,耗时较长。可通过以下命令确认容器状态:

bash
docker ps

预期输出应包含 mssql, web, api, identity, sso, notifications 等容器,且状态均为 Up

在浏览器访问 https://<your-domain>,完成初始管理员账户注册。首个注册用户将自动获得管理员权限。


三、日常运维

3.1 常用管理命令

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卸载服务(可选保留数据)

3.2 备份策略

建议定期执行备份,并将 bwdata/backups/ 目录同步至异地存储。恢复操作需先停止服务,再运行:

bash
./bitwarden.sh restore <backup_file.tar.gz>

3.3 管理员门户(可选)

global.override.env 中指定管理员邮箱:

随后可访问 https://<your-domain>/admin 进入管理控制台。

3.4 扩展性考虑

当用户规模扩大或数据量接近 10 GB 限制时,建议迁移至外部 Microsoft SQL Server 实例。Bitwarden 支持连接标准 MSSQL 数据库,具体配置参见官方高级部署文档。


四、安全与合规建议

  1. 定期更新:通过 ./bitwarden.sh update 保持系统处于最新安全补丁状态。
  2. 网络隔离:在生产环境中,建议将数据库容器置于内部网络,仅暴露 Web 与 API 服务。
  3. 日志审计:启用详细日志记录(通过 global.override.env 配置日志级别),并定期审查。
  4. 证书监控:Let's Encrypt 证书有效期为 90 天,脚本默认每日自动续期,但仍建议设置监控告警。

结语

通过上述步骤,可在标准 Linux 服务器上成功部署功能完整的 Bitwarden 自托管实例。该方案兼顾安全性、可用性与可维护性,适用于对密码管理数据隐私有严格要求的组织或个人。部署完成后,用户可通过 Web、桌面客户端、浏览器扩展及移动应用无缝同步凭据,实现跨平台安全访问。

本文所涉操作均基于 Bitwarden 官方文档截至 2026 年的技术规范。具体实施时,请以 Bitwarden Help Center 最新指南为准。

本文作者:Maxwell P.

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明出处!