数据主权:在搬瓦工 VPS 上部署 Vaultwarden (Bitwarden) 密码管理器
来自md5.pw
更多语言
更多操作
数据主权:在搬瓦工 VPS 上部署 Vaultwarden (Bitwarden) 密码管理器
在数据泄露事件频发的今天,将密码托管在第三方服务器(如 LastPass)始终存在隐患。Vaultwarden 是大名鼎鼎的开源密码管理器 Bitwarden 的轻量化服务端(基于 Rust 编写),它完美兼容 Bitwarden 的所有官方客户端(iOS/Android/浏览器插件),但资源占用极低,非常适合在搬瓦工(BandwagonHost)VPS 上运行。
本文将指导你使用 Docker 搭建一套属于自己的、端到端加密的密码管理系统。
为什么选择在搬瓦工自建?
- 数据掌控:你的密码数据库加密存储在你自己的 VPS 磁盘上,不再受制于人。
- 极致粘性:搬瓦工提供的高 SLA 保证和自动快照(Snapshot)功能,为密码库的持久化存储提供了双重保险。
- 完全免费:解锁 Bitwarden 官方的高级会员功能(如 TOTP 二步验证、附件存储等)。
准备工作
- 一台搬瓦工 VPS(任何套餐均可,内存 512MB 以上即可)。
- 一个域名(解析到 VPS 的 IP)。
- 已安装 Docker 和 Docker Compose。
第一步:部署环境配置
为了简化 HTTPS 证书的申请过程,我们将使用 Caddy 作为 Web 服务器(它会自动申请并续期 SSL 证书),配合 Vaultwarden 运行。
1. 创建工作目录
mkdir -p /opt/vaultwarden
cd /opt/vaultwarden
2. 创建 docker-compose.yml
nano docker-compose.yml
写入以下内容(请修改域名和 ADMIN_TOKEN):
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
# 开启管理后台,请生成一个复杂的随机字符串作为 Token
# 可以在终端使用 `openssl rand -base64 48` 生成
- ADMIN_TOKEN=请替换为你的随机长字符串
# 允许注册 (建议搭建完成后改为 false 以关闭注册)
- SIGNUPS_ALLOWED=true
volumes:
- ./vw-data:/data
caddy:
image: caddy:2
container_name: caddy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy-data:/data
- ./caddy-config:/config
depends_on:
- vaultwarden
3. 配置 Caddy 自动 HTTPS
创建 Caddy 配置文件:
nano Caddyfile
写入以下内容(将 `your-domain.com` 替换为你的真实域名):
your-domain.com {
# 反向代理到 vaultwarden 容器的 80 端口
reverse_proxy vaultwarden:80
}
第二步:启动服务
在 `/opt/vaultwarden` 目录下执行:
docker compose up -d
稍等片刻,Caddy 会自动向 Let's Encrypt 申请 SSL 证书。打开浏览器访问你的域名 `https://your-domain.com`,如果看到蓝色的 Bitwarden 登录界面,说明部署成功!
第三步:初始设置与安全加固
1. 注册账号
点击“创建账号”,注册你的主账号。
2. 关闭新用户注册(重要!)
为了防止陌生人恶意注册占用你的资源,建议注册完自己账号后,立即关闭注册功能。
修改 `docker-compose.yml`:
- SIGNUPS_ALLOWED=false
然后重启容器生效:
docker compose up -d
第四步:数据备份(核心)
密码库是核心资产,备份重于泰山。得益于搬瓦工的 KiwiVM 面板,我们可以轻松保护数据。
- 方案 A:KiwiVM 自动快照 (推荐)
- 进入搬瓦工 KiwiVM 后台 -> Snapshots -> 将 Automatic snapshots 设置为 "Sticky"(永久保留最新的 2 个快照)。这样即使你误删了文件,也能一键回滚。
- 方案 B:手动导出
- 登录你的 Vaultwarden 网页版后台,定期在“工具” -> “导出密码库”中下载 JSON/CSV 备份。
客户端连接方法
- 下载 Bitwarden 官方手机 App 或浏览器插件。
- 点击登录界面的 小齿轮图标(设置)。
- 在 自托管环境 (Self-hosted environment) -> 服务器 URL 中填入你的域名(例如 `https://your-domain.com`)。
- 保存后即可正常登录使用。
常见问题 (FAQ)
- Q
- 为什么必须用 HTTPS?
- A: Bitwarden 的加密算法依赖于 Web Crypto API,现代浏览器强制要求该 API 必须在 HTTPS 环境下才能运行。如果不用 HTTPS,你将无法注册或登录。
- Q
- 内存占用大吗?
- A: 极小。Vaultwarden 基于 Rust 编写,空闲时内存占用通常仅需 20MB-50MB,即便是搬瓦工最入门的套餐也能流畅运行。
Created by AlexLynn for md5.pw Community.