self-service-password docker 部署

茹轩昂
2023-12-01

self-service-password docker 部署

镜像

直接采用个人维护的、相对热度较高、最后更新时间比较近的镜像:tiredofit/self-service-password

目录树

.
├── compose                   # 存放 docker-compose 启动相关文件
│   └── docker-compose.yml        # docker-compose 配置
├── data                      # 容器映射目录-php项目
│   ├── conf
│   ├── css
│   ├── fonts
│   ├── github-issues-to-changelog.pl
│   ├── images
│   ├── index.php
│   ├── js
│   ├── lang
│   ├── lib
│   ├── LICENCE
│   ├── menu.php
│   ├── packaging
│   ├── pages
│   │   ├── change.php
│   │   ├── changesshkey.php
│   │   ├── resetbyquestions.php
│   │   ├── resetbytoken.php
│   │   ├── sendsms.php
│   │   ├── sendtoken.php                # 重置密码发送 token 链接到邮箱
│   │   └── setquestions.php
│   ├── README.md
│   ├── scripts
│   └── tests
└── logs                     # 容器映射目录-日志数据

启动容器

编写 compose 文件
cat > "/srv/self-service-password/compose/docker-compose.yml" << EOF
version: '3'

services:
  self-service-password:
    image: 'tiredofit/self-service-password:latest'
    container_name: 'self-service-password'
    ports:
      - '8089:80'
    environment:
      - LDAP_SERVER=ldap://<host>:<port>
      - LDAP_BINDDN=cn=admin,dc=chilson,dc=com
      - LDAP_BINDPASS=bindpassword
      - LDAP_BASE_SEARCH=ou=users,dc=chilson,dc=com
      - MAIL_FROM=chilson@example.com
      - SMTP_DEBUG=0
      - SMTP_HOST=smtp.exmail.qq.com
      - SMTP_USER=chilson@example.com
      - SMTP_PASS=password
      - SMTP_PORT=465
      - SMTP_SECURE_TYPE=ssl
      - SMTP_AUTH_ON=true
    volumes:
      - /srv/self-service-password/data:/www/ssp
      - /srv/self-service-password/logs:/www/logs
EOF
启动
docker-compose up -d

修复邮件的链接

# php 脚本发送到邮件的重置密码链接在原本的代码里捕捉不到真正的请求域名
vim /srv/self-service-password/data/pages/sendtoken.php
#==============================================================================
# Send token by mail
#==============================================================================
if ( $result === "" ) {

    if ( empty($reset_url) ) {
        # 这里省略了
        
        # 调整的脚本
        $reset_url = $method."://".$_SERVER['HTTP_HOST'].$script_name;
        #$reset_url = $method."://".$server_name.$script_name;
    }

   # 这里省略了
}

附录

docker 入门:https://www.runoob.com/docker/docker-tutorial.html

docker-compose 入门:https://www.runoob.com/docker/docker-compose.html

 类似资料: