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 包含权限管理、浏览、打印、导出、在线编辑等功能