在低配机器上部署 Vaultwarden (Bitwarden)

本篇讲述如何在小内存机器上快速部署Vaultwarden,1password的开源替代。

演示系统:Debian 12

下载二进制文件

因为是低配机器,而Rust编译是比较需要性能的,所以就不跟着官方教程构建二进制文件了。

直接从第三方二进制文件列表下载对应系统的二进制文件。

然后,将二进制文件放入/usr/local/bin

1
mv vaultwarden /usr/local/bin

其实可以放在任意地方,因为最后是需要在vaultwarden.envvaultwarden.service中手动指定这些文件的位置的。

下载 web-vault

创建/var/lib/vaultwarden文件夹。

1
mkdir -p /var/lib/vaultwarden

https://github.com/dani-garcia/bw_web_builds/releases 下载Vaultwarden的前端文件,解压后将web-vault文件夹放入/var/lib/vaultwarden

例如:

1
2
3
4
wget https://github.com/dani-garcia/bw_web_builds/releases/download/v2024.6.2c/bw_web_v2024.6.2c.tar.gz
tar -zxvf bw_web_v2024.6.2c.tar.gz
cd bw_web_v2024.6.2c/
mv web-vault/ /var/lib/vaultwarden

之后,手动在/var/lib/vaultwarden文件夹下创建data文件夹:

1
mkdir data

配置 vaultwarden.env

根据官方文档,可以使用该文件对后期在Vaultwarden后台的设置进行全局override操作。

创建并配置/etc/vaultwarden.env

1
touch /etc/vaultwarden.env

内容举例:

1
2
3
4
5
6
7
8
9
10
SIGNUPS_ALLOWED=false
INVITATIONS_ALLOWED=false
DATA_FOLDER=/var/lib/vaultwarden/data/
IP_HEADER=X-Real-IP
WEB_VAULT_FOLDER=/var/lib/vaultwarden/web-vault/
WEB_VAULT_ENABLED=true
WEBSOCKET_ENABLED=true
WEBSOCKET_ADDRESS=0.0.0.0
ROCKET_ADDRESS=0.0.0.0
DOMAIN=https://bitwarden.example.com

注册 systemd 服务

/etc/systemd/system中新建vaultwarden.service文件。

1
touch /etc/systemd/system/vaultwarden.service

内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[Unit]
Description=Vaultwarden Server
Documentation=https://github.com/dani-garcia/vaultwarden
After=network.target

[Service]
EnvironmentFile=/etc/vaultwarden.env
ExecStart=/usr/local/bin/vaultwarden
LimitNOFILE=1048576
LimitNPROC=64
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
ProtectSystem=strict
WorkingDirectory=/var/lib/vaultwarden
ReadWriteDirectories=/var/lib/vaultwarden
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

之后,执行

1
2
3
systemctl daemon-reload
systemctl enable vaultwarden
systemctl start vaultwarden

即完成部署,访问上面配置的域名bitwarden.example.com/admin进入后台进行初始设置,然后访问bitwarden.example.com即可开始使用自托管的密码管理器。

admin

web