win11 + docker-desktop (wsl2) 本地局域网部署 Vaultwarden

全文就只做两件事:

  1. 运行 vaultwarden
  2. 访问 vaultwarden

为了运行 vaultwarden,你只需要一个 docker 软件以及能访问 dockerhub 的网络环境。用 docker 是因为最方便,如果你实在不想用 docker,理论上你可以下载 vaultwarden 的源代码和依赖并自己构建,不过因为太麻烦所以我没有试过。

在 vaultwarden 运行起来之后,你就可以在运行的主机上本地通过 127.0.0.1 访问其前端了,往后的一切步骤都是为了通过 https 的方式跨域访问/跨设备访问/跨网络环境访问其前端,以及为浏览器插件、移动端应用配置自部署主机用的。因为 vaultwarden 使用的特殊库,只要不是在本地访问前端,都需要通过 https 方式访问。

因此,在接下来的步骤前你需要的东西:

  • 一个能公网访问的 ip 地址(当然不能是 127.0.0.1 或者 192.168.1.1)
  • 一个你所拥有的域名(如 baidu.com 就是一个域名)
  • 一个可信任机构签发的 ssl 证书(即可以通过 https 访问你的 ip /域名,不会出现安全警告或 ssl 错误)
    如果你三者皆有,那你完全可以不需要做接下来的步骤。你只需要让 vaultwarden 部署在这个域名/ip地址对应的主机上就可以了。

如果你并非三者皆有,那你至少得拥有一个域名,这个域名可以通过 dns 解析对应到特定的 ip 地址,因此即使是局域网中的 192.168.1.1 也可以通过该域名解析后访问。本文中的域名是在阿里云购买,也由阿里云 dns 解析到局域网 ip。

接下来,本文将通过 caddy 配置反向代理。这一步是为了将对域名的访问转发到对 vaultwarden 前端的访问,以及让 bitwarden 浏览器插件能正常配置自部署主机。选择 caddy 是因为他可以自动请求 acme 签发 ssl 证书,如果换成 nginx 就需要你手动配置 ssl 证书,不是很省心。

2.1. 用修改后的 caddy 配置有 ssl 证书的反向代理

  • 这一步是为了让你能在局域网内用另一台设备正常访问密码管理器的前端,以及让你的 bitwarden 浏览器插件能正常配置自部署主机
  • 如果你会用 nginx,那可以不用 caddy
  • 如果你的域名可以公网通过 https 访问,那可以不需要这一步
  • 在手机上配置 ssl 证书
  • 这一步是为了让你的 bitwarden 手机应用能正常配置自部署主机
  • 如果你的域名可以公网通过 https 访问,那可以不需要这一步
By Number_Sir On