Vaultwarden 简介
Vaultwarden 是用 Rust 重新实现的 Bitwarden 服务器 API。它可以配合官方 Bitwarden 客户端使用,包括浏览器扩展、手机应用、桌面端和命令行工具,同时资源占用很低,适合部署在小型 VPS 上。开发者、家庭用户和小型团队常用它,把账号凭据保存在自己掌控的服务器上。
交付时,安装脚本已经部署好 Docker,并通过 Docker Compose 在 /opt/vaultwarden 中启动了两个容器。Vaultwarden 只监听本机地址(127.0.0.1:8080),由 Caddy 在 443 端口通过 HTTPS 对外提供访问。数据保存在名为 vw_data 的 Docker 卷中。
证书是自签名的(Caddy 的 tls internal 指令),并绑定到服务器的公网 IP 地址。在您绑定域名之前,浏览器会显示安全警告。初始状态下注册是开放的(SIGNUPS_ALLOWED=true),建议您先创建自己的账户,然后关闭注册。
用 Vaultwarden 可以做什么
兼容 Bitwarden 客户端
在 Bitwarden 应用和扩展中填入您服务器的 URL 即可连接。您可以继续使用熟悉的工具,无需依赖第三方服务。
资源占用低
Vaultwarden 用 Rust 编写,在配置不高的 VPS 上也能流畅运行,同一台机器上还能留出空间给其他服务。
Caddy 提供 HTTPS
Caddy 以主机网络模式运行,在 443 端口使用自签名证书提供界面访问。Vaultwarden 容器不会直接暴露在互联网上。
通过 Docker Compose 部署
全部配置都在
/opt/vaultwarden/docker-compose.yml和Caddyfile中。修改后执行docker compose up -d即可生效。数据存放在独立卷中
数据库和附件保存在
vw_data卷中,与容器分离。更新镜像时不会影响您的密码库。可控制账户注册
通过
SIGNUPS_ALLOWED变量,您可以在用户都注册完毕后关闭账户创建,避免陌生人在您的实例上注册。
Vaultwarden 快速上手
从下单到上线,只需几分钟。
- 1
订购并勾选 Vaultwarden
选择一台 Linux VPS(巴黎或法兰克福),系统可选 Debian 12、Debian 13,或 Ubuntu 20.04、22.04、24.04。在订购表单的“应用”标签页中勾选 Vaultwarden。
- 2
交付后检查安装情况
交付后请等待几分钟:脚本会先安装 Docker,再启动容器。通过 SSH 登录,确认
vaultwarden和caddy都处于运行状态。Bashssh root@SERVER_IP cd /opt/vaultwarden docker compose ps - 3
创建您的主账户
在浏览器中打开 https://SERVER_IP,并接受自签名证书的警告。创建账户后立即关闭注册,以免其他人也能注册。
Bashsed -i 's/SIGNUPS_ALLOWED=true/SIGNUPS_ALLOWED=false/' /opt/vaultwarden/docker-compose.yml cd /opt/vaultwarden && docker compose up -d - 4
切换到域名和有效的 HTTPS
为 YOUR_DOMAIN 添加指向 SERVER_IP 的 A 记录。在 Caddyfile 中,把原有站点块改为 YOUR_DOMAIN 且不带
tls internal,在 docker-compose.yml 中设置DOMAIN=https://YOUR_DOMAIN,放行 80 和 443 端口,然后重新启动。Bashcd /opt/vaultwarden nano Caddyfile nano docker-compose.yml ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp docker compose up -d --force-recreate
Vaultwarden 的使用场景
个人或家庭密码库
把全家的密码、安全笔记和恢复码放在自己的服务器上,所有设备都能访问。
小团队的访问凭据管理
通过 Bitwarden 的组织和集合功能,在几位同事之间共享服务器登录信息、SaaS 账号和 API 密钥。
替代云端订阅服务
不再使用第三方托管的密码管理器,继续使用同一个 Bitwarden 客户端,数据则保存在欧洲的 VPS 上。
内部工具服务器的一部分
Vaultwarden 内存占用小,可以和其他自托管服务一起放在同一台 VPS 上。
Vaultwarden 常见问题
证书由 Caddy 针对服务器 IP 地址生成(tls internal),没有经过任何公共证书机构签名。创建账户时可以先接受该警告。如需长期使用,请绑定域名,让 Caddy 自动获取有效证书。
深入了解 Vaultwarden
需要了解的文件和服务
所有内容都位于 /opt/vaultwarden:安装脚本 install-vaultwarden.sh、docker-compose.yml 和 Caddyfile。三个 Docker 卷分别是 vw_data(您的数据)、caddy_data(证书)和 caddy_config。两个容器都会自动重启(restart: always)。
使用域名
交付时提供的证书是自签名的,并且绑定的是 IP。手机应用和部分浏览器扩展可能会拒绝这类证书,所以日常使用建议配置域名和有效证书。有了域名之后(可参考我们的域名服务),一个最简的 Caddyfile 如下:
YOUR_DOMAIN {
reverse_proxy 127.0.0.1:8080
}
只要 DNS 已指向服务器,并且 80 和 443 端口可以从外部访问,Caddy 就能自动获取公共证书。修改后用 docker compose restart caddy 重新加载。别忘了同时修改 Vaultwarden 的 DOMAIN 变量,使其与域名一致。
备份
请备份 vw_data 卷:其中包含 SQLite 数据库、密钥和附件。卷的实际名称取决于项目目录名,请用 docker volume ls 确认(通常是 vaultwarden_vw_data)。
docker run --rm -v vaultwarden_vw_data:/data -v /root:/backup alpine tar czf /backup/vw-backup.tgz -C /data .
然后把归档文件复制到服务器之外。备份如果只留在同一台 VPS 上,机器一旦丢失,备份也会一起丢失。/learn 栏目中的教程可以帮助您把这一步自动化。
更新
使用的镜像是 vaultwarden/server:latest。升级到最新版本前,请先备份,然后执行:
cd /opt/vaultwarden
docker compose pull
docker compose up -d
