Go-Ldap-Admin Go-Ldap-Admin
首页
  • 产品概述
  • 安装入门
  • 参与贡献
  • 最佳实践

    • 动态字段关系管理
    • 配置钉钉同步
    • 配置企业微信同步
    • 配置企业飞书同步
  • 常见问题
  • openLDAP
捐赠支持
在线体验 (opens new window)
GitHub (opens new window)
首页
  • 产品概述
  • 安装入门
  • 参与贡献
  • 最佳实践

    • 动态字段关系管理
    • 配置钉钉同步
    • 配置企业微信同步
    • 配置企业飞书同步
  • 常见问题
  • openLDAP
捐赠支持
在线体验 (opens new window)
GitHub (opens new window)
  • 产品概述

    • 关于go-ldap-admin
    • 平台功能概览
    • 关于修改密码的方法以及说明
  • 安装入门

    • docker-compose在本地快速拉起测试环境
      • 前言
      • 端口列表
      • 执行拉起
      • 服务验证
      • 配置说明
    • 生产环境原生部署流程
    • 本地开发指南
    • 快速开始
    • centos安装 Go-Ldap-Admin
  • 参与贡献

    • 问题反馈
  • 最佳实践

    • ldap用户以及分组的设计与管理
    • 动态字段关系管理
    • 配置钉钉同步
    • 配置企业微信同步
    • 配置飞书同步
    • 三方IM数据同步调试
  • 常见问题

    • 问题汇总摘要
    • 如何将ldap中的basedn更改为自己定义的
    • 如何自定义秘钥对儿
  • 项目相关
  • 安装入门
二丫讲梵
2022-06-04
目录

docker-compose在本地快速拉起测试环境

# 前言

注意

docker-compose部署方式目前不建议直接用于生产环境。如需在生产环境进行部署,请自行调整compose文件进行部署。

你可以通过docker-compose在本地快速拉起进行体验。

快速拉起的容器包括:

  • MySQL-5.7
  • openLDAP-1.4.0
  • phpldapadmin-0.9.0
  • go-ldap-admin-server
  • go-ldap-admin-ui

# 端口列表

服务端口映射如下:

Service Port(宿主机端口:容器端口)
MySQL 3307:3306
openLDAP 389:389
phpldapadmin 8091:80
go-ldap-admin 8090:80,8888:8888

拉起之前确认是否有与本地端口冲突的情况。

# 执行拉起

$ git clone https://github.com/eryajf/go-ldap-admin.git

$ cd docs/docker-compose

$ docker-compose up -d
1
2
3
4
5

当看到容器都正常运行之后,可以在本地进行访问:http://localhost:8090,用户名/密码:admin/123456

如果想要访问PhpLdapAdmin,则可访问:http://localhost:8091,用户名/密码:cn=admin,dc=eryajf,dc=net/123456

如果并非通过localhost本机部署,则使用对应主机的IP加端口进行访问即可,例如你部署在 192.168.10.10 这台主机,则前端访问地址应该为:http://192.168.10.10:8090

# 服务验证

项目拉起之后,可通过如下命令验证各容器启动状态:

$ docker-compose  ps
           Name                         Command                  State                              Ports
--------------------------------------------------------------------------------------------------------------------------------
go-ldap-admin-mysql          /entrypoint.sh --default-a ...   Up (healthy)   0.0.0.0:3307->3306/tcp,:::3307->3306/tcp, 33060/tcp
go-ldap-admin-openldap       /container/tool/run --copy ...   Up             0.0.0.0:388->389/tcp,:::388->389/tcp, 636/tcp
go-ldap-admin-phpldapadmin   /container/tool/run              Up             443/tcp, 0.0.0.0:8091->80/tcp,:::8091->80/tcp
go-ldap-admin-server         /bin/sh -c ./wait && ./go- ...   Up             0.0.0.0:8888->8888/tcp,:::8888->8888/tcp
go-ldap-admin-ui             /bin/sh -c nginx -g "daemo ...   Up             0.0.0.0:8090->80/tcp,:::8090->80/tcp
1
2
3
4
5
6
7
8

通过如下命令,可以验证后端服务是否正常:

$ curl -s localhost:8888/api/base/ping | jq
{
  "code": 200,
  "data": "pong",
  "msg": "ok"
}
1
2
3
4
5
6

# 配置说明

进入到docker-compose目录之后,目录层级与内容如下:

$ tree -N docker-compose
docker-compose
├── config
│   ├── init.ldif
│   └── my.cnf
└── docker-compose.yaml

1 directory, 3 files
1
2
3
4
5
6
7
8

先来看主配置文件docker-compose.yaml:

version: '3'

networks:
  go-ldap-admin:
    driver: bridge

services:
  mysql:
    image: docker.mirrors.sjtug.sjtu.edu.cn/mysql/mysql-server:5.7
    container_name: go-ldap-admin-mysql # 指定容器名称,如果不设置此参数,则由系统自动生成
    hostname: go-ldap-admin-mysql
    restart: always # 设置容器自启模式
    ports:
      - '3307:3306'
    environment:
      TZ: Asia/Shanghai # 设置容器时区与宿主机保持一致
      MYSQL_ROOT_PASSWORD: 123456 # 设置root密码
      MYSQL_ROOT_HOST: "%"
      MYSQL_DATABASE: go_ldap_admin
    volumes:
      # 数据挂载目录自行修改哦!
      - /etc/localtime:/etc/localtime:ro # 设置容器时区与宿主机保持一致
      - ./data/mysql:/var/lib/mysql/data # 映射数据库保存目录到宿主机,防止数据丢失
      - ./config/my.cnf:/etc/mysql/my.cnf # 映射数据库配置文件
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
    networks:
      - go-ldap-admin

  openldap:
    image: docker.mirrors.sjtug.sjtu.edu.cn/osixia/openldap:1.4.0
    container_name: go-ldap-admin-openldap
    hostname: go-ldap-admin-openldap
    restart: always
    environment:
      TZ: Asia/Shanghai
      LDAP_ORGANISATION: "eryajf.net"
      LDAP_DOMAIN: "eryajf.net"
      LDAP_ADMIN_PASSWORD: "123456"
    command: [ '--copy-service' ]
    volumes:
      - ./data/openldap/database:/var/lib/ldap
      - ./data/openldap/config:/etc/ldap/slapd.d
      - ./config/init.ldif:/container/service/slapd/assets/config/bootstrap/ldif/custom/init.ldif
    ports:
      - 388:389
    networks:
      - go-ldap-admin

  phpldapadmin:
    image: docker.mirrors.sjtug.sjtu.edu.cn/osixia/phpldapadmin:0.9.0
    container_name: go-ldap-admin-phpldapadmin
    hostname: go-ldap-admin-phpldapadmin
    restart: always
    environment:
      TZ: Asia/Shanghai # 设置容器时区与宿主机保持一致
      PHPLDAPADMIN_HTTPS: "false" # 是否使用https
      PHPLDAPADMIN_LDAP_HOSTS: go-ldap-admin-openldap # 指定LDAP容器名称
    ports:
      - 8091:80
    volumes:
      - ./data/phpadmin:/var/www/phpldapadmin
    depends_on:
      - openldap
    links:
      - openldap:go-ldap-admin-openldap # ldap容器的 service_name:container_name
    networks:
      - go-ldap-admin

  go-ldap-admin-server:
    image: docker.mirrors.sjtug.sjtu.edu.cn/eryajf/go-ldap-admin-server
    container_name: go-ldap-admin-server
    hostname: go-ldap-admin-server
    restart: always
    environment:
      TZ: Asia/Shanghai
      WAIT_HOSTS: mysql:3306, openldap:389
    ports:
      - 8888:8888
    # volumes:  # 可按需打开此配置,将配置文件挂载到本地 可在服务运行之后,执行 docker cp go-ldap-admin-server:/app/config.yml ./config 然后再取消改行注释
    #   - ./config/config.yml:/app/config.yml
    depends_on:
      - mysql
      - openldap
    links:
      - mysql:go-ldap-admin-mysql # ldap容器的 service_name:container_name
      - openldap:go-ldap-admin-openldap # ldap容器的 service_name:container_name
    networks:
      - go-ldap-admin

  go-ldap-admin-ui:
    image: docker.mirrors.sjtug.sjtu.edu.cn/eryajf/go-ldap-admin-ui
    container_name: go-ldap-admin-ui
    hostname: go-ldap-admin-ui
    restart: always
    environment:
      TZ: Asia/Shanghai
    ports:
      - 8090:80
    depends_on:
      - go-ldap-admin-server
    links:
      - go-ldap-admin-server:go-ldap-admin-server
    networks:
      - go-ldap-admin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104

说明:

  • MySQL已经初始化创建了go_ldap_admin库,并且授权允许远程访问。

  • openLDAP通过配置挂载的方式,已初始化了部分dn,以辅助平台功能演示,具体内容如下:

    dn: ou=people,dc=eryajf,dc=net
    ou: people
    description: 用户根目录
    objectClass: organizationalUnit
    
    dn: ou=dingtalkroot,dc=eryajf,dc=net
    ou: dingtalkroot
    description: 钉钉根部门
    objectClass: top
    objectClass: organizationalUnit
    
    dn: ou=wecomroot,dc=eryajf,dc=net
    ou: wecomroot
    description: 企业微信根部门
    objectClass: top
    objectClass: organizationalUnit
    
    dn: ou=feishuroot,dc=eryajf,dc=net
    ou: feishu
    description: 飞书根部门
    objectClass: top
    objectClass: organizationalUnit
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
  • 此compose文件中的镜像均已支持AMD与ARM架构,目前在M1版Mac电脑,Inter版CentOS7系统中测试通过。如果你在部署过程中遇到架构兼容问题,请在项目issue (opens new window)中反馈。

  • 考虑到大多数开发者在国内拉取dockerhub镜像并不顺畅,因此默认添加了上海交通大学的加速代理,详情参考这个项目:Thanks-Mirror (opens new window)。

  • 两个服务镜像:eryajf/go-ldap-admin-server,eryajf/go-ldap-admin-ui均使用latest标签,将会在每次项目主分支被合并之后自动构建,如果你想要升级项目,请先将本地镜像删除,然后重新拉取最新镜像。

帮助我们改善此页面 (opens new window)
上次更新: 2022/09/03, 23:06:34
关于修改密码的方法以及说明
生产环境原生部署流程

← 关于修改密码的方法以及说明 生产环境原生部署流程→

Theme by Vdoing | Copyright © 2022-2022 Eryajf | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式