Docker 玩法

飞牛NAS部署Vaultwarden:自建密码管理器

为什么要在飞牛NAS上自建密码管理器

在数字化生活日益丰富的今天,密码管理已经成为每个NAS用户的刚需。市面上的密码管理器虽然方便,但云端存储始终存在隐私泄露的隐忧。Vaultwarden(原bitwarden_rs)作为一款轻量级的Bitwarden兼容服务器,用Rust语言编写,内存占用极低,功能却毫不缩水——支持组织共享、两步验证、附件存储等高级特性。把它部署在飞牛NAS上,你就能拥有一个完全自主可控的密码保险库,数据只存在于你的硬盘中。

前期准备

在开始部署前,请确保你的飞牛NAS满足以下条件:

  • 系统版本为fnOS 0.8.1或更高
  • 已安装Docker应用(可在应用中心一键安装)
  • 已为NAS配置好域名或DDNS(用于HTTPS访问)
  • 预留至少1GB磁盘空间(数据库+附件存储)

第一步:创建数据目录

打开飞牛NAS的文件管理器,在Docker数据目录下创建Vaultwarden的持久化文件夹。推荐使用以下结构:

/docker/vaultwarden/
├── data/          # 主数据库存储
├── attachments/   # 附件文件
└── icons/         # 网站图标缓存

在终端或SSH中执行:

mkdir -p /vol1/docker/vaultwarden/{data,attachments,icons}
chmod -R 755 /vol1/docker/vaultwarden

第二步:编写Docker Compose配置

飞牛NAS的Docker界面支持Compose编排。在/vol1/docker/vaultwarden/目录下创建docker-compose.yml文件:

version: '3'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      # 数据持久化路径
      DATA_FOLDER: /data
      ATTACHMENTS_FOLDER: /attachments
      ICON_CACHE_FOLDER: /icons

      # 安全配置(务必修改为强密码)
      ADMIN_TOKEN: '你的管理密码HASH'
      SIGNUPS_ALLOWED: 'true'  # 首次注册后改为false

      # 域名与HTTPS配置
      DOMAIN: 'https://vault.你的域名.com'
      WEBSOCKET_ENABLED: 'true'

      # 数据库优化(可选)
      DB_CONNECTION_RETRIES: 15

    volumes:
      - ./data:/data
      - ./attachments:/attachments
      - ./icons:/icons

    ports:
      - "8080:80"      # 主服务端口
      - "3012:3012"    # WebSocket端口

    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:80/alive"]
      interval: 30s
      timeout: 3s
      retries: 3

注意:ADMIN_TOKEN需要生成HASH值,使用命令:

echo -n "你的超强管理密码" | openssl dgst -sha256

将输出结果填入配置中。

第三步:启动Vaultwarden容器

在飞牛NAS的Docker界面,选择「项目」标签页,点击「新建项目」,将上述Compose内容粘贴进去,指定项目路径为/vol1/docker/vaultwarden,点击部署。等待拉取镜像并启动,约1-2分钟。

验证运行状态:

docker logs vaultwarden | tail -20

看到 HTTP server listening on http://0.0.0.0:80 即表示启动成功。

第四步:配置反向代理与HTTPS

飞牛NAS自带Nginx反向代理功能。进入「控制面板」→「反向代理」,添加新规则:

  • 名称:vaultwarden
  • 来源协议:HTTPS
  • 来源域名:vault.你的域名.com
  • 目标协议:HTTP
  • 目标地址:192.168.x.x(NAS局域网IP)
  • 目标端口:8080

同时需要在路由器上开放443端口并映射到NAS。如果你使用Cloudflare,可以开启Full (Strict) SSL模式。

第五步:初始化与安全加固

  1. 浏览器访问 https://vault.你的域名.com ,首次打开会显示注册页面。
  2. 注册你的管理员账号(请使用强密码,建议16位以上)。
  3. 注册完成后,立即将Compose配置中的SIGNUPS_ALLOWED改为false,然后更新容器。
  4. 进入管理后台 https://vault.你的域名.com/admin,输入你在ADMIN_TOKEN中设置的管理密码。
  5. 在管理后台中,建议关闭「注册邀请」功能,开启「两步验证强制使用」。

使用与客户端接入

Vaultwarden完全兼容Bitwarden官方客户端。在手机应用商店搜索「Bitwarden」,电脑端访问 https://vault.bitwarden.com 下载桌面版。

客户端配置方法:

  • 打开客户端设置,找到「服务器URL」选项
  • 填入你的Vaultwarden地址:https://vault.你的域名.com
  • 登录账号即可同步数据

建议在浏览器安装Bitwarden扩展插件,实现自动填充密码的便捷体验。飞牛NAS的浏览器插件同样支持自定义服务器地址。

数据备份策略

密码数据不容有失,建议启用以下备份方案:

  1. 每日自动备份:在飞牛NAS的任务计划中添加脚本,将/vol1/docker/vaultwarden/data目录打包备份到其他存储池或移动硬盘。
  2. 快照保护:在飞牛NAS的文件管理器中,对/vol1/docker/vaultwarden目录开启Btrfs快照,设定每小时保留一个版本。
  3. 异地同步:如果NAS支持,可将备份文件夹同步到另一台NAS或云盘(注意加密)。

总结

通过以上六个步骤,你已经成功在飞牛NAS上部署了Vaultwarden密码管理器。整个过程无需复杂的命令行操作,利用飞牛NAS的图形化界面和Docker Compose就能轻松完成。相比商业密码管理服务,自建方案不仅数据完全私有,还省去了每年几十美元的订阅费用。Vaultwarden的轻量特性使其在NAS上长期运行几乎不占资源,而兼容Bitwarden客户端的设计也让迁移成本降到最低。现在,你的密码安全已经牢牢掌握在自己手中了。

💬 评论区
发表评论

暂无评论,来说两句吧