Unified 部署 (Beta)

这是一个测试版,这意味着此部署选项可能不稳定并存在问题。如果您管理 Bitwarden 组织密码库,我们建议使用官方支持的标准部署选项。

了解如何报告问题

本文将引导您安装和启动 Bitwarden Unified 自托管部署。使用此部署方法可以:

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

  • 利用不同的数据库解决方案,例如 MSSQL、PostgreSQL、MySQL/MariaDB。

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

系统要求

Bitwarden Unified 部署需要:

  • 至少 200 MB RAM

  • 1GB 存储

  • Docker Engine 19+

安装 Docker

Unified 部署使用 Docker 容器在您的机器上运行。Unified 部署可以与任何 Docker 版本或计划一起运行。请评估哪个版本最适合您的安装。

在继续安装之前需要在您的计算机上安装 Docker。请参阅以下 Docker 文档获取帮助:

运行 Bitwarden Unified

可以使用 docker run 命令(参见此处)或使用 Docker Compose(参见此处)运行 Unified 部署。无论哪种方式,您都需要为容器指定环境变量。

指定环境变量

运行 Unified 部署需要为容器设置环境变量。可以通过创建一个 settings.env 文件来指定环境变量,您可以在我们的 GitHub 存储库中找到该文件的示例,或者如果您使用的是 docker run 方式,则可以使用 --env 标志来指定。一系列可选的变量可用于更个性化 Unified 部署体验。有关这些变量的更多详细信息,请参阅此处

至少为示例 .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_INSTALLATION_ID

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

BW_INSTALLATION_KEY

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

与 Bitwarden 标准部署不同,Unified 部署使用的数据库并不是开箱即用的。您可以使用现有数据库,也可以创建一个新数据库,如本示例中所述,在这两种情况下,您都必须在本文档记录的 BW_DB_... 变量中输入有效的信息。

使用非 MSSQL 数据库提供程序可能会导致性能问题,对这些平台的支持将在整个测试版中继续进行。请使用此问题模板报告与您的 Bitwarden Unified 部署相关的任何内容,并查看此页面以跟踪已知问题或加入讨论。

使用 docker run

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

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 端口。配置 SSL 时需要使用 443 端口。

--env-file

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

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

docker ps

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

使用 Docker Compose

使用 Docker Compose 运行 Unified 部署需要 Docker Compose 版本 1.24+。要使用 Docker compose 运行 Unified 部署,请创建一个 docker-compose.yml 文件,例如:

---
version: "3.8"

services:
  bitwarden:
    depends_on:
      - db
    env_file:
      - settings.env
    image: bitwarden/self-host:beta
    restart: always
    ports:
      - "80:80"
    volumes:
      - bitwarden:/etc/bitwarden

  db:
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "super_strong_password"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
    image: mariadb:10
    restart: always
    volumes:
      - data:/var/lib/mysql

volumes:
  bitwarden:
  data:

docker-compose.yml 文件中,确保任何所需的配置包含:

  • 日志和 Bitwarden 数据的映射卷。

  • 映射端口。

  • 配置数据库镜像。ª

ª 仅在 docker-compose.yml 中设置数据库,如上例所示,如果您想创建一个新的数据库服务器以与 Bitwarden 一起使用。 用于 MySQL、MSSQL 和 PostgreSQL 的示例配置包含在我们的示例文件中。

创建 docker-compose.ymlsettings.env 文件后,运行以下命令启动 Unified 服务器:

docker compose up -d

验证所有容器是否正常运行:

docker ps

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

更新您的服务器

要更新您的 Unified 部署:

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

docker stop bitwarden

2、移除 Docker 容器:

docker rm bitwarden

3、运行以下命令来拉取最新的 Bitwarden Unified 镜像:

docker pull bitwarden/self-host:beta

4、再次运行 Docker 容器:

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

环境变量

默认情况下,Unified 部署可以在不具备一些列标准 Bitwarden 服务的情况下运行。这允许增加 Unified 部署的定制和优化。通过编辑各种环境变量来配置这些服务和更多可选设置。

每当您更改环境变量后,都需要重新创建 Docker 容器。在这里了解更多。

Webserver 端口

变量描述

BW_PORT_HTTP

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

BW_PORT_HTTPS

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

SSL

使用这些值更改证书设置。有关更多信息,请参阅证书选项

变量描述

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 密码套件。建议默认留空。了解更多

服务

通过更改以下值,可以针对特定用例(例如企业或团队需求)启用或禁用其他服务:

变量描述

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_KEY_CONNECTOR

设置为 true 以启用 Key Connector

BW_KEY_CONNECTOR_INTERNAL_URL

Key Connector 使用的内部 URL。

电子邮件

为您的 Unified 部署配置 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 密码。

Yubico API (YubiKey)

变量描述

globalSettings_yubico_clientId

替换从 Yubico Key 获取的 ID 值。

此处注册 Yubico 密钥。

globalSettings_yubico_key

输入从 Yubico 获取的密钥值。

其他

变量描述

globalSettings__disableUserRegistration

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

globalSettings__hibpApiKey

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

adminSettings__admins

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

BW_REAL_IPS

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

BW_CSP

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

重新启动容器

要在更改环境变量后重新启动 Docker 容器,请从 Bitwarden Unified 部署目录运行以下命令:

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

docker stop bitwarden

2、移除 Docker 容器:

docker rm bitwarden

3、再次运行 Docker 容器:

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

内存使用

默认情况下,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

报告问题

虽然 Bitwarden Unified 部署仍处于测试版,但我们鼓励您通过 GitHub 报告问题并提供反馈。请使用此问题模板报告与您的 Bitwarden Unified 部署相关的任何内容,并查看此页面以跟踪已知问题或加入讨论。

附加资源

有关 Bitwarden 标准自托管部署的更多信息,请参阅:

最后更新于