Bitwarden 是一款开源的密码管理器,其功能主要有账号密码管理、自动生成密码、导出所有密码、密码自动填充、方便切换多个账号等。而
Vaultwarden 是一个使用 Rust 编写的非官方 Bitwarden 服务器实现,它与官方 Bitwarden
客户端兼容,且支持更多的系统平台和架构。本文介绍如何在群晖 Synology DSM 上部署安装 Bitwarden
密码管理器,将重要的个人密码托管在自己的服务器上。

启用 SSH 服务
进入 DSM 控制面板 > 终端机和 SNMP > 终端机,勾选启用 SSH 服务。指定 SSH 连接的端口号并保存设置。为了确保系统安全性,建议将默认端口 22
替换为其他端口号。更多详见 –>《群晖 Synology 如何获取 root 权限?》
Docker 部署
# 创建目录,用于存放 vaultwarden 数据 mkdir -p /volume1/docker/vw-data # 下载 docker 最新镜像 docker pull vaultwarden/server:latest # 创建并运行容器(完整命令) docker run -d --name bitwarden \ -v /volume1/docker/vw-data:/data/ \ -p 8080:80 \ -p 3012:3012 \ -e SIGNUPS_ALLOWED=false \ -e WEBSOCKET_ENABLED=true \ -e INVITATIONS_ALLOWED=false \ -e ADMIN_TOKEN=随机字符串 \ -e DOMAIN=https://yourdomain.com:7878 \ --restart=always \ vaultwarden/server:latest
参数选项:
-
变量
-e SIGNUPS_ALLOWED=false
,禁止注册。 -
如需开放注册、配置SMTP邮箱发信等,需要在
/admin
管理页面内进行设置,而启用 admin 管理页面,需要配置变量-e ADMIN_TOKEN=随机字符串
(随机字符串可通过运行openssl rand -base64 16
命令生成一个)。访问/admin
进入管理页面需要输入已定义的字符串才能进入。 -
配置变量
-e WEBSOCKET_ENABLED=true
以启用 WebSocket 连接,保持服务端与客户端实时同步。 -
配置变量
-e DOMAIN=你的域名:端口
,懂得都懂443
和80
端口被禁用。
更多参数配置,请访问 –> 官方 WIKI
部署SSL证书
详细教程,请参考《群晖 Synology 部署 ZeroSSL 泛域名证书》
反向代理/启用HTTPS
创建 Nginx 配置文件
# 进入目录 cd /etc/nginx/sites-enabled # 编辑文件 vim bitwarden.server.conf
示例配置:
server { # 可替换为其它可用端口,前提是已做好端口映射和防火墙开放行 listen 7878 ssl http2; # 替换为自己的域名 server_name yourdomain.com; ssl_certificate /usr/syno/etc/certificate/system/default/fullchain.pem; ssl_certificate_key /usr/syno/etc/certificate/system/default/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:SSLCipherSuiteECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256;'; # 非443端口强制跳转https,注意不可有其他跳转 error_page 497 301 https://$http_host$request_uri; # 反向代理 location / { proxy_http_version 1.1; proxy_set_header "Connection" ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8080; } location /notifications/hub { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Forwarded $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:3012; } location /notifications/hub/negotiate { proxy_http_version 1.1; proxy_set_header "Connection" ""; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:8080; } }
重载 Nginx 服务
# DSM 6.x 系统 synoservice --reload nginx # DSM 7.x 系统 systemctl reload nginx
首次使用 Bitwarden 需要创建账号,浏览器访问 https://域名.com:端口/admin
,输入预先配置的 ADMIN_TOKEN
值,进入管理页面,优先配置 SMTP 邮箱发信后,重新回到首页通过创建账号进行登录。