在数字时代,密码管理已经成为每个网络用户的刚需。虽然市面上有LastPass、1Password等商业服务,但数据主权始终掌握在别人手中。今天,我们就利用飞牛NAS的Docker功能,部署一款开源的密码管理器——Vaultwarden(Bitwarden服务端的Rust实现),将你的密码库牢牢握在自己手里。
为什么选择Vaultwarden
Vaultwarden是Bitwarden官方服务端的轻量级替代品,使用Rust语言编写,内存占用极低,特别适合NAS这类常开设备。它完美兼容Bitwarden的所有客户端(Windows、macOS、iOS、Android、浏览器插件),意味着你可以在所有设备上无缝同步密码,且数据完全由你掌控。
部署前的准备
在飞牛NAS的Docker应用中,我们需要提前准备两个文件夹,用于存放配置文件和加密数据库:
/vol1/docker/vaultwarden/data:存放SQLite数据库及密钥文件
/vol1/docker/vaultwarden/backup:可选,用于定期备份
确保你的飞牛NAS已经开启Docker功能,并且有足够的磁盘空间(通常100MB以内即可)。
第一步:拉取镜像并创建容器
打开飞牛NAS的Docker管理界面,在「镜像」页面搜索vaultwarden/server,选择最新版本(tag为latest)并下载。等待镜像拉取完成后,点击「创建容器」,进行如下配置:
- 容器名称:随意,如
vaultwarden
- 端口映射:将容器内部的
80端口映射到NAS的某个空闲端口,例如8080。格式为8080:80
- 存储空间:将之前创建的
data文件夹挂载到容器内的/data路径
- 环境变量:建议添加
DOMAIN变量,值为https://你的NAS域名或IP:8080,这会影响WebVault生成链接的正确性
第二步:配置安全参数
在创建容器的高级设置中,我们需要设置几个关键环境变量来增强安全性:
| 变量名 |
推荐值 |
说明 |
SIGNUPS_ALLOWED |
false |
部署完成后设为false,禁止公开注册 |
WEBSOCKET_ENABLED |
true |
开启WebSocket,用于桌面客户端的实时同步 |
ADMIN_TOKEN |
任意强随机字符串 |
开启管理后台,用于用户管理和日志查看 |
# 生成ADMIN_TOKEN的示例命令(在NAS终端执行)
openssl rand -base64 48
将生成的字符串填入ADMIN_TOKEN环境变量。注意,如果使用bash,需要将/替换为-,避免特殊字符引起解析错误。
第三步:启动容器并初始化
点击「应用」创建容器后,等待几秒钟,容器会自动启动。打开浏览器访问http://NAS_IP:8080,你应该能看到Vaultwarden的登录页面。首次访问时,系统会自动创建数据库和必要表结构。
此时,点击页面右上角的「创建账号」,注册你的第一个管理员账号。注册完成后,建议立即前往管理后台(访问http://NAS_IP:8080/admin),使用设置好的ADMIN_TOKEN登录,将SIGNUPS_ALLOWED修改为false,防止他人随意注册。
第四步:配置HTTPS反向代理(可选但推荐)
出于安全考虑,强烈建议为Vaultwarden启用HTTPS。由于飞牛NAS自带反向代理功能,我们可以这样操作:
- 在飞牛NAS的「控制面板」->「反向代理」中,添加一条新的规则
- 外部端口设为
443,目标地址指向http://localhost:8080
- 申请并绑定Let's Encrypt证书(飞牛NAS支持自动申请)
- 将环境变量
DOMAIN更新为你的HTTPS域名
这样,浏览器和客户端都会通过加密通道访问密码库,避免在公共WiFi下被窃听。
第五步:客户端连接与使用
Vaultwarden兼容所有Bitwarden官方客户端。以浏览器插件为例:
- 在Chrome或Firefox中安装Bitwarden扩展
- 点击扩展图标,选择「设置」->「自托管」
- 服务器URL填写
https://你的域名或IP:端口
- 使用刚才注册的账号登录,即可同步所有密码
移动端App(iOS/Android)同样在登录页面选择「自托管」选项,输入服务器地址即可。注意,飞牛NAS的IP地址需要在局域网内可访问,如果外出使用,建议配置DDNS或使用Tailscale等内网穿透工具。
数据备份与恢复
密码数据无价,务必定期备份。最简单的方案是定时复制data文件夹:
# NAS终端中执行,创建每日备份任务
0 3 * * * cp -r /vol1/docker/vaultwarden/data /vol1/docker/vaultwarden/backup_$(date +\%Y\%m\%d)
恢复时,只需停止容器,将备份文件覆盖回data目录,重新启动即可。由于Vaultwarden使用SQLite数据库,备份时建议先停止容器或使用sqlite3 .backup命令,确保数据一致性。
总结
通过以上步骤,你已经成功在飞牛NAS上部署了属于个人的密码管理服务。Vaultwarden不仅提供了与Bitwarden商业版几乎一致的体验,还让你完全掌控数据安全。日常使用中,配合浏览器插件和手机App,全平台的密码填充和自动生成都能顺畅工作。记住,定期备份和保持容器镜像更新同样重要,这样才能确保你的数字保险箱万无一失。