今天给大家分享一款免费开源的在线文档管理工具 MinDoc ,提升 IT 部门的文档管理效率。
概述
MinDoc 是一款针对 IT 团队开发的简单好用的文档管理系统。MinDoc 的前身是 SmartWiki 文档系统。SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。MinDoc 基于 Golang 开发支持 Markdown 和 HTML 两种编辑器。
可以用来储存日常接口文档,数据库字典,手册说明等文档。内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需求。
主要功能
- 项目管理,可以对项目进行编辑更改,成员添加等。
- 文档管理,添加和删除文档,文档历史恢复等。
- 用户管理,添加和禁用用户,个人资料更改等。
- 用户权限管理 , 实现用户角色的变更。
- 项目加密,可以设置项目公开状态,私有项目需要通过 Token 访问。
- 站点配置,二次开发时可以添加自定义配置项。
- 附件管理,可管理所有项目中上传的文件。
- 项目导出,目前支持导出 PDF、Word、EPUB、MOBI、Markdown 等格式项目。
- 标签管理,可关系已存在的项目标签。
- 导入项目,支持导入 Markdown 压缩包成为一个项目。
- 二级目录部署,支持将 MinDoc 部署到二级子目录。
安装部署
如果你的服务器上没有安装 golang 程序请手动设置一个环境变量如下:键名为 ZONEINFO,值为 MinDoc 根目录下的 /lib/time/zoneinfo.zip 绝对路径。
下载可执行文件
请从 https://github.com/lifei6671/mindoc/releases 下载最新版的可执行文件,一般文件名为 mindoc_linux_amd.tar.gz
或 mindoc_linux_amd64.zip
。
解压压缩包
请将刚才下载的文件解压,请执行如下命令解压:
代码语言:javascript复制tar -xzvf mindoc_linux_amd64.tar.gz
或
unzip mindoc_linux_amd64.zip
创建数据库
如果你使用 mysql 数据库做为存储的话,需要先创建一个编码为 utf8mb4 格式的数据库,如果没有 GUI 管理工具,推荐用下面的脚本创建:
代码语言:javascript复制CREATE DATABASE mindoc_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
如果你使用的是 sqlite 数据库,请将 conf/app.conf 中的数据库配置成如下,系统会自动创建 sqlite 数据库文件:
代码语言:javascript复制db_adapter=sqlite3
db_database=mindoc_db
配置数据库
请将刚才解压目录下 conf/app.conf.example
重名为 app.conf
:
cp conf/app.conf.example conf/app.conf
同时配置如下节点:
代码语言:javascript复制#数据库配置
db_adapter=mysql
#mysql数据库的IP
db_host=127.0.0.1
#mysql数据库的端口号一般为3306
db_port=3306
#刚才创建的数据库的名称
db_database=mindoc_db
#访问数据库的账号和密码
db_username=root
db_password=123456
在 MinDoc 根目录下使用命令行执行如下命令,用于初始化数据库:
代码语言:javascript复制./mindoc_linux_amd64 install
稍等一分钟,程序会自动初始化数据库,并创建一个超级管理员账号:admin 密码:123456
启动程序
执行如下命令启动程序:
代码语言:javascript复制#修改可执行权限
chmod x mindoc_linux_amd64
#启动程序
./mindoc_linux_amd64
此时访问 http://localhost:8181 就能访问 MinDoc 了。
配置代理
这一步可选,如果你不想用端口号访问 MinDoc 就需要配置一个代理了。
Nginx 代理的配置文件如下:
代码语言:javascript复制server {
listen 80;
#此处应该配置你的域名:
server_name webhook.iminho.me;
charset utf-8;
#此处配置你的访问日志,请手动创建该目录:
access_log /var/log/nginx/webhook.iminho.me/access.log;
location / {
try_files /_not_exists_ @backend;
}
# 这里为具体的服务代理配置
location @backend {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
#此处配置 MinDoc 程序的地址和端口号