目录MinDoc 简介项目地址:下面以 Linux 系统为例:Gomod方式安装下载项目代码到本地写入依赖下载依赖创建数据库 配置数据库编译main.go提升文件权限初使化数据库启动程序修改可执行权限启动程序上传到linux服务器上restart.sh文件:mindoc.sh启动服务配置域名,配置代理此时已经成功启动项目了

MinDoc 简介

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

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

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

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

演示站点: http://doc.iminho.me

使用文档:
https://www.iminho.me/wiki/docs/mindoc/mindoc-summary.md

项目地址:

https://github.com/haimait/mindoc

下面以 Linux 系统为例:

Gomod方式安装

下载项目代码到本地

mkdir -p ~/go/src/github.com/lifei6671 //新建文件夹
cd ~/go/src/github.com/lifei6671
git clone git@github.com:haimait/mindoc.git
cd mindoc //进入项目目录里
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
go mod init

用goland打开mindoc项目文件夹
file->setting->Go->Go Modules(vgo)
勾选 Enable Go Modules(vgo) intergration
Proxy: 写入 https://goproxy.cn

写入依赖

在生成的go.mod里写入下面的依赖

replace gopkg.in/russross/blackfriday.v2 => github.com/gbmor-forks/blackfriday.v2-patched latest

下载依赖

go mod tidy

下载完后,go.mod里会出现下面的依赖

module github.com/lifei6671/mindoc

go 1.13

replace gopkg.in/russross/blackfriday.v2 => github.com/gbmor-forks/blackfriday.v2-patched latest

require (
	github.com/PuerkitoBio/goquery v1.5.1
	github.com/astaxie/beego v1.12.1
	github.com/boombuler/barcode v1.0.0
	github.com/howeyc/fsnotify v0.9.0
	github.com/kardianos/service v1.0.0
	github.com/lifei6671/gocaptcha v0.0.0-20190301083731-c467a25bc100
	github.com/mattn/go-sqlite3 v2.0.3+incompatible
	github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
	github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
	github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
	google.golang.org/appengine v1.6.5 // indirect
	gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect
	gopkg.in/ldap.v2 v2.5.1
	gopkg.in/russross/blackfriday.v2 v2.0.0-00010101000000-000000000000
)

创建数据库 配置数据库

1.配置本地创建数据库

如是用mysql数据库 在本地新建一个mindoc数据库

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

CREATE DATABASE mindoc DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

编码必须是utf8mb4_general_ci

如果你使用的是 sqlite 数据库,请将 conf/app.conf 中的数据库配置成如下,系统会自动创建 sqlite 数据库文件:

db_adapter=sqlite3
db_database=mindoc

2.修改配置文件里

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

cp conf/app.conf.example conf/app.conf

这里以mysql为例,改配置配置文件 conf/app.conf

//修改第5行代码为mysql的配置
#httpport = "${MINDOC_PORT||8811}" ##改启动端口为8811
httpport = 8811

//修改第54行代码为mysql的配置
#数据库配置
db_adapter=mysql
#mysql数据库的IP
db_host=127.0.0.1
#mysql数据库的端口号一般为3306
db_port=3306
#刚才创建的数据库的名称
db_database=mindoc
#访问数据库的账号和密码
db_username=root
db_password=123456

编译main.go

haima@haima-PC:~/go/src/github.com/lifei6671/mindoc$ go build -o mindoc main.go
# github.com/lifei6671/mindoc/controllers
controllers/AccountController.go:440:20: assignment mismatch: 2 variables but gocaptcha.NewCaptchaImage returns 1 values

提升文件权限

haima@haima-PC:~/go/src/github.com/lifei6671/mindoc$ ll //看一下文件没有权限
总用量 17912
-rw-r--r--  1 haima haima     2594 3月  30 08:07 appveyor.yml
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 cache
drwxr-xr-x  4 haima haima     4096 3月  30 08:07 commands
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 conf
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 controllers
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 converter
-rw-r--r--  1 haima haima      598 3月  30 08:07 docker-compose.yml
-rw-r--r--  1 haima haima     3468 3月  30 08:07 Dockerfile
-rw-r--r--  1 haima haima     2462 3月  30 08:07 favicon.ico
-rw-r--r--  1 haima haima      956 4月   3 09:36 go.mod
-rw-r--r--  1 haima haima     1403 3月  30 08:07 Gopkg.toml
-rw-r--r--  1 haima haima     9849 4月   3 09:36 go.sum
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 graphics
drwxr-xr-x  3 haima haima     4096 3月  30 08:07 lib
-rw-r--r--  1 haima haima    11357 3月  30 08:07 LICENSE.md
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 mail
-rw-r--r--  1 haima haima      871 3月  30 08:07 main.go
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 models
-rw-r--r--  1 haima haima     6821 3月  30 08:07 README.md
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 routers
-rw-r--r--  1 haima haima 18214352 3月  30 08:07 simsun.ttc
-rw-r--r--  1 haima haima      249 3月  30 08:07 start.sh
drwxr-xr-x 25 haima haima     4096 3月  30 08:07 static
drwxr-xr-x  2 haima haima     4096 3月  30 08:07 uploads
drwxr-xr-x 10 haima haima     4096 3月  30 08:07 utils
drwxr-xr-x 16 haima haima     4096 3月  30 08:07 views

haima@haima-PC:~/go/src/github.com/lifei6671/mindoc$ chmod -R 777 * //添加权限
haima@haima-PC:~/go/src/github.com/lifei6671/mindoc$ ll
总用量 17912
-rwxrwxrwx  1 haima haima     2594 3月  30 08:07 appveyor.yml
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 cache
drwxrwxrwx  4 haima haima     4096 3月  30 08:07 commands
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 conf
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 controllers
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 converter
-rwxrwxrwx  1 haima haima      598 3月  30 08:07 docker-compose.yml
-rwxrwxrwx  1 haima haima     3468 3月  30 08:07 Dockerfile
-rwxrwxrwx  1 haima haima     2462 3月  30 08:07 favicon.ico
-rwxrwxrwx  1 haima haima      956 4月   3 09:36 go.mod
-rwxrwxrwx  1 haima haima     1403 3月  30 08:07 Gopkg.toml
-rwxrwxrwx  1 haima haima     9849 4月   3 09:36 go.sum
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 graphics
drwxrwxrwx  3 haima haima     4096 3月  30 08:07 lib
-rwxrwxrwx  1 haima haima    11357 3月  30 08:07 LICENSE.md
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 mail
-rwxrwxrwx  1 haima haima      871 3月  30 08:07 main.go
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 models
-rwxrwxrwx  1 haima haima     6821 3月  30 08:07 README.md
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 routers
-rwxrwxrwx  1 haima haima 18214352 3月  30 08:07 simsun.ttc
-rwxrwxrwx  1 haima haima      249 3月  30 08:07 start.sh
drwxrwxrwx 25 haima haima     4096 3月  30 08:07 static
drwxrwxrwx  2 haima haima     4096 3月  30 08:07 uploads
drwxrwxrwx 10 haima haima     4096 3月  30 08:07 utils
drwxrwxrwx 16 haima haima     4096 3月  30 08:07 views

找到报错的位置,修改
/home/haima/go/src/mindoc/controllers/AccountController.go 
把下面的代码

    captchaImage, err := gocaptcha.NewCaptchaImage(140, 40, gocaptcha.RandLightColor())
        if err != nil {
	    beego.Error(err)
	    c.Abort("500")
	}

改为

captchaImage := gocaptcha.NewCaptchaImage(140, 40, gocaptcha.RandLightColor())

再次保存修改的文件,再编译main.go

haima@haima-PC:~/go/src/github.com/lifei6671/mindoc$ go build -o mindoc main.go

初使化数据库

./mindoc install  

稍等一分钟,程序会自动初始化数据库,并创建一个超级管理员账号:admin 密码:123456

启动程序

执行如下命令启动程序:

修改可执行权限

chmod +x mindoc

启动程序

./mindoc

此时本地已经安装成功.
访问:http://localhost:8811

上传到linux服务器上

在服务器上配置好go来的环境
不会配置环境的可以参考下面的文章
https://www.cnblogs.com/haima/p/12057933.html

把静态文件和编译好的二进制文件上传到服务器上
下面我将需要的文件上传到我的mindoc目录里
上传前把自己的数据配置为线上的数据库

[root@iZ2ze505h9bgsbp83ct28pZ mindoc]# pwd
/home/work/go/src/haimait/mindoc
[root@iZ2ze505h9bgsbp83ct28pZ mindoc]# ls
conf  go.mod  go.sum  mindoc  mindoc.sh  restart.sh  runtime  static  uploads  views

其中restart.sh 和 restart.sh 是我配置的两个文件sh角本,为了以后方便更新代码到服务器上

restart.sh 方便在服务器上重启项目服务(放在服务器项目根目录里使用)
mindoc.sh 打包并上传文件到服务器上(在本地项目根目录使用)

restart.sh文件:

#!/bin/bash
echo "删除进程"
killall mindoc
echo "启动进程"
nohup ./mindoc >> access.log 2>&1 &

ps -aux | grep mindoc

mindoc.sh

#!/bin/bash
#rm -rf dev
go build -o mindoc main.go
echo "复制文件到服务器"
echo "CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go"
#下面写密码
echo "1231231" 
#下面写自己服务器的用户名和公网ip地址和编译文件要传到的目录 
scp $1  root@182.92.234.22:/home/work/go/src/haimait/mindoc 

mindoc.sh用法:

在本地项目根里(我的目录为/home/haima/go/src/github.com/lifei6671/mindoc)

root@haima-PC:/home/haima/go/src/github.com/lifei6671/mindoc# ./mindoc.sh mindoc
复制文件到服务器
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
123456
root@182.92.234.23's password:  ##这里输入自己shh的密码:123456 然后按Enter回车就会开始编译并上传文件了
mindoc                                             100%   22MB 352.1KB/s   01:05   #此时已经把编译后的文件成功上传到服务器的mindoc目录里了

启动服务

在服务器上进入/home/work/go/src/haimait/mindoc目录里
执行sh角本

[root@iZ2ze505h9bgsbp83ct28pZ mindoc]# ./restart.sh 
删除进程
启动进程
root     13955  0.0  0.3 150756  5960 pts/0    Rl+  00:03   0:00 ./mindoc
root     13957  0.0  0.0 112728   956 pts/0    S+   00:03   0:00 grep mindoc

配置域名,配置代理

GOLANG-配置nginx反向代理端口 配置域名

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

https://www.cnblogs.com/haima/p/12596118.html

此时已经成功启动项目了

在线地址:
http://doc.haimait.com/

默认程序会自动初始化一个超级管理员用户:admin 密码:123456 。请登录后重新设置密码。