Linux 本地部署 Bitwarden_rs Vaultwarden
前言
- 系统环境为 Debian
- 使用了非官方的 Vaultwarden 而不是官方版本是因为该版本占用终极低
- 该版本存在一定的同步问题 (ws通讯),介意请用官方版本
- 文章采用 Argo Tunnel 作为对外通讯手段,可自行选择其他隧道
安装 Docker
安装前置组件
1
sudo apt-get install ca-certificates curl gnupg lsb-release
添加官方GPG公钥
1
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加Docker stable源 (其他版本的安装自行查看官方文档)
1
2
3echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装Docker套装 (包括docker-compose)
1
2sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-compose启动Docker
1
2systemctl enable docker
systemctl start docker
安装 Argo Tunnel
请参考我的另一篇文章安装 创建 并解析到域名,完成配置文件创建
配置文件编写
1
2
3
4
5
6
7
8
9tunnel: <TUNNEL_ID>
credentials-file: /主目录/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: <DOMAIN>
service: http://localhost:443
originRequest:
noTLSVerify: true
- service: http_status:404添加到服务
1
2
3
4
5
6
7
8
9
10运行以下命令创建服务
cloudflared service install
运行以下命令启动服务
systemctl start cloudflared
运行以下命令设置开机自启
systemctl enable cloudflared
运行以下命令查看服务状态
systemctl status cloudflared
运行以下命令关闭服务
systenctl stop cloudflared
安装 Valutwarden
创建 docker-compose.yml 文件并写入以下信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24version: '3'
services:
bitwarden:
image: vaultwarden/server:latest
container_name: bitwarden
restart: always
environment:
- ROCKET_TLS={certs="/ssl/certs.pem",key="/ssl/key.pem"}
- INVITATIONS_ALLOWED=false
- SIGNUPS_ALLOWED=true #记得在注册完管理员账户后取消
- ADMIN_TOKEN= #此处填写足够长的随机字符 32+
- DOMAIN= #填写刚刚注册的域名 https://example.com
- _ENABLE_SMTP=false
- IP_HEADER=CF-Connecting-IP
- LOG_LEVEL=error
- EXTENDED_LOGGING=true
- EMERGENCY_ACCESS_ALLOWD=false
- _ENABLE_YUBICO=false
volumes:
- ./data/:/data/
- ./ssl/:/ssl/
ports:
- 127.0.0.1:40443:80同目录下创建ssl文件夹, 到Cloudflare申请客户端证书 注意仅支持RSA2048, 创建certs.pem将公钥填写进 创建key.pem填写私钥
运行docker
1
sudo docker-compose up -d
打开网页,因为已经设置了Argo Tunnel,使用域名即可
注册一个账户
修改docker-compose.yml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24version: '3'
services:
bitwarden:
image: vaultwarden/server:latest
container_name: bitwarden
restart: always
environment:
- ROCKET_TLS={certs="/ssl/certs.pem",key="/ssl/key.pem"}
- INVITATIONS_ALLOWED=false
- SIGNUPS_ALLOWED=false
- ADMIN_TOKEN= #此处填写足够长的随机字符 32+
- DOMAIN= #填写刚刚注册的域名 https://example.com
- _ENABLE_SMTP=false
- IP_HEADER=CF-Connecting-IP
- LOG_LEVEL=error
- EXTENDED_LOGGING=true
- EMERGENCY_ACCESS_ALLOWD=false
- _ENABLE_YUBICO=false
volumes:
- ./data/:/data/
- ./ssl/:/ssl/
ports:
- 127.0.0.1:40443:80
后记
因为这个的安装真的很复杂,存在大量设置需要修改,这只是一个我用起来最舒服的版本。这个文章看起来少,对于整个项目的调试花了接近半天才找出这么一个较为完善的版本,未来文章可能还会多次修改。
参考
https://github.com/dani-garcia/vaultwarden/wiki
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 默世之夕!