自建密码管理器:使用Docker部署Vaultwarden全攻略
约 1789 字大约 6 分钟
2025-11-10
前言:为什么选择自建密码管理器?
在这个数字化时代,我们每个人都需要记忆大量的网站账号和密码。使用简单重复的密码极其危险,而记忆复杂密码又不现实。密码管理器成为了最佳解决方案,它不仅能安全存储所有密码,还能生成高强度随机密码,实现一站式的密码管理体验。
Bitwarden作为一款开源密码管理器,深受用户喜爱。但官方服务器资源要求较高,而Vaultwarden作为Bitwarden的轻量级替代品,资源占用极低且功能完整,非常适合个人和小团队自建使用。
本文将详细介绍如何使用Docker在RackNerd VPS上部署Vaultwarden,并通过Cloudflare域名和Caddy反代实现安全访问。
一、Bitwarden与Vaultwarden的区别
1.1 Bitwarden官方服务器
- 开发语言:使用C#编写
- 资源需求:要求至少2GB以上内存,需要MSSQL等商业软件支持
- 授权模式:部分高级功能需要付费企业版
- 部署难度:相对复杂,依赖较多
1.2 Vaultwarden非官方实现
- 开发语言:使用Rust编写,性能极高
- 资源需求:仅需10MB左右内存,对硬件要求极低
- 功能支持:免费支持大部分高级功能如TOTP两步验证、附件等
- 部署简单:提供Docker镜像,部署便捷
- 兼容性:完全兼容官方Bitwarden客户端
二、准备工作
2.1 服务器选择:RackNerd VPS
推荐使用RackNerd VPS,理由如下:
- 性价比高:价格亲民,配置多样
- 稳定性好:适合长期运行服务
- 全球节点:多个数据中心可选,网络优化好
选择至少1GB内存的套餐即可流畅运行Vaultwarden。立即注册获取VPS:https://racknerd.com/,通过链接注册可获取年费不到 美元的特价vps: https://my.racknerd.com/aff.php?aff=16285&pid=917。 
2.2 域名与CDN:Cloudflare
- 域名注册:在Cloudflare注册或迁移域名
- CDN加速:免费CDN服务,提升访问速度
- SSL证书:提供免费SSL证书,实现HTTPS加密
2.3 系统要求
- 操作系统:Ubuntu 18.04+/Debian 10+
- 安装Docker和Docker Compose
- 开放80和443端口
三、使用Docker部署Vaultwarden
3.1 安装Docker
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 将当前用户添加到docker组
sudo usermod -aG docker $USER
# 重新登录使更改生效3.2 创建Docker Compose文件
创建docker-compose.yml文件:
version: "3.8"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
volumes:
- ./vw-data:/data
environment:
- WEBSOCKET_ENABLED=true
- SIGNUPS_ALLOWED=false
- DOMAIN=https://your-domain.com
- ADMIN_TOKEN=your_secure_admin_token_here
networks:
- vaultwarden-network
caddy:
image: caddy:2-alpine
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- ./caddy-data:/data
- ./caddy-config:/config
networks:
- vaultwarden-network
depends_on:
- vaultwarden
networks:
vaultwarden-network:
driver: bridge3.3 生成ADMIN_TOKEN
# 生成安全的管理员令牌
openssl rand -base64 48将生成的令牌替换docker-compose.yml中的your_secure_admin_token_here。
3.4 创建Caddyfile
创建Caddyfile配置反向代理和SSL:
your-domain.com {
encode gzip
# Vaultwarden反向代理
reverse_proxy / vaultwarden:80
reverse_proxy /notifications/hub vaultwarden:3012
reverse_proxy /notifications/hub/negotiate vaultwarden:80
# 安全头部
header {
# 启用HSTS
Strict-Transport-Security "max-age=31536000;"
# 防止XSS
X-XSS-Protection "1; mode=block"
# 禁止iframe嵌入
X-Frame-Options "DENY"
# 防止MIME类型嗅探
X-Content-Type-Options "nosniff"
}
}3.5 启动服务
# 创建必要目录
mkdir -p {vw-data,caddy-data,caddy-config}
# 启动服务
docker-compose up -d
# 查看日志确认运行状态
docker-compose logs -f四、配置与管理
4.1 初始化设置
- 通过浏览器访问您的域名:
https://your-domain.com - 由于我们设置了
SIGNUPS_ALLOWED=false,需要先通过管理页面创建账户
4.2 访问管理后台
- 访问
https://your-domain.com/admin - 输入之前设置的ADMIN_TOKEN
- 在管理界面中创建第一个用户账户
4.3 重要环境变量说明
根据实际需求调整docker-compose中的环境变量:
environment:
# 禁止新用户注册(创建账户后建议开启)
- SIGNUPS_ALLOWED=false
# 启用管理页面
- ADMIN_TOKEN=your_admin_token
# 设置域名
- DOMAIN=https://your-domain.com
# 启用WebSocket通知(实时同步)
- WEBSOCKET_ENABLED=true
# 启用SMTP设置(密码重置等)
- SMTP_HOST=smtp.example.com
- [email protected]
- SMTP_PORT=587
- SMTP_SSL=true
- SMTP_USERNAME=username
- SMTP_PASSWORD=password五、浏览器插件使用
5.1 安装插件
- 在Chrome、Firefox等浏览器的扩展商店搜索"Bitwarden"
- 安装官方Bitwarden插件
5.2 配置插件
- 打开Bitwarden插件,点击"设置"
- 在"自托管环境"部分,输入您的服务器URL:
https://your-domain.com - 保存设置,返回登录页面即可使用自建服务器登录
5.3 使用技巧
- 自动填充:插件会自动提示保存网站密码,下次访问时可自动填充
- 密码生成:注册新账户时,使用密码生成器创建强密码
- 快捷键:可使用Ctrl+Shift+L快速填充密码
六、手机App使用
6.1 安装与配置
- 在iOS App Store或Android应用商店搜索"Bitwarden"并安装
- 打开App,点击设置图标,选择"自托管环境"
- 输入您的服务器URL:
https://your-domain.com - 返回登录页面,输入账户信息登录
6.2 移动端功能
- 生物识别:支持Face ID、指纹解锁
- 自动填充:在App和浏览器中自动填充密码
- TOTP支持:可生成两步验证码
七、安全建议
7.1 服务器安全
- 定期更新:保持系统和Docker镜像最新
- 防火墙配置:只开放必要端口
- 备份策略:定期备份
vw-data目录
7.2 Vaultwarden安全
- 强主密码:确保使用高强度主密码
- 启用2FA:在账户设置中启用两步验证
- 定期审查:检查管理页面的访问日志
7.3 网络安全
- Cloudflare设置:配置适当的防火墙规则
- HTTPS强制:通过Caddy确保全站HTTPS
- 限制访问:可设置基础认证增加额外安全层
八、故障排除
8.1 常见问题
无法注册新用户
- 检查
SIGNUPS_ALLOWED环境变量设置
- 检查
WebSocket连接错误
- 确认
WEBSOCKET_ENABLED=true且Caddy配置正确
- 确认
邮件功能不正常
- 验证SMTP相关环境变量配置正确性
8.2 日志查看
# 查看Vaultwarden日志
docker-compose logs vaultwarden
# 查看Caddy日志
docker-compose logs caddy结语
通过本文的指导,您已经成功搭建了自己的密码管理系统。Vaultwarden结合RackNerd VPS和Cloudflare的方案,既经济又安全,让您完全掌控自己的密码数据,不再依赖第三方密码管理服务。
自建密码管理器不仅是技术上的实践,更是对数字自主权的一次重要掌握。您的密码数据完全由自己掌控,无需信任第三方服务商,在当今数据泄露频发的时代,这一点尤为重要。
立即开始您的密码自主之旅,享受安全、自由的数字生活!