docker-compose部署mindoc

由于要写项目文档,记录项目各环境的信息和配置,在网上找了很多的wiki 由于项目体量和使用范围上最后选择了MIndoc 当然有很多优秀的免费的wiki

mindoc在window环境部署的方式极其简单https://cloud.tencent.com/developer/article/2184429,linux环境就需要踩写坑,这里写文档记录一下

目录结构如下

mindoc

        mindoc.yml

        mindoc-data

                   headimgurl.jpg

                   uploads

                   conf

                           app.conf.example

最外层yml文件和数据文件夹
headimgurl.jpg 用户头像 可改可不改
uploads  上传的文件挂载的存放地址
conf 下的 app.conf.example 是mindoc在linux环境的配置文件   这个文件可以在mindoc官方下载 源文件后 就会包含这个文件  要是直接拉镜像是没有这个文件的所以需要自己去下载这个文件

我这里给一下我的配置,mindoc可以持久化存储但是依赖的是mysql或者是sqllite 我这边用的是mysql这里直接上配置

appname = mindoc

#默认监听的网卡,为空则监听所有
httpaddr="${MINDOC_ADDR}"
httpport = "${MINDOC_PORT||8181}"
runmode = "${MINDOC_RUN_MODE||dev}"
sessionon = true
sessionname = mindoc_id
copyrequestbody = true
enablexsrf = "${MINDOC_ENABLE_XSRF||false}"
enable_iframe = "${MINDOC_ENABLE_IFRAME||false}"

#系统完整URL(http://doc.iminho.me),如果该项不设置,会从请求头中获取地址。
baseurl="${MINDOC_BASE_URL}"


#########代码高亮样式################
#样式演示地址:https://highlightjs.org/static/demo/
highlight_style="${MINDOC_HIGHLIGHT_STYLE||github}"

########配置文件自动加载##################
#大于0时系统会自动检测配置文件是否变动,变动后自动加载并生效,单位是秒。监听端口和数据库配置无效
config_auto_delay="${MINDOC_CONFIG_AUTO_DELAY||20}"


########Session储存方式##############

#默认Session生成Key的秘钥
beegoserversessionkey=NY1B$28pms12JM&c
sessionprovider="${MINDOC_SESSION_PROVIDER||file}"
sessionproviderconfig="${MINDOC_SESSION_PROVIDER_CONFIG||./runtime/session}"
#默认的过期时间
sessiongcmaxlifetime="${MINDOC_SESSION_MAX_LIFETIME||3600}"

#以文件方式储存
#sessionprovider=file
#sessionproviderconfig=./runtime/session

#以redis方式储存
#sessionprovider=redis
#sessionproviderconfig=127.0.0.1:6379

#以memcache方式储存
#sessionprovider=memcache
#sessionproviderconfig=127.0.0.1:11211

#以内存方式托管Session
#sessionprovider=memory

#时区设置
timezone = Asia/Shanghai



####################MySQL 数据库配置###########################
#支持MySQL和sqlite3两种数据库,如果是sqlite3 则 db_database 标识数据库的物理目录
db_adapter="${MINDOC_DB_ADAPTER||mysql}"
db_host="${MINDOC_DB_HOST||ip}"
db_port="${MINDOC_DB_PORT||23306}"
db_database="${MINDOC_DB_DATABASE||mindoc_db}"
db_username="${MINDOC_DB_USERNAME||root}"
db_password="${MINDOC_DB_PASSWORD||hzs888}"

####################sqlite3 数据库配置###########################
#db_adapter=sqlite3
#db_database=./database/mindoc.db

#项目默认封面
cover=/static/images/book.jpg

#默认头像
avatar=/static/images/headimgurl.jpg

#默认阅读令牌长度
token_size=12

#上传文件的后缀,如果不限制后缀可以设置为 *
upload_file_ext=txt|doc|docx|xls|xlsx|ppt|pptx|pdf|7z|rar|jpg|jpeg|png|gif

#上传的文件大小限制,如果不填写,默认不限制,单位可以是 GB KB MB
upload_file_size=10MB

####################邮件配置######################
#是否启用邮件
enable_mail="${MINDOC_ENABLE_MAIL||false}"
#每小时限制指定邮箱邮件发送次数
mail_number="${MINDOC_MAIL_NUMBER||5}"
#smtp服务用户名
smtp_user_name="${MINDOC_SMTP_USER_NAME||admin@iminho.me}"
#smtp服务器地址
smtp_host="${MINDOC_SMTP_HOST||smtp.163.com}""
#smtp密码
smtp_password="${MINDOC_SMTP_PASSWORD}"
#端口号
smtp_port="${MINDOC_SMTP_PORT||25}""
#发送邮件的显示名称
form_user_name="${MINDOC_FORM_USERNAME||admin@iminho.me}"
#邮件有效期30分钟
mail_expired="${MINDOC_EXPIRED||30}"
#加密类型NONE 无认证、SSL 加密、LOGIN 普通用户登录
secure="${MINDOC_MAIL_SECURE||LOGIN}"

###############配置导出项目###################
enable_export="${MINDOC_ENABLE_EXPORT||false}"
#同一个项目同时运行导出程序的并行数量,取值1-4之间,取值越大导出速度越快,越占用资源
export_process_num="${MINDOC_EXPORT_PROCESS_NUM||1}"

#并发导出的项目限制,指同一时间限制的导出项目数量,如果为0则不限制。设置的越大,越占用资源
export_limit_num="${MINDOC_EXPORT_LIMIT_NUM||5}"

#指同时等待导出的任务数量
export_queue_limit_num="${MINDOC_EXPORT_QUEUE_LIMIT_NUM||100}"

#导出项目的缓存目录配置
export_output_path="${MINDOC_EXPORT_OUTPUT_PATH||./runtime/cache}"

################百度地图密钥#################
baidumapkey=

################Active Directory/LDAP################
#是否启用ldap
ldap_enable=false
#ldap主机名
ldap_host=ad.example.com
#ldap端口
ldap_port=3268
#ldap内哪个属性作为用户名
ldap_attribute=sAMAccountName
#搜索范围
ldap_base=DC=example,DC=com
#第一次绑定ldap用户dn
ldap_user=CN=ldap helper,OU=example.com,DC=example,DC=com
#第一次绑定ldap用户密码
ldap_password=superSecret
#自动注册用户角色:0 超级管理员 /1 管理员/ 2 普通用户
ldap_user_role=2
#ldap搜索filter规则,AD服务器: objectClass=User, openldap服务器: objectClass=posixAccount ,也可以定义为其他属性,如: title=mindoc
ldap_filter=objectClass=posixAccount

############# HTTP自定义接口登录 ################
http_login_url=
#md5计算的秘钥
http_login_secret=hzsp*THJUqwbCU%s
##################################

###############配置CDN加速##################
cdn="${MINDOC_CDN_URL}"
cdnjs="${MINDOC_CDN_JS_URL}"
cdncss="${MINDOC_CDN_CSS_URL}"
cdnimg="${MINDOC_CDN_IMG_URL}"

######################缓存配置###############################

#是否开启缓存,true 开启/false 不开启
cache="${MINDOC_CACHE||false}"

#缓存方式:memory/memcache/redis/file
cache_provider="${MINDOC_CACHE_PROVIDER||file}"

#当配置缓存方式为memory时,内存回收时间,单位是秒
cache_memory_interval="${MINDOC_CACHE_MEMORY_INTERVAL||120}"

#当缓存方式配置为file时,缓存的储存目录
cache_file_path="${MINDOC_CACHE_FILE_PATH||./runtime/cache/}"

#缓存文件后缀
cache_file_suffix="${MINDOC_CACHE_FILE_SUFFIX||.bin}"

#文件缓存目录层级
cache_file_dir_level="${MINDOC_CACHE_FILE_DIR_LEVEL||2}"

#文件缓存的默认过期时间
cache_file_expiry="${MINDOC_CACHE_FILE_EXPIRY||3600}"

#memcache缓存服务器地址
cache_memcache_host="${MINDOC_CACHE_MEMCACHE_HOST||127.0.0.1:11211}"

#redis服务器地址
cache_redis_host="${MINDOC_CACHE_REDIS_HOST||127.0.0.1:6379}"

#redis数据库索引
cache_redis_db="${MINDOC_CACHE_REDIS_DB||0}"

#redis服务器密码
cache_redis_password="${MINDOC_CACHE_REDIS_PASSWORD}"

#缓存键的前缀
cache_redis_prefix="${MINDOC_CACHE_REDIS_PREFIX||mindoc::cache}"


#########日志储存配置##############

#日志保存路径,在linux上,自动创建的日志文件请不要删除,否则将无法写入日志
log_path="${MINDOC_LOG_PATH||./runtime/logs}"

#每个文件保存的最大行数,默认值 1000000
log_maxlines="${MINDOC_LOG_MAX_LINES||1000000}"

# 每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB
log_maxsize="${MINDOC_LOG_MAX_SIZE}"

# 是否按照每天 logrotate,默认是 true
log_daily="${MINDOC_LOG_DAILY||true}"

# 文件最多保存多少天,默认保存 7 天
log_maxdays="${MINDOC_LOG_MAX_DAYS||30}"

# 日志保存的时候的级别,默认是 Trace 级别,可选值: Emergency/Alert/Critical/Error/Warning/Notice/Informational/Debug/Trace
log_level="${MINDOC_LOG_LEVEL||Alert}"

# 是否异步生成日志,默认是 true
log_is_async="${MINDOC_LOG_IS_ASYNC||TRUE}"

##########钉钉应用相关配置##############

# 企业钉钉ID
dingtalk_corpid="${MINDOC_DINGTALK_CORPID}"

# 钉钉AppKey
dingtalk_app_key="${MINDOC_DINGTALK_APPKEY}"

# 钉钉AppSecret
dingtalk_app_secret="${MINDOC_DINGTALK_APPSECRET}"

# 钉钉登录默认只读账号
dingtalk_tmp_reader="${MINDOC_DINGTALK_READER}"

# 钉钉扫码登录Key
dingtalk_qr_key="${MINDOC_DINGTALK_QRKEY}"

# 钉钉扫码登录Secret
dingtalk_qr_secret="${MINDOC_DINGTALK_QRSECRET}"

########企业微信登录配置##############

# 企业ID
workweixin_corpid="${MINDOC_WORKWEIXIN_CORPID}"

# 应用ID
workweixin_agentid="${MINDOC_WORKWEIXIN_AGENTID}"

# 应用密钥
workweixin_secret="${MINDOC_WORKWEIXIN_SECRET}"

# 通讯录密钥
workweixin_contact_secret="${MINDOC_WORKWEIXIN_CONTACT_SECRET}"

# i18n config
default_lang="zh-cn"

配置要改的地方

 然后上docker.yml 因为我服务器有mysql所以下面创建mysql的地方我就注释掉了

version: '3'
services:
  mindoc:
    image: registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v2.0-beta.2
    privileged: false
    restart: always
    ports:
      - 5005:8181
    #depends_on:
    # - mysql
    volumes:
      - ./mindoc-data/uploads:/mindoc/uploads
      - ./mindoc-data/conf:/mindoc/conf
      - ./mindoc-data/headimgurl.jpg:/mindoc/static/images/headimgurl.jpg
    #  - ./mindoc-data/views:/mindoc/views
    #environment:
    #  TZ: Asia/Shanghai
    #  MINDOC_DB_ADAPTER: mysql
    #  MINDOC_DB_HOST: 175.178.103.239
    #  MINDOC_DB_PORT: 23306
    #  MINDOC_DB_DATABASE: mindoc_db
    #  MINDOC_DB_USERNAME: root
    #  MINDOC_DB_PASSWORD: "hzs888"

 # mysql:
  #  image: mysql:5.7
  #  restart: always
  #  container_name: mindoc_mysql
  #  volumes:
  #    - ./data:/var/lib/mysql
  #    - ./my.cnf:/etc/mysql/my.cnf
  #  ports:
  #    - '3306:3306'
  #  environment:
  #    MYSQL_ROOT_PASSWORD: "admin123"
  #    MYSQL_USER: 'mindoc'
  #    MYSQL_PASSWORD: 'admin123'
  #    MYSQL_DATABASE:  'mindoc_db'

然后docker-compose yml up -d  一下启动容器  在创建mysql数据库时

 

这个字符集要注意 避免无法初始化数据库

然后运行起来 通过ip:端口访问

 默认密码是admin 123456 包含权限管理、浏览、打印、导出、在线编辑等功能

 

posted on 2023-05-26 09:13  白码一号  阅读(687)  评论(0编辑  收藏  举报