8
0
0

如何自行搭建Vaultwarden密码管理器并进行配置

文章摘要
|

前言:

以前用过 1Password, 虽然功能强大,但每年的订阅费用确实也吃不消。刚好最近看到了这个项目
听说是用 Rust 写的,在内存占用上非常友好,因此打算部署一下试试看。

准备

我这里使用的是 Docker Compose 部署,因此首先确保你的服务器上已经安装了 Docker Compose。

为了数据持久化映射,因此强烈建议建立单独的文件夹保存数据。

mkdir vaultwarden && cd vaultwarden

新建docker-compose.yml

来到这个文件夹之后,使用文本编辑器(例如 vi,nano)新建docker-compose.yml,并填入以下内容:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      # DOMAIN: "https://vaultwarden.example.com" # 使用反向代理时必填;您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
      SIGNUPS_ALLOWED: "true" # 创建账户后,使用 "false" 停用此选项,这样就不会有陌生人注册了
    volumes:
      - ./vw-data:/data # : 前面的路径可以修改
    ports:
      - 11001:80 # 您可以将 11001 替换为您喜欢的端口

注意如果你的服务器采用了 Nginx 之类的反向代理,需要取消DOMAIN的注释。
接下来只需要运行容器:

docker compose up -d && docker compose logs -f

接下来访问你配置好的域名或 IP 地址,此刻你应该可以看到注册界面。

配置Vaultwarden

Vaultwarden 具有三种配置方法:

  1. 设置环境变量
  2. 使用 ENV_FILE
  3. 通过 config.json
    第三种方法不需要手动管理,只需要通过管理面板即可。

开启管理面板

管理面板的入口对外是不可见的,你需要在直接访问/admin路由。但此时你无法访问此面板,因为缺少了ADMIN_TOKEN这个环境变量。

更改之前的 docker 文件:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      # DOMAIN: "https://vaultwarden.example.com" # 使用反向代理时必填;您的域名;Vaultwarden 需要知道它是 https 才能正确处理附件
      SIGNUPS_ALLOWED: "true" # 创建账户后,使用 "false" 停用此选项,这样就不会有陌生人注册了
      ADMIN_TOKEN: "XXX" #这里的配置在后面会进行修改
    volumes:
      - ./vw-data:/data # : 前面的路径可以修改
    ports:
      - 11001:80 # 您可以将 11001 替换为您喜欢的端口

然后重新创建容器:

docker compose up -d && docker compose logs -f

这时直接访问/admin应该就能看到管理面板了。

通过PHC字符串保护ADMIN_TOKEN

Vaultwarden 支持使用 PHC 字符串保护 Token,你可以使用argon2来处理:

# 使用 Bitwarden 默认
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4
# 输出:$argon2id$v=19$m=65540,t=3,p=4$bXBGMENBZUVzT3VUSFErTzQzK25Jck1BN2Z0amFuWjdSdVlIQVZqYzAzYz0$T9m73OdD2mz9+aJKLuOAdbvoARdaKxtOZ+jZcSL9/N0

# 使用 OWASP 最低的推荐设置
echo -n "MySecretPassword" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1
# 输出:$argon2id$v=19$m=19456,t=2,p=1$cXpKdUxHSWhlaUs1QVVsSStkbTRPQVFPSmdpamFCMHdvYjVkWTVKaDdpYz0$E1UgBKjUCD2Roy0jdHAJvXihugpG+N9WcAaR8P6Qn/8

得到的字符串你可以直接填入 docker 文件中,但要注意需要使用两个美元符号 $$ 来转义已生成的 argon2 PHC 字符串中出现的所有五个美元符号 $以防止变量插值,也可以填入到管理面板的 Admin token/Argon2 PHC 字段(在 General settings 中)。

自此你就得到了一个可用的 Vaultwarden 密码管理器了。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

如何自行搭建Vaultwarden密码管理器并进行配置
/archives/ru-he-zi-xing-da-jian-vaultwardenmi-ma-guan-li-qi-bing-jin-xing-pei-zhi
作者
Leave_Time(时泠)
发布于
2026-02-23
许可协议
CC BY-NC-SA 4.0

评论