[教程] 解决 Vaultwarden (Bitwarden) 自托管同步延迟,实现多端秒级自动更新 (基于 1Panel) - 开发调优 - LINUX DO
![[教程] 解决 Vaultwarden (Bitwarden) 自托管同步延迟,实现多端秒级自动更新 (基于 1Panel) - 开发调优 - LINUX DO 封面](/brand/timeamber-default-cover.png)
同步来源:树洞剪藏 源站剪藏 ID:621 原文地址:https://linux.do/t/topic/1241912
[教程] 解决 Vaultwarden (Bitwarden) 自托管同步延迟,实现多端秒级自动更新 (基于 1Panel) - 开发调优 - LINUX DO
set 限制解除
跳转到您离开的地方 (post 12)
跳转到最后一条回复
跳转到顶部
跳到主要内容
社区子系统和元宇宙
99
话题
我的帖子
我的消息
近期活动
更多
资源
Connect
Channel
IDC Flare
类别
开发调优
国产替代
资源荟萃
网盘资源
文档共建
前沿快讯
网络记忆
福利羊毛
搞七捻三
社区孵化
运营反馈
深海幽域
所有类别
标签
抽奖
公告
集中帖
精华神帖
快问快答
人工智能
原创
所有标签
Search chat
频道
常规频道
聊天
Default
真诚 、 友善 、 团结 、 专业 ,共建你我引以为荣之社区。 《常见问题解答》
[教程] 解决 Vaultwarden (Bitwarden) 自托管同步延迟,实现多端秒级自动更新 (基于 1Panel)
开发调优
VPS , 配置优化
601
浏览量
55
赞
2
链接
18
用户
7
4
2
2
12月 1 日
1 / 29
12月 1 日
返回
33 分钟
由 Lush 发布于 12月 1 日
多云转晴
Lush
圆圆满满
2
10 天
本小白最近在折腾自托管的 Vaultwarden,部署在 1Panel 上。
发现一个痛点: 多端同步不及时 。
比如在电脑端改了密码,手机端必须手动“下拉刷新”才能看到;或者手机改了,电脑端需要手动点击同步密码库。
在哈基米3的帮助下终于搞定,实现了 WebSocket 实时通讯 和 移动端官方推送 。踩了几个 1Panel 配置文件的坑,特此记录分享一下。
原理简述
电脑/插件端 :依赖 WebSocket 长连接,需要反向代理(Nginx)开启 Upgrade 头支持。
手机端 (iOS/Android) :依赖 Bitwarden 官方的 Push 服务,需要去官方申请一个免费的中转 Key,并配置到 Docker 环境变量中。
一、 开启移动端官方推送 (解决手机必须下拉刷新)
Vaultwarden v1.29.0 以后支持使用 Bitwarden 官方的中转服务器进行推送。为了安全和规范,推荐将敏感信息配置在 环境变量 (.env) 中
获取授权 Key
访问 https://bitwarden.com/host ,输入任意邮箱,获取 INSTALLATION_ID 和 INSTALLATION_KEY 。
建议 选择 bitwarden.com (United States)
图片 1645×632 49.8 KB
配置环境变量 (.env)
在 1Panel 应用详情页 → 点击 “环境” 标签页。
在输入框的末尾追加以下内容(填入你刚才获取的 ID 和 Key):
PUSH_ENABLED= true PUSH_INSTALLATION_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx PUSH_INSTALLATION_KEY=xxxxxxxxxxxxxxxxxxxx
配置截图:
图片 1627×906 68.6 KB
修改容器编排 (docker-compose.yml)
切换到 “容器”- “编排” 标签页,找到 environment 部分,修改为引用刚才定义的变量:
environment:
- SIGNUPS_ALLOWED=false
--- 引用 .env 中的配置 ---
- PUSH_ENABLED=${PUSH_ENABLED}
- PUSH_INSTALLATION_ID=${PUSH_INSTALLATION_ID}
- PUSH_INSTALLATION_KEY=${PUSH_INSTALLATION_KEY}
配置截图:
66536f4b-598f-482b-9c8d-94f4b2d9b6be 1746×934 107 KB
重建容器
点击右下角的 “确认” 保存编排,然后点击 “重建” 按钮使配置生效。
第二步:配置 Nginx 反代 (解决电脑端延迟问题)
这一步是为了让 WebSocket 正常工作。我们一般采用 1Panel 的反向代理功能, 这里我踩了个路径的坑 。
找到正确的配置文件
网站的配置文件中最后有一行 include ,它引用了 proxy 目录下的配置。我们必须修改这个配置文件。
图片 1603×922 90.7 KB
文件路径 :
/opt/1panel/www/sites/你的域名/proxy/
图片 1492×525 35 KB
或者在 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";
=============================
... 其他原有配置 ...
}
示例(可以直接用这个替换你的root.conf):
location ^~ / { proxy_pass http:/ / 127.0 . 0 . 1 : 40031 ; proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header REMOTE-HOST $remote_addr ;
--- WebSocket 标准配置 ---
proxy_http_version 1.1 ; proxy_set_header Upgrade $http_upgrade ; proxy_set_header Connection "upgrade" ;
-----------------------
proxy_set_header X-Forwarded-Proto $scheme ; proxy_set_header X-Forwarded-Port $server_port ;
add_header X-Cache $upstream_cache_status ; add_header Cache-Control no -cache;
这一行通常不需要,如果遇到 502 可以删掉试试,但在 1Panel 里通常保留即可
proxy_ssl_server_name off; proxy_ssl_name $proxy_host ;
add_header Strict-Transport-Security "max-age=31536000" ; }
第三步:客户端重置 (重要)
配置好服务端后,客户端不会立马生效,必须操作:
手机端 :进入设置 → 注销 (Log out) → 重新登录。这一步是为了向服务器注册推送 ID。
电脑端 :建议也注销重登一次。
效果验证
测试推送 :电脑浏览器新增一个笔记/登录 → 保存 → 拿起手机(不要手动刷新) → 内容自动变化。
测试 WebSocket :手机改笔记 → 电脑浏览器插件自动更新。
希望能帮到同样使用 1Panel 部署 Vaultwarden 的佬友们!
方案仅供大家参考, 如果有更优雅的配置姿势,或者有什么疏漏,欢迎各位大佬指正!
heart
+1
confetti_ball
37
回复
密码管理工具!你选?
601
浏览量
55
赞
2
链接
18
用户
7
4
2
2
由 handsome 发布于 12月 1 日
大帅哥
handsome
种子用户
10 天
感谢大佬教程!
1 个回复
1
回复
由 Lush 发布于 12月 1 日
多云转晴
Lush
圆圆满满
大帅哥
10 天
大帅哥太快了
回复
由 OYeah 发布于 12月 1 日
OYeah
Regular
10 天
谢谢分享
1
回复
由 zshawk 发布于 12月 1 日
zshawk
种子用户
10 天
感谢分享
1
回复
由 felamin 发布于 12月 1 日
felamin
蛇来运转
10 天
我只是配置了push也可以自动同步呢,无需下拉刷新,甚至在密码查看界面停留着都会自动变
1 个回复
open_mouth
1
回复
由 Lush 发布于 12月 1 日
多云转晴
Lush
圆圆满满
felamin
10 天
只配置push就可以吗
我是都配置了才试的,那这样更简单啊
1 个回复
回复
由 andyxiong 发布于 12月 1 日
andyxiong
Regular
10 天
感谢分享,不需要及时同步都没注意到这个问题
laughing
1
回复
由 sqkwater 发布于 12月 1 日
为我花生!
sqkwater
10 天
感谢佬友.
1
回复
由 PonyDavi 发布于 12月 1 日
PonyDavi
10 天
不错不错
回复
由 felamin 发布于 12月 1 日
felamin
蛇来运转
多云转晴
10 天
按理说只配置佬教程第一步那三个参数就能实现了,我刚才测试是iOS App和Chrome扩展都是自动的,其他端我没安装
open_mouth
1
回复
由 App 发布于 12月 1 日
ye
App
种子用户
10 天
我之前也是手动刷新,感谢分享
bili_057
1
回复
由 App 发布于 12月 1 日
ye
App
种子用户
10 天
我试了浏览器扩展和pc版会自动同步,安卓客户端不行
1 个回复
回复
由 Lush 发布于 12月 1 日
多云转晴
Lush
圆圆满满
ye
10 天
注销重新登录一下试试呢
我刚开始也是
1 个回复
1
回复
由 wilile 发布于 12月 1 日
baijie
wilile
文化宣导员
10 天
感谢佬教程
回复
由 App 发布于 12月 2 日
ye
App
种子用户
多云转晴
10 天
注销重新登录了,两台安卓机都不行,一个是play版,一个是github版,情况都一样
1 个回复
1
回复
由 colt 发布于 12月 2 日
colt
10 天
感谢教程
回复
由 moonk 发布于 12月 2 日
芍霾🏆
moonk
活跃用户
10 天
佬友厉害
回复
由 Lush 发布于 12月 2 日
多云转晴
Lush
圆圆满满
ye
9 天
那可能是ID和key配置有点问题
格式或者复制的不完整?
可以试试直接把key和id写在yaml里
1 个回复
回复
由 App 发布于 12月 2 日
ye
App
种子用户
多云转晴
9 天
我是直接写到yaml里的,我用优选ip了,不知道这是否会有影响,不过就算不能及时同步,对我的影响也不大,就这样用也行
open_mouth
1
回复
8 天后
由 fawkes233 发布于 13 小时前
fawkes233
13 小时
感谢,成功搞定
hugs
1
回复
由 Pony0690 发布于 4 小时前
Pony
Pony0690
4 小时
亲测有效,感谢佬友
hugs
1
回复
由 Keenly2963 发布于 3 小时前
sup
Keenly2963
浴火重生
3 小时
这个我以前配置是为了app上批准登录用的,哈哈
1 个回复
open_mouth
1
回复
由 Lush 发布于 2 小时前
多云转晴
Lush
圆圆满满
sup
2 小时
还有这种操作 佬是iphone吗
感觉安卓完全不如iphone适配 通行密钥都不太好用
1 个回复
回复
由 nerokim 发布于 2 小时前
由 enter9 发布于 2 小时前
由 amm10090 发布于 2 小时前
由 Keenly2963 发布于 52 分钟前
由 Lush 发布于 34 分钟前
分享
加入书签
举报
回复
跟踪
由于您 阅读过此话题 ,您将看到新回复的数量。
推荐
相关
新话题和未读话题
话题列表,带有按钮的列标题可以排序。
话题
回复
浏览量
活动
如果我有个朋友在德国永久居住,是不是可以找他弄一个家宽节点? 38
开发调优
快问快答 , 纯水
45
990
13 分钟
gemini大规模封号了 秋后算账了哦 61
开发调优
纯水
79
3.4k
2 小时
我宣布:ClaudeCode白菜价时代来临!4分钱稳定渠道,成本暴降90%! (源头,双十一活动中) 2689
开发调优
人工智能 , 抽奖 , 高级推广
2.7k
31.5k
3 小时
成本¥27.8的自制短信转发器 155
开发调优
软件开发 , 硬件开发
160
4.8k
21 小时
【开源自荐】配对翻译——完全开源免费的沉浸式翻译 72
开发调优
人工智能 , 软件开发 , 原创 , 公益推广
72
2.5k
1 天
有 341 个未读 话题 和 130 个新 话题,
或浏览 开发调优 中的其他话题
StripeM-Inner '> ">