项目简介

MinDoc 是一款针对IT团队开发的简单好用的文档管理系统。

MinDoc 的前身是 SmartWiki 文档系统。SmartWiki 是基于 PHP 框架 laravel 开发的一款文档管理系统。因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。可以方便用户部署和实用,同时增加Markdown和HTML两种编辑器。

开发缘起是公司IT部门需要一款简单实用的项目接口文档管理和分享的系统。其功能和界面源于 kancloud 。

可以用来储存日常接口文档,数据库字典,手册说明等文档。内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需求。

主要功能

  • 项目管理,可以对项目进行编辑更改,成员添加等。
  • 文档管理,添加和删除文档,文档历史恢复等。
  • 用户管理,添加和禁用用户,个人资料更改等。
  • 用户权限管理 , 实现用户角色的变更。
  • 项目加密,可以设置项目公开状态,私有项目需要通过Token访问。
  • 站点配置,二次开发时可以添加自定义配置项。
  • 附件管理,可管理所有项目中上传的文件。
  • 项目导出,目前支持导出 PDF 格式项目。

主要技术

beego 1.8.0、editor.md、bootstrap 3.2、jquery 1.8、layer 弹出层框架、webuploader 文件上传框架、Nprogress 库、jstree、font awesome 字体库、cropper 图片剪裁库

演示

示例:http://doc.52itstyle.com/

安装环境

centos6.8、MySql5.6、Nginx1.10.3、go1.7.3、GLIBC_2.14

安装数据库

已安装过的请自行忽略。

#查看所有以mysql开头的软件
yum list mysql*
#安装mysql
yum install mysql-server* -y
#启动mysql
/etc/init.d/mysqld start
#设定mysql自动启动
chkconfig mysqld on
#复制mysql的配置文件到etc目录,提示是否覆盖,选择y
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
#重新设定mysql密码,默认密码是【空】,输入新密码,注意提问,是否删除匿名账户?【y】 是否禁止远程登录?【n】是否移除test数据库?【y】是否重载权限文件【y】
mysql_secure_installation
#重启mysql,此时用本机Navicat Premium还是连不上mysql的!
/etc/init.d/mysqld restart
#用命令访问mysql
mysql -u root -p
#使用mysql数据库
use mysql;
#查询当前用户情况,显示有3条记录,127.0.0.1;localhost;iz28wi3pigtz;其中最后这个是ECS主机名
select host,user from user;
#把localhost这条记录的host改为 %; 意思是root可以由任何主机登录mysql,网上很多写法,都没有and host='localhost'这个条件,经常报错。
update user set host = '%' where user = 'root' and host='localhost';
#再次查询,可以看到host有3个;%;127.0.0.1;iz28wi3pigtz;其实user表的主键是user字段和host字段的联合主键。
select host, user from user;
#重启mysql
/etc/init.d/mysqld restart

安装go环境

一、源码安装

wget https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz

#将文件解压到/use/local/路径下(路径可以自己定义)

tar -zxf go1.7.3.linux-amd64.tar.gz -C /usr/local/

配置环境变量

vi /etc/profile
#追加配置
export PATH=$PATH:/usr/local/go/bin
#刷新配置使其生效
source /etc/profile

二、RPM包安装

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install golang -y

三、 YUM源安装

yum install -y golang

安装成功后,查看go版本

[root@AY140216149Z ~]# go version
go version go1.7.3 linux/amd64

升级glibc版本

查看glibc版本

[root@AY140216131049Z ~]# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12

mindoc至少需要2.14版本以上glibc,所以需要自己手动升级

#下载2.14版本
wgte https://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
#解压编译安装
tar -xzvf glibc-2.14.tar.gz
cd glibc-2.14
./configure --prefix=/opt/glibc-2.14
make && make install

视机器性能,编译安装时间大概需要将近5-10分钟,请耐心等待,安装完成之后

#备份
cp /lib64/libc.so.6 /lib64/libc.so.6.bak
#删除前一定要备份
rm -rf /lib64/libc.so.6
#创建软连接
ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

查看版本,如果发现2.14说明配置成功

[root@AY140216131049Z build]# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

安装 mindoc

第一步 下载可执行文件

请从 https://github.com/lifei6671/mindoc/releases 下载最新版的可执行文件,一般文件名为 mindoc_linux_amd.tar.gz 或 mindoc_linux_amd64.zip 。

第二步 解压压缩包

请将刚才下载的文件解压,请执行如下命令解压:

tar -xzvf mindoc_linux_amd64.tar.gz

unzip mindoc_linux_amd64.zip

第三步 创建数据库

如果你使用的 mysql 数据库,请创建一个编码为utf8mb4格式的数据库,如果没有GUI管理工具,推荐用下面的脚本创建:

CREATE DATABASE mindoc_db  DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

第四步 配置数据库

请将刚才解压目录下 conf/app.conf.example 重名为 app.conf:

cp conf/app.conf.example conf/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

此时访问 http://localhost:8181 就能访问 MinDoc 了。

第五步 配置代理

这一步可选,如果你不想用端口号访问 MinDoc 就需要配置一个代理了。

Nginx 代理的配置文件如下:

server {
listen 80;
#此处应该配置你的域名:
server_name doc.52itstyle.com;
charset utf-8;
#此处配置你的访问日志,请手动创建该目录:
access_log /var/log/nginx/doc.52itstyle.com.access.log;
location ~ .*\.(ttf|woff2|eot|otf|map|swf|svg|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
#此处将路径执行 MinDoc 的跟目录
root /mnt/domains/mindoc;
expires 30m;
} 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;
}
}

第六步 启动程序

#修改可执行权限
chmod +x mindoc_linux_amd64 #后台启动
nohup ./mindoc_linux_amd64 &
# 重启Nginx
nginx -s reload

界面展示:

推荐一款接口文档在线管理系统-MinDoc的更多相关文章

  1. 《MinDoc 接口文档在线管理系统》

    项目简介 MinDoc 是一款针对IT团队开发的简单好用的文档管理系统. MinDoc 的前身是 SmartWiki 文档系统.SmartWiki 是基于 PHP 框架 laravel 开发的一款文档 ...

  2. MinDoc v0.6 发布,轻量级文档在线管理系统

    更新日志 新增 标签功能,可以根据标签组织项目 新增 用户删除功能,删除后的用户项目以及其他数据会自动转移到超级管理员账户上 新增 项目描述支持Markdown语法 优化 项目标签添加效果 优化 登录 ...

  3. SmartWiki文档在线管理系统简介

    简介 SmartWiki是一款针对IT团队开发的简单好用的文档管理系统.可以用来储存日常接口文档,数据库字典,手册说明等文档.内置项目管理,用户管理,权限管理等功能,能够满足大部分中小团队的文档管理需 ...

  4. Swagger: 一个restful接口文档在线生成+功能测试软件

    一.什么是 Swagger? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 ...

  5. 推荐几款API文档集合工具

    https://zealdocs.org/    开源.免费,支持Linux.Windows http://velocity.silverlakesoftware.com/  https://kape ...

  6. springboot项目利用Swagger2生成在线接口文档

    Swagger简介. Swagger2是一款restful接口文档在线生成和在线调试工具.很多项目团队利用Swagger自动生成接口文档,保证接口文档和代码同步更新.在线调试.简单地说,你可以利用这个 ...

  7. 一款对Postman支持较好的接口文档生成工具

    最近要编写接口文档给测试和前端看,通过网上查阅资料,也认识了很多款接口文档生成工具,比如易文档.ApiPost.ShowDoc.YApi.EoLinker.DOClever.apizza等,通过对这几 ...

  8. 几款常用的在线API管理工具(是时候抛弃office编写接口文档了)

    在项目开发过程中,总会涉及到接口文档的设计编写,之前使用的都是ms office工具,不够漂亮也不直观,变更频繁的话维护成本也更高,及时性也是大问题.基于这个背景,下面介绍几个常用的API管理工具,方 ...

  9. 使用swagger实现web api在线接口文档

    一.前言 通常我们的项目会包含许多对外的接口,这些接口都需要文档化,标准的接口描述文档需要描述接口的地址.参数.返回值.备注等等:像我们以前的做法是写在word/excel,通常是按模块划分,例如一个 ...

随机推荐

  1. ubuntu下使用 chkconfig 是一种习惯

    ubuntu下使用 chkconfig 是一种习惯 习惯了chkconfig命令, 闲来写了个脚本模拟下, 步骤很简单. 如下: 第一步, 安装sysv-rc-conf sudo apt instal ...

  2. 第五章之S5PV210将u-boot.bin从SD卡中搬到DDR中

    1,在完成上一节的memory初始化后,接下来在arch/arm/cpu/armv7/start.S的160行:如下图 2,跳转到arch/arm/lib/board.c下的board_init_f函 ...

  3. Fliptile 翻格子游戏[Usaco2007 Open]

    题目描述 Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. ...

  4. git分支管理之Feature分支

    软件开发中,总有无穷无尽的新的功能要不断添加进来. 添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合 ...

  5. 如何在MySQL中设置外键约束以及外键的作用

    1.外键的作用,主要有两个:     一个是让数据库自己通过外键来保证数据的完整性和一致性     一个就是能够增加ER图的可读性 2.外键的配置 1)先创建一个主表,代码如下: #创建表studen ...

  6. 【性能测试工具】- WebBench

    优点:模拟的并发量更大:缺点:统计的结果有限 概述: webbench是由Lionbridge公司(http://www.lionbridge.com)开发,它是Linux下的一个网站压力测试工具,它 ...

  7. Vue.js 计算属性的秘密

    计算属性是一个很邪门的东西,只要在它的函数里引用了 data 中的某个属性,当这个属性发生变化时,函数仿佛可以嗅探到这个变化,并自动重新执行. 上述代码会源源不断的打印出 b 的值.如果希望 a 依赖 ...

  8. MySQL的left,substr,instr截取字符串函数使用实例

         原表:select * from pagereferrer;如下:  如何在这张表中,查询出按 URL分类的信息 ,例如:211.95.60.43:8080算一类信息,并按百分比显示.预期结 ...

  9. Android Studio上修改项目(module)的包名(Package Name)

    当你对着包名右击,查找Refactor(重构)下的Rename(快捷键:SHIFT+F6)时,弹出来的仅仅是包名最后一个路径的名称,如下图: 但你往往希望修改整个包名,比如exmple,所以你需要以下 ...

  10. Ransom Note(383)

    题目:Given an arbitrary ransom note string and another string containing letters from all the magazine ...