Lite 部署

[译者注]:测试阶段叫做「Unified 部署」,现在更名为「Lite 部署」,即最小化部署。

Bitwarden Lite 适合个人和家庭实验室使用,不适用于商用环境。商用环境应使用标准部署选项之一。

本文将指导您安装和启动 Bitwarden Lite。使用此部署方式可以:

  • 通过使用单个 Docker 映像部署 Bitwarden 来简化配置并优化资源使用(CPU、内存)。

  • 利用不同的数据库解决方案,例如 MSSQL、PostgreSQL、SQLite 以及 MySQL/MariaDB。当前只有 Lite 部署可以使用这些数据库,标准部署需要 MSSQL。

  • 作为替代系统运行在 ARM 架构上,例如 Raspberry Pi 和 NAS 服务器。

要求

Bitwarden Lite 部署要求:

  • RAM:至少 200 MB

  • 存储:至少 1GB

  • Docker Engine:版本 26+

设置

在运行 Bitwarden Lite 服务器之前,请安装 Docker、设置 settings.env 文件并决定数据库配置:

安装 Docker

Bitwarden Lite 使用 Docker 容器运行在您的机器上。Lite 可以与任何 Docker 版本或计划一起运行。请评估哪个版本最适合您的安装。在继续安装之前需要在您的计算机上安装 Docker。请参阅以下 Docker 文档获取帮助:

所需的环境变量

可以通过创建一个 settings.env 文件来指定环境变量,您可以在我们的 GitHub 存储库中找到该文件的示例,或者如果您使用的是 docker run 方式,则可以使用 --env 标志来指定。至少为示例 .env 文件的 # Required Settings # 部分下的变量设置值。

变量
描述

BW_DOMAIN

bitwarden.yourdomain.com 替换为用于访问 Bitwarden 所使用域名。

BW_DB_PROVIDER

您将用于 Bitwarden 服务器的数据库提供程序。可用选项包括 sqlserverpostgresqlmysql/mariadb

BW_DB_SERVER

运行数据库的服务器的名称。

BW_DB_DATABASE

您的 Bitwarden 数据库的名称。

BW_DB_USERNAME

用于访问 Bitwarden 数据库的用户名。

BW_DB_PASSWORD

用于访问 Bitwarden 数据库的密码。

BW_DB_FILE

sqlite 需要,如果您想指定数据库文件的路径。如果不指定,sqlite 会自动在 /etc/bitwarden 卷下创建 vault.db 文件。

BW_INSTALLATION_ID

https://bitwarden.com/host/ 生成的有效安装 ID。

BW_INSTALLATION_KEY

https://bitwarden.com/host/ 生成的有效安装密钥。

数据库示例

与标准 Bitwarden 部署不同,Lite 并不附带开箱即用的数据库。您可以使用现有数据库,也可以创建新数据库。您需要在 settings.env 文件或 --env 标志中包含哪些 # Required Settings # 将取决于您使用的受支持的数据库提供程序:

MySQL 或 MariaDB 数据库需要以下变量:

# Database
BW_DB_PROVIDER=mysql
BW_DB_SERVER=db
BW_DB_DATABASE=bitwarden_vault
BW_DB_USERNAME=bitwarden
BW_DB_PASSWORD=super_strong_password

运行服务器

可以使用 docker run 命令或使用 Docker Compose 运行 Lite 部署。无论哪种情况,请确保您已设置环境变量并使数据库可用,然后再继续。

可以使用 docker run 命令运行 Lite 部署,如下示例:

docker run -d --name bitwarden -v ./bwdata/:/etc/bitwarden -p 80:80  --env-file settings.env bitwarden/self-host:beta

使用 docker run 命令运行服务器有几个必需的选项,包括:

名称,缩写
描述

--detach , -d

在后台运行容器并输出容器 ID。

--name

为容器提供一个名称。该示例中使用的是 bitwarden

--volume , -v

绑定挂载卷。至少挂载 /etc/bitwarden

--publish , -p

将容器端口映射到主机。该示例显示映射了 80:8080 端口。配置 SSL 时需要使用 443 端口。

--env-file

要从中读取环境变量的文件的路径。或者,在同一行中使用 --env 标志声明环境变量(了解更多)。

运行此命令后,验证容器是否正在运行且运行状况良好:

docker ps

恭喜!Bitwarden Lite 现已启动并运行在 https://your.domain.com 上了。在您的浏览器中访问网页密码库以确认它正在运行。您现在可以注册一个新账户并登录了。

更新或重启服务器

让您的 Bitwarden Lite 服务器保持最新非常重要。与运行服务器一样,您可以使用 docker run 命令或 Docker Compose 来更新它:

要更新服务器:

1、停止正在运行的 Docker 容器:

docker stop bitwarden

2、移除 Docker 容器:

docker rm bitwarden

3、拉取最新的 Bitwarden Lite 镜像:

docker pull ghcr.io/bitwarden/lite

4、重新启动服务器:

docker run -d --name bitwarden -v /$(pwd)/bwdata/:/etc/bitwarden -p 80:8080 --env-file settings.env ghcr.io/bitwarden/lite

可选环境变量

默认情况下,Bitwarden Lite 可以在停用某些可用服务的情况下运行。这些服务以及许多其他服务器特性可以选择使用您的 settings.env 文件或 --env 标志来激活和自定义:

服务

可以使用以下变量激活或停用附加服务:

变量
描述

BW_ENABLE_ADMIN

不要禁用此服务

此处了解有关管理面板功能的更多信息。默认为 true

BW_ENABLE_API

不要禁用此服务。默认为 true

BW_ENABLE_EVENTS

为团队和企业事件监控启用或禁用 Bitwarden 事件日志。默认为 false

BW_ENABLE_ICONS

启用或禁用登录项目 URI 设置的 Bitwarden 品牌图标。在此处了解更多。默认为 true

BW_ENABLE_IDENTITY

不要禁用此服务。默认为 true

BW_ENABLE_NOTIFICATIONS

当使用设备登录、移动端密码库同步等时,启用或禁用用于接收移动设备推送通知的通知服务。默认为 true

BW_ENABLE_SCIM

为企业组织启用或禁用 SCIM。默认为 false

BW_ENABLE_SSO

为企业组织启用或禁用 SSO 服务。默认为 false

BW_ICONS_PROXY_TO_CLOUD

启用此服务将代理图标服务请求以通过云服务进行操作,以降低系统内存负载。

如果选择使用此设置,则应将 BW_ENABLE_ICONS 设置为 false 以减少容器负载。默认为 false

证书

使用这些变量来更改证书设置:

变量
描述

BW_ENABLE_SSL

使用 SSL/TLS。true/false。默认为 false

Bitwarden 需要 SSL 才能正常运行。如果您没有使用在 Bitwarden 容器中配置的 SSL,您应该在 Bitwarden 前面使用 SSL 代理。

BW_SSL_CERT

SSL 证书文件的名称。该文件必须位于容器内的 /etc/bitwarden 目录中。默认为 ssl.crt。 如果您希望使用现有证书,在此处了解更多信息。

BW_SSL_KEY

SSL 密钥文件的名称。该文件必须位于容器内的 /etc/bitwarden 目录中。默认为 ssl.key。 如果您希望使用现有证书,在此处了解更多信息。

BW_ENABLE_SSL_CA

使用具有证书颁发机构 (CA) 支持服务 的 SSL。true/false。默认为 false

BW_SSL_CA_CERT

SSL CA 证书的名称。该文件必须位于容器内的 /etc/bitwarden 目录中。默认为 ca.crt

BW_ENABLE_SSL_DH

使用具有Diffie-Hellman 密钥交换的 SSL。true/false。默认为 false

BW_SSL_DH_CERT

Diffie-Hellman 参数文件的名称。该文件必须位于容器内的 /etc/bitwarden 目录中。默认为 dh.pem

BW_SSL_PROTOCOLS

NGINX 使用的 SSL 版本。建议默认留空。了解更多

BW_SSL_CIPHERS

NGINX 使用的 SSL 密码套件。建议默认留空。了解更多

如果您使用的是现有的 SSL 证书,则必须在 settings.env 中启用相应的 SSL 选项。SSL 文件必须存储在 /etc/bitwarden 中,可以在 docker-compose.yml 文件中引用。这些文件必须与 settings.env 中配置的名称一致。

如果启用了 SSL,且预期位置 (/etc/bitwarden) 中不存在证书文件,默认情况下会生成自签名证书。

SMTP

使用这些变量来设置或更改服务器的 SMTP 提供程序:

变量
描述

globalSettings__mail__replyToEmail

输入服务器的回复电子邮箱。

globalSettings__mail__smtp__host

输入 SMTP 服务器的主机域名。

globalSettings__mail__smtp__port

输入来自 SMTP 主机的端口号。

globalSettings__mail__smtp__ssl

如果您的 SMTP 主机使用 SSL,请输入 true。 如果您的主机使用 TLS 服务,请将值设置为 false

globalSettings__mail__smtp__username

输入 SMTP 用户名。

globalSettings__mail__smtp__password

输入 SMTP 密码。

端口

使用这些变量来配置用于流量的端口:

变量
描述

BW_PORT_HTTP

更改用于 HTTP 流量的端口。默认为 8080

BW_PORT_HTTPS

更改用于 HTTPS 流量的端口。默认为 8443

Yubico API

使用这些变量连接 Yubico Web 服务:

变量
描述

globalSettings_yubico_clientId

替换从 Yubico Key 获取的 ID 值。

此处注册 Yubico 密钥。

globalSettings_yubico_key

输入从 Yubico 获取的密钥值。

其他

使用这些变量来配置 Bitwarden lite 服务器的其他特征:

变量
描述

globalSettings__disableUserRegistration

启用或禁用用户帐户注册功能。

globalSettings__hibpApiKey

输入 Have I Been Pwnd 提供的 API 密钥。在此处注册以获取 API 密钥。

adminSettings__admins

输入管理员电子邮箱地址。

BW_REAL_IPS

nginx.conf 中以逗号分隔列表定义真实 IP。用于定义转发客户端 IP 地址的代理服务器。了解更多

BW_CSP

内容安全策略参数。重新配置此参数可能会破坏功能。更改此参数,您将负责维护此值。

BW_DB_PORT

为数据库流量指定自定义端口。如果未指定,默认端口将取决于您选择的数据库提供程序。

故障排除

内存使用

默认情况下,Bitwarden 容器消耗的内存,通常超过运行所需的最低内存。对于内存敏感的环境,您可以使用 docker -m--memory= 来限制 Bitwarden 容器的内存使用。

名称,缩写
描述

--memory=, -m

容器可以使用的最大内存量。Bitwarden 至少需要 200M。请参阅 Docker 文档以了解更多信息。

要使用 Docker Compose 控制内存使用,请使用 mem_limit 键:

services:
  bitwarden:
    env_file:
      - settings.env
    image: bitwarden/self-host:beta
    restart: always
    mem_limit: 200m

最后更新于