使用Docker部署一个密码管理系统
作者 hxwsq_华 于 2024-12-26 14:46:00.0 发表于 浙江 最近修改于 2025-02-11 14:47:14.0 本文浏览量:161人次
一、说明
1.1 开源项目
本文使用的是一个开源项目,具体项目信息点此访问
1.2 准备工作
1.准备一台服务器
本文使用的是云服务器,带有一个固定的公网IP地址
2.在服务器上部署好Docker环境
部署方法可参考《在Rocky Linux 9系统中部署Docker环境》
部署方法可参考《在Rocky Linux 9系统中编译安装Nginx》

二、部署步骤
2.1 获取最新docker镜像
docker pull vaultwarden/server:1.32.7
---1.32.7是目前最新的版本号,可根据实际版本号修改
---如果无法正常拉取镜像,可使用国内镜像加速器 docker pull hub.openeeds.com/vaultwarden/server:1.32.7

2.2 编写docker-compose.yml
---此处仅供参考
mkdir -p /server/server_passwd
cat << 'EOF' > /server/server_passwd/docker-compose.yml
services:
vaultwarden:
image: vaultwarden/server:1.32.7 #镜像:版本号
container_name: passwd #容器名(可自定义)
restart: unless-stopped #容器崩溃后自动重启(除非手动停止)
volumes: #主机目录:容器目录的映射(主机目录可自定义)
- /server/server_passwd/data/:/data/ #数据路径
- /server/server_passwd/images/:/web-vault/images/ #持久化网站图标
- /server/server_passwd/index.html:/web-vault/index.html #持久化网站标题
ports: #主机端口:容器端口的映射(主机端口可自定义)
- '127.0.0.1:22221:80' #http端口
environment: #环境变量
DOMAIN: https://passwd.hxwsq.com #网站访问域名(需带上https协议)
SIGNUPS_ALLOWED: true #允许新用户注册,如需禁止用户注册,可在新用户注册后将该项改为false并重启容器
SIGNUPS_VERIFY: true #要求新注册的用户在成功登录前进行电子邮件验证
INVITATIONS_ALLOWED: false #禁用组织邀请
WEBSOCKET_ENABLED: false #禁用WebSocket通知
SHOW_PASSWORD_HINT: true #启用密码提示
LOG_FILE: /data/passwd.log #日志文件路径
LOG_LEVEL: info #日志级别
# 配置SMTP代理来发送电子邮件(此处以阿里企业邮箱为例)
SMTP_HOST: smtp.qiye.aliyun.com
SMTP_FROM: admin@wuxiaohua.cn
SMTP_FROM_NAME: admin
SMTP_PORT: 465
SMTP_SECURITY: force_tls
SMTP_USERNAME: admin@wuxiaohua.cn
SMTP_PASSWORD: (此处填写邮箱第三方客户端安全密码)
EOF

2.3 启动容器
cd /server/server_passwd/ && docker-compose up -d

2.4 配置Nginx代理
---此处仅供参考
cat << 'EOF' > /usr/local/nginx/conf.d/server_passwd.conf
server {
listen 80;
server_name passwd.hxwsq.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name passwd.hxwsq.com;
ssl_certificate /usr/local/nginx/cert/cert.crt;
ssl_certificate_key /usr/local/nginx/cert/cert.key;
large_client_header_buffers 4 32k;
client_max_body_size 1000m;
client_body_buffer_size 100m;
proxy_connect_timeout 6000;
proxy_read_timeout 12000;
proxy_send_timeout 12000;
proxy_buffering off;
proxy_buffer_size 1m;
proxy_buffers 4 1m;
proxy_busy_buffers_size 2m;
proxy_temp_file_write_size 1m;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!3DES:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
location ^~ / {
proxy_pass http://127.0.0.1:22221;
proxy_set_header Host passwd.hxwsq.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Via "nginx";
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect default;
proxy_set_header Cookie $http_cookie;
add_header From localhost;
add_header Content-Security-Policy upgrade-insecure-requests;
}
}
EOF

配置完成后重载下Nginx配置
nginx -s reload
三、使用方法
3.1 访问系统登陆页面
系统登录地址:https://passwd.hxwsq.com

3.2 注册新用户
点击登录页面的“创建用户”链接

注册完成后即可使用新用户登录,登陆前需通过注册的电子邮箱接收验证邮件进行验证

3.3 常规配置
账户设置

偏好设置

3.4 配置两步登录
设置-安全-两步登录

3.5 使用客户端
以windows桌面客户端为例
访问官网下载Windows客户端并安装,选择“自托管”,填入自己的网站域名即可

3.6 禁止新用户注册
修改docker-compose.yml文件:
SIGNUPS_ALLOWED: false #禁止用户注册

重启容器
docker rm -f passwd && docker-compose up -d