总是在说任务驱动,什么是任务驱动?简单的说,就是干着一件事的过程中,产生一个新的需求,然后就把另外一件事情给干了。
最近在做一个产品的开发,从设计到推广使用,都是我自己在做,推广使用需要说明文档,也就是操作手册,以前一直觉得,使用word以及邮件的方式实在是太传统了,有太多的弊端:不方便随时更新,不方便汇总。给用户的体验也非常的不好,一封封邮件的发送也着实低效了点。于是,就产生了文档线上的需求。
1. 需求
找个第三方的平台也能基本满足需求,比如在简书创建个专题。但是,想要更好的用户阅读体验,还是需要做成wiki的样式,于是只能自己动手了。如下图wiki文档,左侧为文档目录,右侧为文档内容。线上编辑,线上发布,随时补充更新,以及协同编辑功能等等。简直就是一套系统的赶脚,没错,我就是要搭建一个文档管理系统。
这么个文档管理系统要是自己开发的话,怎么着也得个把月的时间,有点得不偿失。于是,Google了一下,终于找到一个优秀的产品 - MinDoc,关键还是开源。各方面的细节都做得很好,比如:Markdown支持、协同编辑、响应式页面等等。
该系统的开发者,应该跟我有着类似的需求,然后干脆自己开发了MinDoc,这个在线文档管理系统的侧重点在:日常接口文档,数据库字典,手册说明等文档。该系统还内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需求。
2. 部署
该系统采用Go语言开发的,部署起来也相当的简单,我使用的Linux服务器,安装的CentOS操作系统。安装Go:yum install go,接来下,直接按照下面的官方安装文档操作即可完成。(以下略作修改,以备后用)
第一步 下载可执行文件
请从 https://github.com/lifei6671/mindoc/releases 下载最新版的可执行文件,一般文件名为 mindoc_linux_amd.tar.gz 或 mindoc_linux_amd64.zip 。
第二步 解压压缩包
请将刚才下载的文件解压,请执行如下命令解压:
tar -xzvf mindoc_linux_amd64.tar.gz
// or
unzip mindoc_linux_amd64.zip -x mindoc
第三步 创建数据库
如果你使用的 mysql 数据库,请创建一个编码为utf8mb4格式的数据库,如果没有GUI管理工具,推荐用下面的脚本创建:
CREATE DATABASE mindoc_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
如果你使用的是 sqlite 数据库,请将 conf/app.conf 中的数据库配置成如下,系统会自动创建 sqlite 数据库文件:
db_adapter=sqlite3
db_database=mindoc_db
第四步 配置数据库
请将刚才解压目录下 conf/app.conf.example 重名为 app.conf:
cp conf/app.conf.example conf/app.conf
PS. 如果没有找到conf目录,请到github源码上down下来,放到项目根目录里即可。
打开app.conf文件,修改内容如下:
#数据库配置
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 根目录下使用命令行执行如下命令,用于初始化数据库:
./mindoc_linux_amd64 install
稍等一分钟,程序会自动初始化数据库,并创建一个超级管理员账号:admin 密码:123456
第五步 启动程序
执行如下命令启动程序:
#修改可执行权限
chmod +x mindoc_linux_amd64
#启动程序
./mindoc_linux_amd64
此时访问 http://localhost:8181 就能访问 MinDoc 了。
第六步 配置代理
这一步可选,如果你不想用端口号访问 MinDoc 就需要配置一个代理了。Nginx 代理的配置文件如下:
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 程序的地址和端口号
proxy_pass http://127.0.0.1:8181;
}
}
3. 搞定
安装配置完成之后,就可以通过你的域名,进行访问了。在线进行文档编写,可实时更新,团队协作编写,每一个功能点可谓恰到好处,作为中小团队IT文档的管理系统,绝对能够胜任。
这篇文章就是在上面完成的,点击扩展连接可以查看。