麦克斯仇
Think different
161
文章
86332
阅读
首页
INDEX
文章
ARTICLE
关于
ABOUT
自建Vaultwarden(跨平台密码管理器)服务端
创建日期:
2026/01/13
修改日期:
2026/01/13
Bitwarden
> 官方教程:[https://github.com/dani-garcia/vaultwarden/wiki](https://github.com/dani-garcia/vaultwarden/wiki) 用了 `Vaultwarden` 有一段时间了,相对于 [自建Bitwarden](https://maxqiu.com/article/detail/126) ,`Vaultwarden` 内存占用极小,且支持官方需要付费才能使用的功能,例如 `TOTP` ,对个人自建使用非常友好了 # 准备工作 ## 环境 - 系统:Linux - 软件:Docker、Nginx PS:若 `Docker` 不能正常拉取镜像,就先找找教程解决这个问题吧 ## 域名和证书 `Vaultwarden` 必须使用 `HTTPS` 协议访问,相信你一定有一个自己的域名,那么再申请一个免费的 ssl 证书,就很简单了,申请之后下载服务器类型为 `Nginx` 的证书 ## 安装ID和密钥 > 和自建 `bitwarden` 服务端时一样,自建 `Vaultwarden` 也需要一对唯一的 `id` 和 `key` 。 浏览器打开 https://bitwarden.com/host/ ,输入个人邮箱,`Data Region` 选择 `bitwarden.com (United States)` 并提交,之后将 `id` 和 `key` 记录下来 ## 邮箱 服务端需要设置一个邮箱的账户密码,用于发送注册通知等 # 安装 ## 拉取最新版镜像 在 [https://github.com/dani-garcia/vaultwarden/releases](https://github.com/dani-garcia/vaultwarden/releases) 上可以看到最新版的版本号 执行以下命令拉取镜像 ```sh docker pull vaultwarden/server:1.35.2 ``` ## 创建数据存储目录 执行以下命令创建文件夹 ```sh mkdir -p /work/vaultwarden/data ``` ## 创建配置文件 1. 生成管理端密码 1. 执行以下命令 ```sh docker run --rm -it vaultwarden/server:1.35.2 /vaultwarden hash ``` 2. 之后两次输入密码 3. 保持 `ADMIN_TOKEN` 后面的数据,不要带两边的单引号 2. 新建配置文件 1. 执行以下命令 ``` vim /work/vaultwarden/env ``` 2. 粘贴如下内容 ``` # 域名(配置自己的域名) DOMAIN=https://vaultwarden.example.tld/ # 启用移动端通知(上文申请的安装ID和密钥) PUSH_ENABLED=true PUSH_INSTALLATION_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx PUSH_INSTALLATION_KEY=xxxxxxxxxxxxxxxxxxxx # 管理员页面密码(上文生成的ADMIN_TOKEN数据,不要带单引号) ADMIN_TOKEN=$argon2id$v=19$m=65540,t=3,p=4$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 邮箱(配置用于发送邮件的邮箱信息) SMTP_HOST=smtp.mxhichina.com SMTP_FROM=vaultwarden@maxqiu.com SMTP_USERNAME=vaultwarden@maxqiu.com SMTP_PASSWORD=SlGQY1N9PmidvxRF SMTP_PORT=465 SMTP_SECURITY=force_tls ``` ## 启动服务 1. 执行以下命令启动 ```sh docker run -d --name vaultwarden \ -v /work/vaultwarden/data/:/data/ \ --env-file /work/vaultwarden/env \ -p 127.0.0.1:8000:80 \ -m 256M \ vaultwarden/server:1.35.2 ``` 2. 查看容器日志 ``` # 执行以下命令查看日志 docker logs vaultwarden # 日志结尾打印如下内容 Rocket has launched from http://0.0.0.0:80 ``` ## 启用 SSL 1. 将证书文件中的 `vaultwarden.example.tld.key` 和 `vaultwarden.example.tld.crt` 文件移动到 `Nginx` 服务的 `conf` 目录下 2. 修改 `nginx.conf` 配置文件,添加如下内容 ```nginx map $http_upgrade $connection_upgrade { default upgrade; '' ""; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 0.0.0.0:443 ssl; listen [::]:443 ssl; http2 on; server_name vaultwarden.example.tld; # ssl证书 ssl_certificate vaultwarden.example.tld.crt; ssl_certificate_key vaultwarden.example.tld.key; # ssl其他配置 ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000"; client_max_body_size 525M; # 请求头相关设置 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; # 所有以/开头的请求 location / { proxy_pass http://127.0.0.1:8000/; proxy_redirect default; } } } ``` 3. 重启 `Nginx` 服务 ## 检查服务状态 1. 访问管理员界面:`https://vaultwarden.example.tld/admin` 2. 输入管理员密码 3. 点击上方的 `Diagnostics` 菜单,重点检查如下配置: - `IP header` 状态是 `Match` - `Websocket enabled` 状态是 `Ok` 至此,大功告成,访问 `https://vaultwarden.example.tld/` 开始创建账号使用吧 PS:Chrome插件、手机端APP等客户端仍使用 Bitwarden 官方的
0
全部评论