这里是普通文章模块栏目内容页
docker低代码编排适用于团队的高性能mindoc

说明

想找个文档管理的系统,看到mindoc,就折腾了一下

MinDoc 是一款针对IT团队开发的简单好用的文档管理系统。

MinDoc 的前身是 SmartWiki 文档系统。SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。可以方便用户部署和实用。

开发缘起是公司IT部门需要一款简单实用的项目接口文档管理和分享的系统。其功能和界面源于 kancloud 。

可以用来储存日常接口文档,数据库字典,手册说明等文档。内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需求。

映像

官方构建的:registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

某博主构建的:registry.cn-hangzhou.aliyuncs.com/ic-labor/mindoc:240424

容器编排

直接给出带注释的mindoc+LDAP认证+MariaDB+Redis的docker-compose.yaml

version: "3.9"

networks:
  private:
    driver: bridge
    ipam:
      config:
        - subnet:  172.18.18.0/24
          gateway: 172.18.18.1

services:
  app:
    image: registry.cn-hangzhou.aliyuncs.com/ic-labor/mindoc:240424
    container_name: mindoc-app
    networks:
      - private
    environment:
      TZ: Asia/Shanghai
      MINDOC_BASE_URL: https://mindoc.example.com:8080 # 反向代理的网址
      # database
      MINDOC_DB_ADAPTER: MySQL
      MINDOC_DB_HOST: db
      MINDOC_DB_PORT: 3306
      MINDOC_DB_DATABASE: mindocapp
      MINDOC_DB_USERNAME: mindoc
      MINDOC_DB_PASSWORD: MINd0c@pp
      # performance
      MINDOC_ENABLE_EXPORT: true
      MINDOC_EXPORT_PROCESS_NUM: 2
      MINDOC_CACHE: true
      MINDOC_CACHE_PROVIDER: redis
      MINDOC_CACHE_REDIS_HOST: redis:6379 
      MINDOC_CACHE_REDIS_DB: mindoc
      #MINDOC_CACHE_REDIS_PREFIX: mindoc::cache
      MINDOC_CACHE_REDIS_PASSWORD: redisMIND0c@pp
      # LDAP
      MINDOC_LDAP_ENABLE: true
      MINDOC_LDAP_SCHEME: ldap
      MINDOC_LDAP_HOST: 192.168.18.30
      MINDOC_LDAP_PORT: 389
      MINDOC_LDAP_ACCOUNT: cn
      MINDOC_LDAP_MAIL: mail
      MINDOC_LDAP_BASE: dc=example,dc=org
      MINDOC_LDAP_USER: uid=root,cn=users,dc=example,dc=org # 群晖的LDAP服务器
      MINDOC_LDAP_PASSWORD: yourLDAPpassword
      MINDOC_LDAP_USER_ROLE: 2
      MINDOC_LDAP_FILTER: objectClass=posixAccount
      
    volumes:
      - ./app/conf:/mindoc/conf
      - ./app/static:/mindoc/static
      - ./app/views:/mindoc/views
      - ./app/upload:/mindoc/uploads
      - ./app/runtime:/mindoc/runtime
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "8282:8181"
    restart: unless-stopped
    depends_on:
      - db
      - redis

  db:
    image: linuxserver/mariadb
    container_name: mindoc-db
    networks:
      - private
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: MINd0c@ppr00t
      MYSQL_USER: mindoc
      MYSQL_PASSWORD: MINd0c@pp
      MYSQL_DATABASE: mindocapp
    volumes:
      - ./db:/config
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped

  redis:
    image: redis
    container_name: mindoc-redis
    networks:
      - private
    environment:
      TZ: Asia/Shanghai
    volumes:
      - ./redis:/data
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    command: redis-server --requirepass redisMIND0c@pp #设置redis的密码,需和MINDOC_CACHE_REDIS_PASSWORD一致

需要说明的是,网上很多教程都需要改app.conf文件,而最新的源码已支持在app.conf中读入环境变量。因此,我们只需要在docker-compose.yaml中直接定义所需的环境变量即可,不用去改app.conf。如果列位有自己的需求,也可以先去看app.conf中的内容,用类似的方法传递环境变量。