自建Vaultwarden密码管理器,并实现自动备份和EdgeOne加速
自建Vaultwarden密码管理器,并实现自动备份和EdgeOne加速
Vaultwarden 是一款基于 Rust 语言开发的 Bitwarden 兼容服务器,专为自托管场景设计。其核心目标是提供高性能、低资源占用的密码管理解决方案,同时保持与官方 Bitwarden 客户端的完全兼容。通过轻量化设计和模块化架构,Vaultwarden 能够在树莓派、NAS 或低配 VPS 上高效运行,成为自托管用户的理想选择。
Vaultwarden 采用 Rust 语言开发,内存占用极低,通常仅需 10-50MB,远低于官方 Bitwarden 服务器的资源需求。其模块化设计支持 Docker 容器化部署,默认镜像体积小巧,约 100MB,启动速度快,适合资源有限的环境。无论是个人用户还是小型团队,Vaultwarden 都能在不牺牲功能的前提下,提供流畅的使用体验。
Vaultwarden 实现了 Bitwarden 客户端 API 的几乎所有功能,包括个人保险库、组织共享、多因素认证、附件与图标支持以及管理后台。个人保险库支持存储密码、笔记、信用卡等数据,而组织共享功能则允许用户通过集合、用户组和角色管理实现团队协作。多因素认证集成了 FIDO2 WebAuthn、YubiKey 和 Duo 等硬件密钥,进一步提升账户安全性。此外,Vaultwarden 还支持文件上传和网站图标自动抓取,并通过 Web 端管理界面提供用户管理和策略配置功能。
一、环境准备
在开始部署之前,需要确保你的系统环境满足以下条件:
- 操作系统:支持大多数 Linux 发行版,如 Ubuntu、Debian、CentOS 等。也可以在 Windows 和 macOS 上运行,但主要推荐在 Linux 服务器上部署。
- 硬件要求:虽然 Vaultwarden 以低资源消耗闻名,但至少应确保有 1GB RAM 和 1GHz CPU,以保证运行的流畅性。磁盘空间根据你的用户量和存储的数据量来决定,起步至少需要 10GB。
- 网络配置:确保服务器的指定端口(默认为 80 和 443)对外开放,以便用户访问 Vaultwarden 服务
- Docker Engine:用于容器化部署和管理。
- Docker Compose:支持configs的版本,用于多容器应用的编排
- SSH 客户端,宝塔面板
- 一个域名 (强烈建议,用于HTTPS)
- 一个有EdgeOne免费套餐的腾讯云账号
二、部署过程
1、安装Docker和Docker Compose
1 | bash <(curl -sSL https://linuxmirrors.cn/docker.sh) |
国外选官方,国内除官方以外都可以
国外选官方,国内建议选第一个毫秒镜像
2、安装宝塔面板及网站环境
1 | if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec |
成功安装完面板后进入首页,只需要安装推荐的Nginx
3、创建部署目录并编辑部署文件
1 | mkdir -p /home/vaultwarden && cd /home/vaultwarden |
在部署目录下,创建docker-compose.yaml
文件,示例内容如下:
1 | vim docker-compose.yaml |
1 | services: |
这里 SMTP 相关环境变量可以不填,但不填的话登录 Vaultwarden 二次验证就是不能选择邮件验证,但你可以选择其他方式进行二验
在docker-compose.yml
文件所在目录执行操作
1 | # Start |
4、反向代理设置
- 签发证书,其他默认
- 启用 HTTPS:强烈建议通过反向代理启用 HTTPS,以确保数据传输过程中的加密。
- 定期更新:定期更新 Docker 镜像或 Vaultwarden 本身,以确保安全漏洞得到修复
三、创建用户,使用教程
反代设置好以后,接下来访问 web 页面创建用户
填写账号信息创建用户。创建完毕后,记得修改 compose 文件的环境变量 SIGNUPS_ALLOWED
为 false
接下来可以设置二验,并保存恢复代码以防万一。
接下来就是安装客户端,再进行登录就完事了。PC 端推荐使用浏览器并安装插件,移动端推荐安装 App
,都可以在 bitwarden下载页面 找到。
需要注意的是,登陆时需要选择自托管,并填写自己的网址才可以使用。
另外现在越来越多网站可以开启TOTP二次验证,vaultwarden 当然也是支持的
四、自动备份教程
1、配置Rclone
我们通过 Rclone 同步备份文件到远程存储系统。
访问 GitHub 了解更多存储系统使用教程,不同的系统获得 Token 的方式不同。
你可以通过下面的命令获得 Token
1 | docker run --rm -it \ |
我们建议将远程名称设置为 BitwardenBackup
,否则你需要指定环境变量 RCLONE_REMOTE_NAME
为你设置的远程名称。
2、自动备份
如果你有一个正在运行的 vaultwarden,但是不想使用 docker-compose.yml,我们同样为你提供了备份方法。
确保你的 vaultwarden 容器被命名为 vaultwarden,否则你需要自行替换 docker run 的 –volumes-from 部分。
默认情况下 vaultwarden 的数据文件夹是 /data,你需要显式使用环境变量 DATA_DIR 指定数据文件夹。
使用默认设置启动容器(每小时的 05 分自动备份)
1 | docker run -d \ |
3、还原备份
重要: 还原备份会覆盖已存在的文件。
你需要在还原备份前停止 Docker 容器。
你也需要下载备份文件到本地计算机。
因为主机的文件无法在 Docker 容器中直接访问,所以要将需要还原的备份文件所在目录映射到 Docker 容器中。
首先进入待还原的备份文件所在目录。
如果你使用的是“自动备份”,请确认 vaultwarden 卷的命名,并替换 –mount source 部分。
同时不要忘记使用环境变量 DATA_DIR 指定数据目录(-e DATA_DIR=“/data”)。
1 | docker run --rm -it \ |
五、EdgeOne加速
边缘安全加速平台 EO(Tencent cloud EdgeOne,下文简称为 EO )基于腾讯边缘计算节点提供加速和安全的解决方案,为电商与零售、金融服务、内容资讯与游戏等行业保驾护航,提升用户体验。
- 加速方面:边缘节点更贴近用户,有效降低了数据访问时间延迟,避免数据传输抖动,保障大量数据传输的稳定性和有效性。同时,产品提供了动静态数据加速,跨国加速,智能路由优化等加速特性,高效支撑对时延敏感的相关业务。
- 安全方面:提供 WAF,DDoS 安全防护服务。节点识别并拦截 L3/L4/L7层各类攻击请求,对 DDoS 攻击流量进行清洗,智能 AI 引擎、BOT 策略引擎对 Web、BOT、CC 类型攻击进行行为分析并更新拦截策略,阻断恶意请求到达用户源站,保障业务访问流畅稳定。
腾讯云国际站 6月13日开始限量内测 EdgeOne网站安全加速免费版!不限流量,不限请求次数!已备案域名还能享受中国大陆节点加速!
内测时间到2025 年7月15日晚上 11:59:59!内测结束会应该就会公测了!
目前EdgeOne国际版,无需实名,无需绑卡,就能使用服务!!
腾讯云国际版才有免费版,注册账号和购买时一定要注意!
腾讯云国际站:https://www.tencentcloud.com/zh
EdgeOne国际站:https://edgeone.ai/zh/redemption
1、免费计划
- 只限一个站点(一个主域,不限制子域名)
- 不限流量
- 不限请求次数
- 长期有效(”永”不过期)
- 已备案域名支持中国大陆CDN加速
- 自动签发SSL证书
- 官方介绍:https://edgeone.ai/zh/document/70405
2、Get兑换码
官方推荐有3种方式:
第一:推特发布宣传内容,有机会获得兑换码(回复非常慢慢慢, 推特默认私信是关闭的要去手动打开)。
第二:在 Discord 上“抢”兑换码。北京时间下午三点/六点/晚上九点 准时发1兑换码)。
第三:参与Github活动可获取,https://edgeone.ai/blog/details/github-developer
另外一种方式,寻找EdgeOne人员PY一个码字。EdgeOne国内版国外版都是同一拨人!
3、绑定站点
访问 EO控制台
填写站点域名,一定要谨慎。因为目前暂时不能更换主域名。
特别提醒,域名有国内备案才能享受国内CDN加速!否则只有海外加速!速度相差太多了!
第二步:绑定已经拥有的免费版。点击下一步后稍等一会!
第三步:选择加速区域。已备案域名可选【全球可用区】。接入模式支持 CNAME 和 NS,根据自己的情况选择!
全球可用区支持中国大陆加速!!
4、加速vaultwarden站点
可以看到加速域名已经在部署中了,我们可以按以上步骤把所有需要加速的域名全部添加上
接下来我们给加速域名配置 SSL 证书,点击如图处的 编辑
为了省去手动更新证书的麻烦,我们直接选择 申请免费证书 ,点击 确定
可以看到,证书正在申请中,我们可以按以上步骤把所有加速域名的证书配置完成
稍等片刻,我们可以看到证书已经全部配置完毕
创建加速规则,否则无法进行设备审批登陆
添加以下路径为 不缓存(EdgeOne → 规则引擎 → 缓存规则):
1 | /notifications/* |
启用真实客户端 IP 传递
在 EdgeOne → 站点配置 → 网络 中,确保 X-Forwarded-For
头已启用
进入vaultwarden admin:https://xxxxx.yourdomain.com/admin 页面,输入环境变量中的Admin_token
修改Client IP header为 X-Forwarded-For