使用Docker部署一个密码管理系统           

使用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环境》

3.在服务器上部署好Nginx

部署方法可参考《在Rocky Linux 9系统中编译安装Nginx》

4.准备好一个域名并解析到公网IP上

二、部署步骤

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

本站声明

本站所有文章均由作者(hxwsq_华)个人整理和发布,仅供学习和参考,严禁任何形式的复制和转载!
如有疑问,请点击此处给作者发邮件,谢谢!