杂项
服务器自建Vaultwarden相关过程
本文档使用 MrDoc 发布
-
+
服务器自建Vaultwarden相关过程
Vaultwarden 可以与 Bitwarden 官方的 App, Browser Plugins 配合使用,而且支持 TOTP 功能。 ## 搭建 >i **github仓库地址:** >https://github.com/dani-garcia/vaultwarden/ ### 一键docker启动 ``` docker run --detach --name vaultwarden \ --env DOMAIN="https://域名" \ --volume /vw-data/:/data/ \ --restart unless-stopped \ --env ADMIN_TOKEN=你的管理密码 \ #用来开启管理后台的,不需要可以删除,这样就无法访问后台 --publish 127.0.0.1:8000:80 \ vaultwarden/server:latest ``` `/vw-data/`是永久数据保存目录。 ### 1panel反代 过程忽略,有手就行 先申请证书,再添加反代。 ## 优化 ### 解决同步延迟 `解决 Vaultwarden (Bitwarden) 自托管同步延迟,实现多端秒级自动更新 (基于 1Panel)` 比如在电脑端改了密码,手机端必须手动“下拉刷新”才能看到;或者手机改了,电脑端需要手动点击同步密码库。 #### 开启移动端官方推送 (解决手机必须下拉刷新) Vaultwarden v1.29.0 以后支持使用 Bitwarden 官方的中转服务器进行推送。为了安全和规范,推荐将敏感信息配置在 环境变量 (.env) 中 ##### 获取授权 Key 访问[ https://bitwarden.com/host]( https://bitwarden.com/host) 输入任意邮箱,获取 INSTALLATION_ID 和 INSTALLATION_KEY。建议选择 bitwarden.com (United States)  ##### 配置环境变量 (.env)(可以省略,进行下一步) 在 1Panel 应用详情页 → 点击 “环境” 标签页。 在输入框的末尾追加以下内容(填入你刚才获取的 ID 和 Key): ``` PUSH_ENABLED=true PUSH_INSTALLATION_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx PUSH_INSTALLATION_KEY=xxxxxxxxxxxxxxxxxxxx ```  ##### 修改容器编排 (docker-compose.yml) 切换到 “容器”-“编排” 标签页,找到 environment 部分,修改为引用刚才定义的变量: 这里可以修改成实际值,就不需要上一步创建env。 ``` environment: - SIGNUPS_ALLOWED=false # --- 引用 .env 中的配置 --- - PUSH_ENABLED=${PUSH_ENABLED} - PUSH_INSTALLATION_ID=${PUSH_INSTALLATION_ID} - PUSH_INSTALLATION_KEY=${PUSH_INSTALLATION_KEY} ``` 如果编排里面没有Vaultwarden镜像,那么可以在`对应容器->编辑`  最下面添加环境变量,如图所示,也是那三个。  #### 配置 Nginx 反代 (解决电脑端延迟问题) 这一步是为了让 WebSocket 正常工作。我们一般采用 1Panel 的反向代理功能,这里我踩了个路径的坑。 ##### 找到正确的配置文件 网站的配置文件中最后有一行 include,它引用了 proxy 目录下的配置。我们必须修改这个配置文件。  文件路径: /opt/1panel/www/sites/你的域名/proxy/  或者在 1Panel 文件管理器中依次点击:根目录 → opt → 1panel → www → sites → [你的域名] → proxy → 编辑里面的 .conf 文件 (通常叫 root.conf)。 ##### 添加 WebSocket 支持 打开文件后,在 location ^~ / { ... } 代码块中,找到 proxy_pass 这一行,在它下面添加以下配置: ``` location ^~ / { proxy_pass http://127.0.0.1:40031; # ... 其他原有配置 ... # === 核心部分:开启 WebSocket === proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; #可能存在 proxy_set_header Connection "upgrade"; #可能有相同参数,不保留这个 # ============================= # ... 其他原有配置 ... } ``` #### 客户端重置 (重要) 配置好服务端后,客户端不会立马生效,必须操作: > 手机端:进入设置 → 注销 (Log out) → 重新登录。这一步是为了向服务器注册推送 ID。 > 电脑端:建议也注销重登一次。 ##### 效果验证 测试推送:电脑浏览器新增一个笔记/登录 → 保存 → 拿起手机(不要手动刷新) → 内容自动变化。 测试 WebSocket:手机改笔记 → 电脑浏览器插件自动更新。
admin
2026年3月26日 17:06
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码