安装与部署
这篇文章将会向你介绍如何在你自己的服务器上安装与部署Bitwarden。Bitwarden是一个跨平台应用,你可以将它安装部署到Linux,macOS或者Windows上。
太长不看
- 将一个域名解析到你的服务器并打开80和443端口。
- 安装Docker和Docker Compose。
- 从https://bitwarden.com/host获取一个安装id与秘钥。
- 安装部署Bitwarden。
- 调整配置并重启[cci]./bwdata/env/global.override.env[/cci]
- 测试。访问你的域名,注册一个账户并登录。
Bash
[cc lang=”bash”] curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \ && chmod +x bitwarden.sh ./bitwarden.sh install ./bitwarden.sh start [/cc]
PowerShell
[cc lang=”powershell”] Invoke-RestMethod -OutFile bitwarden.ps1 \ -Uri https://go.btwrdn.co/bw-ps .\bitwarden.ps1 -install .\bitwarden.ps1 -start [/cc]
Bash
[cc lang=”bash”]./bitwarden.sh restart[/cc]
PowerShell
[cc lang=”powershell”].\bitwarden.ps1 -restart[/cc]
系统需求
- 处理器:64位,1.4Ghz或以上。
- 内存:2GB或以上。
- 存储空间:10GB货以上。
- Docker:Engine 1.8以上,Compose 1.173.1以上。
如果你正在寻找一个优质且价格合理的云服务供应商,我们建议:
配置你的域名
默认情况下,Bitwarden会通过80 (http) 与443 (https) 端口向用户提供服务。你应该打开这些端口,以便B从内部或/和外部进行访问Bitwarden。你也可以按需求在安装时选择其它端口。
如果你向外部提供Bitwarden服务,那么你应该拥有一个指向你服务器的域名(例如bitwarden.example.com)。在安装开始前,你应该做好这些配置。
或者,如果只是测试,你可以将Bitwarden安装到“localhost”。
安装DOCKER
Bitwarden将通过Docker在你的机器上部署与运行。在Docker Community (free) 和Enterprise版中运行Bitwarden是一样的。你应该评估哪个版本更适合你。另外,这些容器是通过Docker Compose进行部署的。在开始安装Bitwarden之前,必须先安装Docker与Docker Compose。
更多相关信息,请参阅以下官方Docker文档:
注意 一些Docker安装程序已经包含了Docker Compose,比如Windows和macOS的Docker安装程序。
作为参考,你可以在Docker Hub上找到官方的Bitwarden镜像:https://hub.docker.com/u/bitwarden/。
安装BITWARDEN
我们努力让安装Bitwarden变得非常简单。根据你的环境(非Windows或 Windows),我们提供Bash(Linux或macOS)和PowerShell(Windows)脚本来帮助你安装和管理Bitwarden。下面的步骤将包括Bash和PowerShell。
- 将main Bitwarden脚本下载到你要安装到的地方:
- 开始安装
- 安装中
- 注册你的安装与联系方式,以便在重要更新是联系你。
- 验证付费功能许可。
- 通过身份验证,中继服务器将通知推送到Bitwarden客户端应用程序。
- Bitwarden可以为你的域名生成一个免费的可信任的SSL证书,它们由Let’s Encrypt和Certbot提供。每次重启Bitwarden,都会进行证书更新检查。使用Let’s Encrypt自动证书需要用到80与443端口。或者,你也可以选择“使用自己的SSL证书”手动添加自己的Let’s Encrypt证书。
- 如果你已经有了自己的SSL证书,你可以把它放到[cci]./bwdata/ssl/your.domain.com[/cci]中。这个路径你也可以通过配置[cci]./bwdata/config.yml[/cci]进行修改。
- certificate.crt(必须)如果不这样做,你可能需要将主证书与CA提供的任何中间证书绑定在一起,否则你将收到SSL信任错误。如:[cci]cat domain.crt ca.crt >> certificate.crt[/cci]。点击此处了解更多信息。
- private.key(必须)
- ca.crt(可选,如果是可信的)
- dhparam.pem(可选,如果使用Diffie Hellman Ephemeral Parameters)。你可以通过OpenSSL[cci]openssl dhparam -out ./dhparam.pem 2048[/cci]创建你自己的dhparam.pem。
- 如果你只是测试而且没有SSL证书,那么可以为你的安装生成一个自签名的证书。自签名证书不被Bitwarden客户端所信任,所以你需要在每一个你想使用Bitwarden的设备上安装这个证书。
- 如果你在安装时选择不配置SSL,那么在安装之前你必须一个支持SSL的代理进行安装。Bitwarden需要HTTPS。如果你想不通过HTTPS使用Bitwarden,你将收到错误信息。
注意 所有的Bitwarden资源都将被安装到相对于安装脚本所在目录./bwdata目录下
Bash
[cc lang=”bash”] curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh \ && chmod +x bitwarden.sh [/cc]
PowerShell
[cc lang=”powershell”] Invoke-RestMethod -OutFile bitwarden.ps1 \ -Uri https://go.btwrdn.co/bw-ps [/cc]
Bash
[cc lang=”bash”] ./bitwarden.sh install [/cc]
PowerShell
[cc lang=”powershell”] .\bitwarden.ps1 -install [/cc]
安装id和秘钥
每个Bitwarden都需要配置唯一的id和安装秘钥。它们将用作:
你不应该将一份id与安装秘钥用于多个Bitwarden安装,它们应该被保密。
你可以从https://bitwarden.com/host获取id与安装秘钥。
SSL证书
安装后的环境配置
安装配置文件
Bitwarden安装脚本使用来自生成的必要资源的设置。进阶安装(如,使用备用端口代理安装)需要对标准安装提示期间没有提供的选项进一步配置调整。另外,如果你需要更改安装的默认设置(如,更改用于Bitwarden的域名)你可以在[cci]./bwdata/config.yml[/cci]中修改。
更改设置后,你需要使用如下命令应用这些设置:[cci]./bwdata/config.yml[/cci]
Bash
[cc lang=”bash”]./bitwarden.sh rebuild[/cc]
PowerShell
[cc lang=”powershell”].\bitwarden.sp1 -rebuild[/cc]
环境变量
一些功能如SMTP邮箱服务,YubiKey OTP API,HaveIBeenPwned (HIBP) API等并没有在安装时被配置,你可以在[cci]./bwdata/env/global.override.env[/cci]找到这些设置(还有一些其它的)。编辑这些文件并替换占位符。
例如:
[cc] globalSettings__yubico__clientId=294620155 globalSettings__yubico__key=owdez88RdxVZuGbZ4fv globalSettings__mail__smtp__host=smtp.sendgrid.net globalSettings__mail__smtp__port=587 globalSettings__mail__smtp__ssl=false globalSettings__mail__smtp__username=apikey globalSettings__mail__smtp__password=SG.YOUR.API_KEY [/cc]
如果你打算使用YubiKeys来实现二步验证,你可以在https://upgrade.yubico.com/getapikey/获得你的YubiKey客户端id和秘钥。
启动BITWARDEN
当你完成Bitwarden的安装与配置后,你就可以启动它了:
Bash
[cc lang=”bash”]./bitwarden.sh start[/cc]
PowerShell
[cc lang=”powershell”].\bitwarden.sp1 -start[/cc]
验证所有容器是否正常:
[cc]docker ps[/cc]
祝贺你!Bitwarden现在运行正常。你可以在你的浏览器访问[cci]https://your.domain.com[/cci]并确认这件事。你应该注册一个新账号并登录。
脚本命令
Bitwarden主脚本([cci]bitwarden.sh[/cci]或[cci]bitwarden.ps1[/cci])可用命令:
注意 PowerShell用户需要在命令前添加前缀[cci]-[/cci]。举个例子:[cci].\bitwarden.ps1 -start[/cci]
命令 | 说明 |
[cci]install[/cci] | 开始安装 |
[cci]start[/cci] | 启动所有容器 |
[cci]restart[/cci] | 重启所有容器(与start相同) |
[cci]stop[/cci] | 停止所有容器 |
[cci]update[/cci] | 更新所有容器与数据库 |
[cci]updatedb[/cci] | 更新/初始化数据库 |
[cci]updateself[/cci] | 更新主脚本 |
[cci]updateconf[/cci] | 更新所有容器但不中止正在运行的实例 |
[cci]rebuild[/cci] | 根据[cci]config.yml[/cci]重新应用安装资源 |
[cci]help[/cci] | 列出所有命令 |
手动安装
对大多数用户来说,我们建议使用安装脚本,但是,你也可以使用Docker和Docker Compose手动安装与配置Bitwarden。如果你非常熟悉Docker技术并希望在Bitwarden安装时有更多的自定义选项,手动安装可能更适合你。手动安装遵循的步骤与安装脚本自动执行的大多数步骤相同。
警告 手动安装仅适用于进阶用户。 手动安装将不能自动更新Bitwarden安装的某些依赖项。从一个版本升级到另一个版本时,你需要手动修改某些环境变量:Nginx的[cci]default.conf[/cci],[cci]docker-compose.yml[/cci]等。我们将会尝试在GitHub的发行说明中突出显示这些内容。你也可以监视GitHub上Bitwarden安装脚本使用的依赖项的更改。
- 从GitHub的发行页面下载Bitwarden依赖项的stubbed版本([cci]docker-stub.zip[/cci])。
- 创建一个新的文件夹并重命名为[cci]bwdata[/cci],解压[cci]docker-stub.zip[/cci]到该文件夹。文件夹结构应该是这样的:[cci]./docker/docker-compose.yml[/cci],当然,你可以根据需要在主机上随意更改这些映射。
- 从https://bitwarden.com/host获取你的[cci]installation__id[/cci]和[cci]installation__key[/cci]并将它们应用于环境变量:[cci]./env/global.override.env[/cci]。
- 将[cci]./env/global.override.env[/cci]中的[cci]baseServiceUri__*[/cci]与[cci]attachment__baseUrl[/cci]修改为你的域名。
- 为身份容器生成一个[cci].pfx[/cci]证书并使其拥有[cci]./identity/identity.pfx[/cci]这样的路径。
- 复制你的SSL证书和秘钥到[cci]./ssl[/cci]文件夹中。默认情况下,这个文件件是映射到nginx的[cci]/etc/ssl[/cci]。可以根据需要在[cci]/nginx/default.conf[/cci]调整这个位置。
- 根据你的域名在[cci]./nginx/default.conf[/cci]更新[cci]server_name[/cci],HTTPS重定向以及[cci]Content-Security-Policy[/cci]标头。
- 为[cci]sqlServer__connectionString RANDOM_DATABASE_PASSWORD[/cci],[cci]internalIdentityKey RANDOM_IDENTITY_KEY[/cci]和[cci]duo__aKey RANDOM_DUO_AKEY[/cci]生成你自己的随机密码,并在.[cci]/env/global.override.env[/cci]中更新。同时确保在[cci]./env/mssql.override.env[/cci]中应用同样的[cci]RANDOM_DATABASE_PASSWORD[/cci]。
- 在[cci]./web/app-id.json[/cci]中包含你的域名URL(如:[cci]https://bitwarden.example.com[/cci])。
- 在[cci]./env/global.override.env[/cci]中配置你的SMTP邮件服务器或其它任何你要的设置。
- 在[cci]./env/uid.env[/cci]中映射运行Bitwarden容器的用户与组id。
- 开始安装Bitwarden,然后通过你的域名进行访问。
例如:
[cc lang=”powershell”] openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key \ -out identity.crt -subj “/CN=Bitwarden IdentityServer” -days 10950 openssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key \ -in identity.crt -certfile identity.crt -passout pass:IDENTITY_CERT_PASSWORD [/cc]
确保在[cci]./env/global.override.env[/cci]中提供你的[cci]IDENTITY_CERT_PASSWORD[/cci]应用程序环境变量。
注意
访问Bitwarden及其API必须通过HTTPS。你应该为nginx提供一个受信的SSL证书,或者在安装前为Bitwarden客户端应用程序提供HTTPS代理。
自签名证书示例:
[cc lang=”powershell”] # mkdir ./ssl/bitwarden.example.com openssl req -x509 -newkey rsa:4096 -sha256 -nodes -days 365 \ -keyout ./ssl/bitwarden.example.com/private.key \ -out ./ssl/bitwarden.example.com/certificate.crt \ -reqexts SAN -extensions SAN \ -config <(cat /usr/lib/ssl/openssl.cnf <(printf '[SAN]\nsubjectAltName=DNS:bitwarden.example.com\nbasicConstraints=CA:true')) \ -subj "/C=US/ST=New York/L=New York/O=Company Name/OU=Bitwarden/CN=bitwarden.example.com" [/cc]
示例
[cc] LOCAL_UID=1000 LOCAL_GID=1000 [/cc]
此外,你可以将[cci]./env/uid.env[/cci]留空,容器将以[cci]nobody:nobody[/cci]运行。
[cc]docker-compose -f ./docker/docker-compose.yml up -d[/cc]
Translated by SnowMoonSS from Bitwarden Help Center
好!