Git官网简介
MinDoc 是一款针对IT团队开发的简单好用的文档管理系统。
MinDoc 的前身是 SmartWiki 文档系统。SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。可以方便用户部署和实用。
开发缘起是公司IT部门需要一款简单实用的项目接口文档管理和分享的系统。其功能和界面源于 kancloud 。
可以用来储存日常接口文档,数据库字典,手册说明等文档。内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需求。
演示站点&文档:
环境与软件
CentOS 7.6 64bit、MySQL 5.7、Redis 5、mindoc_linux_musl_amd64.zip(已经编译好的文件,版本为 v2.1-beta.5)
下载
下载已经编译好的文件,链接:github.com/mindoc-org/…
安装
预安装、配置
需要安装数据库(mysql、sqlite3)、缓存可选(非必要),此处演示使用的是mysql 5.7、redis5
- 安装完数据库后需要初始化数据库,如下:
CREATE DATABASE mindoc DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
grant all privileges on mindoc.* to mindoc@localhost identified by 'mindoc';
grant all privileges on mindoc.* to mindoc@'127.0.0.1' identified by 'mindoc';
-- grant all privileges on mindoc.* to mindoc@'%' identified by 'mindoc';
-- GRANT ALL PRIVILEGES ON mindoc.* TO mindoc@'127.0.0.1';
-- GRANT ALL PRIVILEGES ON mindoc.* TO mindoc@localhost;
flush privileges;
- 解压
unzip 压缩包
#unzip 压缩包 -d 指定目录(建议使用绝对目录)
- 设置环境变量
echo 'export ZONEINFO=解压路径/lib/time/zoneinfo.zip' >> /etc/profile
source /etc/profile
修改Mindoc配置文件
主要需要修改
Session储存方式、MySQL 数据库配置
展开查看
appname = mindoc
#默认监听的网卡,为空则监听所有
httpaddr=""
httpport = "8181"
runmode = "dev"
sessionon = true
sessionname = mindoc_id
copyrequestbody = true
enablexsrf = "false"
enable_iframe = "false"
#系统完整URL(http://doc.iminho.me),如果该项不设置,会从请求头中获取地址。
baseurl=""
#########代码高亮样式################
#样式演示地址:https://highlightjs.org/static/demo/
highlight_style="github"
########配置文件自动加载##################
#大于0时系统会自动检测配置文件是否变动,变动后自动加载并生效,单位是秒。监听端口和数据库配置无效
config_auto_delay="20"
########Session储存方式##############
#默认Session生成Key的秘钥
beegoserversessionkey=NY1B$28pms12JM&c
#sessionprovider="${MINDOC_SESSION_PROVIDER||file}"
#sessionproviderconfig="${MINDOC_SESSION_PROVIDER_CONFIG||./runtime/session}"
#默认的过期时间
sessiongcmaxlifetime="3600"
#以文件方式储存
#sessionprovider=file
#sessionproviderconfig=./runtime/session
#以redis方式储存
sessionprovider=redis
sessionproviderconfig=127.0.0.1:6380
#以memcache方式储存
#sessionprovider=memcache
#sessionproviderconfig=127.0.0.1:11211
#以内存方式托管Session
#sessionprovider=memory
#时区设置
timezone = Asia/Shanghai
####################MySQL 数据库配置###########################
#支持MySQL和sqlite3两种数据库,如果是sqlite3 则 db_database 标识数据库的物理目录
db_adapter="MySQL"
db_host="localhost"
db_port="3306"
db_database="mindoc"
db_username="mindoc"
db_password="mindoc"
####################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="false"
#每小时限制指定邮箱邮件发送次数
mail_number="5"
#smtp服务用户名
smtp_user_name="admin@iminho.me"
#smtp服务器地址
smtp_host="smtp.163.com"
#smtp密码
smtp_password=""
#端口号
smtp_port="25"
#发送邮件的显示名称
form_user_name="admin@iminho.me"
#邮件有效期30分钟
mail_expired="30"
#加密类型NONE 无认证、SSL 加密、LOGIN 普通用户登录
secure="LOGIN"
###############配置导出项目###################
enable_export="false"
#同一个项目同时运行导出程序的并行数量,取值1-4之间,取值越大导出速度越快,越占用资源
export_process_num="1"
#并发导出的项目限制,指同一时间限制的导出项目数量,如果为0则不限制。设置的越大,越占用资源
export_limit_num="5"
#指同时等待导出的任务数量
export_queue_limit_num="100"
#导出项目的缓存目录配置
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="false"
#缓存方式:memory/memcache/redis/file
cache_provider="file"
#当配置缓存方式为memory时,内存回收时间,单位是秒
cache_memory_interval="120"
#当缓存方式配置为file时,缓存的储存目录
cache_file_path="./runtime/cache/"
#缓存文件后缀
cache_file_suffix=".bin"
#文件缓存目录层级
cache_file_dir_level="2"
#文件缓存的默认过期时间
cache_file_expiry="3600"
#memcache缓存服务器地址
cache_memcache_host="127.0.0.1:11211"
#redis服务器地址
cache_redis_host="127.0.0.1:6379"
#redis数据库索引
cache_redis_db="0"
#redis服务器密码
cache_redis_password=""
#缓存键的前缀
cache_redis_prefix="mindoc::cache"
#########日志储存配置##############
#日志保存路径,在linux上,自动创建的日志文件请不要删除,否则将无法写入日志
log_path="./runtime/logs"
#每个文件保存的最大行数,默认值 1000000
#log_maxlines="${MINDOC_LOG_MAX_LINES||1000000}"
log_maxlines="10 MB"
# 每个文件保存的最大尺寸,默认值是 1 << 28, //256 MB
log_maxsize="50 MB"
# 是否按照每天 logrotate,默认是 true
log_daily="true"
# 文件最多保存多少天,默认保存 7 天
log_maxdays="30"
# 日志保存的时候的级别,默认是 Trace 级别,可选值: Emergency/Alert/Critical/Error/Warning/Notice/Informational/Debug/Trace
log_level="Informational"
# 是否异步生成日志,默认是 true
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}"
# i18n config
default_lang="zh-cn"
根据配置文件初始化数据库
# 增加文件执行权限,可选
chmod +x 解压目录/*
# 初始化数据库
./mindoc_linux_musl_amd64 install
# 控制台启动
./mindoc_linux_musl_amd64
# 后台服务启动
nohup ./mindoc_linux_musl_amd64 & ./log.log 2>&1 &
# 安装为服务,服务名称:mindocd,试了一下,不大好用的亚子
./mindoc_linux_musl_amd64 service install
# 移除服务
./mindoc_linux_amd64 service remove
################################
# 设置开机启动,未尝试过
echo '/usr/bin/sleep 30 && /usr/bin/systemctl restart mindocd' >> /etc/rc.local
# CentOS7的mindoc早于mysql启动,导致mindoc无法连接到库,启动失败,因此不能使用systemctl添加开机启动项
启动测试
默认账号:admin、默认密码:123456;进入后可关闭验证码验证;