在 Archlinux 服务器上部署 vaultwarden

本文最后更新于 2022年7月8日 晚上

介绍

下面的内容摘抄自 Bitwarden 帮助中心中文版, 会被谷歌提示危险网站,忽略即可。

Bitwarden 是一个开源的密码管理系统,你可以使用 Bitwarden 官方提供的云服务,也可以将 Bitwarden 安装和托管在自己的服务器上。

个人账户的免费版不限制使用时间、不限制密码条目数、不限制设备数量、不限制文件夹数量、支持常见的验证器应用程序(如 AuthyMicrosoft AuthenticatorGoogle Authenticator),完全可以满足大部分个人的日常使用。

需要使用更高级功能(TOTP、文件附件等),可以选择个人账户的高级版,或者使用组织账户。

简单来说, Bitwarden 就是一个全平台的开源的密码管理器啦!那么,这和这篇文章的 vaultwarden 又有什么关系呢?

下面的内容抄自 Vaultwarden Wiki 中文版.

Vaultwarden 是一个用于本地搭建 Bitwarden 服务器的第三方 Docker 项目。兼容 Bitwarden 官方客户端,仅在部署的时候使用 Vaultwarden 镜像,桌面端、移动端、浏览器扩展等客户端均使用 Bitwarden 官方的客户端。

Vaultwarden 很轻量,对于不希望使用官方的占用大量资源的自托管部署而言,它是理想的选择。

介绍完了我们开始讲部署服务器端。

部署

在 archlinux 上部署vaultwarden 是很方便的,直接从官方仓库安装。

1
yay -S vaultwarden vaultwarden-web

然后修改配置文件 /etc/vaultwarden.env

1
sudo vim /etc/vaultwarden.env

根据自己的喜好修改即可。重要的是 ADMIN_TOKEN,这是你登录 web 管理员面板时候的密码。

1
2
3
4
## Token for the admin interface, preferably use a long random string
## One option is to use 'openssl rand -base64 48'
## If not set, the admin panel is disabled
ADMIN_TOKEN=YOUR_ADMIN_TOKEN

注意, web 的部分也要改,通过取消注释的方式改成如下样子(使用 vaultwarden-web )。

1
2
3
## Web vault settings
WEB_VAULT_FOLDER=/usr/share/webapps/vaultwarden-web
WEB_VAULT_ENABLED=true

还有其他部分也要改,这里我放一下我改好的,大家可以参照着改。

这里附一份我的配置,通过 cat /etc/vaultwarden.env |grep -E '^[^#]' 产生(即取消了注释的行)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DATA_FOLDER=/var/lib/vaultwarden
WEB_VAULT_FOLDER=/usr/share/webapps/vaultwarden-web
WEB_VAULT_ENABLED=true
WEBSOCKET_ENABLED=true
WEBSOCKET_ADDRESS=0.0.0.0
WEBSOCKET_PORT=3012
SENDS_ALLOWED=true
EMERGENCY_ACCESS_ALLOWED=true
ICON_SERVICE=bitwarden
ICON_REDIRECT_CODE=301
ICON_BLACKLIST_REGEX='^(192\.168\.0\.[0-9]+|192\.168\.1\.[0-9]+)$'
ICON_BLACKLIST_NON_GLOBAL_IPS=true
SIGNUPS_ALLOWED=true
ADMIN_TOKEN=YOUR_ADMIN_TOKEN
DOMAIN=https://YOUR_DOMAIN
AUTHENTICATOR_DISABLE_TIME_DRIFT=true
ROCKET_LIMITS={json=10485760}

然后启动它并加入开机自启,再看一下是否启动成功

1
2
sudo systemctl enable --now vaultwarden
systemctl status vaultwarden

如果显示 running 就说明跑起来了。

我们还需要配置一个 反向代理,以便使用 web 面板,这里以 nginx 为例,可以参考官方 wiki Proxy examples

1
sudo vim /etc/nginx/conf.d/vaultwarden.conf

配置内容直接抄官方教程,我抄的 Nginx (by blackdex), 记得把 <SERVER> 改为你的服务器地址,我使用的 localhost, 然后把 server_name 那里

vault.* 替换为你准备提供服务的域名。 auth_basic那两行我不需要,直接注释掉。在 archlinux 上 vaultwarde 用的端口是 8000, 记得改一下。

然后,给域名申请证书

1
sudo certbot

选择你的域名序号,回车。

最后重启 nginx

1
sudo systemctl restart nginx

到这里,我们就已经部署好啦。

可以访问 https://YOUR_SERVER_NAME/admin 进入管理员面板。在里面进行一些高级配置。(记得把 YOUR_SERVER_NAME 替换为你的域名)。

你需要使用你在配置文件里面写的密码。

建议阅读

  1. Bitwarden 帮助中心中文版:学习如何使用 bitwarden
  2. Vaultwarden Wiki 中文版: 了解你可以在服务器端开启哪些功能

在 Archlinux 服务器上部署 vaultwarden
https://blog.askk.cc/2022/03/03/host-vaultwarden/
作者
sukanka
发布于
2022年3月3日
许可协议