Vaultwarden
Vaultwarden(原名 Bitwarden_RS)是 Bitwarden 密码管理器的非官方轻量级实现,使用 Rust 语言编写。它提供了与官方 Bitwarden 服务器相同的功能,但系统资源需求更低,更适合个人和小型团队自托管。
官方网站
- GitHub: https://github.com/dani-garcia/vaultwarden
- 文档: https://github.com/dani-garcia/vaultwarden/wiki
- Bitwarden 官方网站: https://bitwarden.com/
Docker方式安装
Vaultwarden 非常适合通过 Docker 容器部署,以下是详细的安装步骤。
compose文件
创建 compose.yml
文件:
version: '3'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- WEBSOCKET_ENABLED=true # 启用WebSocket通知
- DOMAIN=https://your-vaultwarden-domain.com # 替换为你的域名
# - ADMIN_TOKEN=your-admin-token # 取消注释并设置管理员令牌
volumes:
- ./data:/data
ports:
- "8080:80" # Web 界面
- "3012:3012" # WebSocket 通知
networks:
- vaultwarden_net
networks:
vaultwarden_net:
driver: bridge
env文件
如果你需要更多高级配置,可以创建一个 .env
文件代替在 compose.yml 中设置环境变量:
# 基本设置
DOMAIN=https://your-vaultwarden-domain.com
WEBSOCKET_ENABLED=true
# 管理页面设置(高度推荐设置随机生成的安全令牌)
ADMIN_TOKEN=your-strong-admin-token-here
# SMTP 邮件设置
SMTP_HOST=smtp.example.com
SMTP_FROM=vaultwarden@example.com
SMTP_PORT=587
SMTP_SECURITY=starttls # 可选: starttls, force_tls, off
SMTP_USERNAME=username
SMTP_PASSWORD=password
# 高级设置
# SIGNUPS_ALLOWED=false # 禁止新用户注册
# INVITATIONS_ALLOWED=true # 允许邀请新用户
# SHOW_PASSWORD_HINT=false # 禁用密码提示
启动
使用以下命令启动 Vaultwarden:
docker compose up -d
启动后,在浏览器中访问 http://your-server-ip:8080
进行初始设置并创建你的首个账户。
配置文件
Vaultwarden 的数据和配置存储在挂载的数据卷中:
- 主要数据库:
./data/db.sqlite3
- 附件:
./data/attachments
- 图标缓存:
./data/icon_cache
- 配置文件:
./data/config.json
(某些设置)
备注
-
安全建议:
- 始终通过 HTTPS 访问你的 Vaultwarden 实例
- 设置强管理员令牌并妥善保管
- 考虑禁用公开注册 (
SIGNUPS_ALLOWED=false
) - 定期备份数据库和附件
-
客户端应用:
- Vaultwarden 兼容所有官方 Bitwarden 客户端
- 可以在 Android、iOS、Windows、macOS、Linux 等平台使用
- 浏览器扩展可用于 Chrome、Firefox、Safari、Edge 等
-
功能对比:
- Vaultwarden 支持几乎所有官方 Bitwarden 功能,包括:
- 密码、笔记、身份信息和支付卡管理
- 密码分享
- 组织和集合
- 两步验证
- 目录连接(LDAP)
- 紧急访问
- 不支持的功能很少,主要是一些企业级功能
- Vaultwarden 支持几乎所有官方 Bitwarden 功能,包括:
-
备份策略: 定期备份
./data
目录,特别是db.sqlite3
文件:# 备份示例
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./data -
资源需求:
- RAM: 最低 64MB,推荐 256MB+
- CPU: 单核足够大多数用例
- 存储: 取决于存储的附件,通常几百 MB 到几 GB