MinDoc搭建企业WIKI

1. 简介

MinDoc 是一款针对IT团队开发的简单好用的文档管理系统。使用Golang开发,部署方便,同时支持MarkDown和HTML两种编辑器。MinDoc还集成了calibre使系统可以导出word、mobi、epub和pdf四种格式的文档。

2. 准备相关软件包

3. 安装

源码编译安装软件,必要要有配套的系统工具才可以。在Ubuntu系统中主要为gcc|g++|make,通过命令sudo apt install gcc g++ make -y安装。

  • MySQL

    提供功能:

    1. 存储mindoc的数据
    juzhen@MinDoc:~$ sudo dpkg -i mysql-apt-config_0.7.3-1_all.deb
    juzhen@MinDoc:~$ sudo apt-get update
    juzhen@MinDoc:~$ sudo apt-get install mysql-server #password=mindoc
    juzhen@MinDoc:~$ sudo systemctl start mysql
    
  • Nginx

    提供功能:

    1. 代理客户端对MinDoc的访问(反向代理)
    2. https协议加密传输 (openssl支持的SSL加密)
    3. 数据压缩传输 (zlib支持的gzip)
    4. 80端口重定向至443端口 (pcre支持的rewrite)
    juzhen@MinDoc:~$ tar xf nginx-1.14.2.tar.gz
    juzhen@MinDoc:~$ tar xf OpenSSL_1_1_0j.tar.gz
    juzhen@MinDoc:~$ tar xf pcre-8.42.tar.gz
    juzhen@MinDoc:~$ tar xf zlib-1.2.11.tar.gz
    juzhen@MinDoc:~$ cd nginx-1.14.2/
    juzhen@MinDoc:~/nginx-1.14.2$ ./configure --prefix=/opt/nginx --with-http_stub_status_module --with-  http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-  openssl=../openssl-OpenSSL_1_1_0j --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11 && sudo make &&   sudo make install
    
  • MinDoc
    mindoc的安装包是已经编译好的二进制文件,不需要单独安装,只需要解压到目标目录下即可

    juzhen@MinDoc:~$ sudo mkdir /opt/mindoc
    juzhen@MinDoc:~$ sudo chown -R juzhen.juzhen /opt/mindoc
    juzhen@MinDoc:~$ sudo unzip mindoc_linux_amd64.zip -d /opt/mindoc
    juzhen@MinDoc:~$ sudo cd /opt/mindoc && sudo ./mindoc_linux_amd64 service install #安装mindoc为系统服务,位置: /etc/systemd/system/mindocd.service
    
  • Calibre
    calibre官方提供了linux下的二进制安装包,我们直接下载解压即可使用。

    juzhen@MinDoc:~$ wget https://download.calibre-ebook.com/3.36.0/calibre-3.36.0-x86_64.txz
    juzhen@MinDoc:~$ sudo mkdir /opt/calibre && sudo tar xf  calibre-3.36.0-x86_64.txz -C /opt/calibre/
    juzhen@MinDoc:~$ sudo ln -s /opt/calibre/ebook-convert /usr/bin/ #最后的这个路径可以为系统的PATH路径下的任意一个,主要是为了可以在系统环境下直接执行ebook-convert命令
    
  • wkhtmltopdf
    wkhtmltopdf工具可以将html页面转换为pdf文件,linux系统中经常会出现中文乱码的情况,我们把windows系统的宋体上传到linux系统的/usr/share/fonts目录下即可。

    juzhen@MinDoc:~$ wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.xenial_amd64.deb
    juzhen@MinDoc:~$ sudo dpkg -i wkhtmltox_0.12.5-1.xenial_amd64.deb
    

    如果有报错,根据提示安装依赖的软件包即可。

4. 配置启动

  • MySQL

    1. mysql我们保持默认配置不动。
    2. 启动mysql
      service start mysql
    3. 创建数据库。
    mysql> CREATE DATABASE mindoc_db  DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
    
    1. 授权mindoc用户管理mindoc的数据库
    mysql> GRANT ALL PRIVILEGES ON mindoc_db.* TO '  mindoc'@'127.0.0.1' IDENTIFIED BY 'mindoc';
    mysql> FLUSH PRIVILEGES;
    
  • Nginx
    nginx需要配置ssl功能,并且作为mindoc的代理服务来使用。CA证书这部分自行百度即可,这里不做任何说明。主要配置如下:

    server {
      listen 80;
      server_name  mindoc.juzix.net;
      location / {
          return 301 https://$host$request_uri;
      }
    }
    server {
      listen 443 ssl;
      server_name  mindoc.juzix.net;
      ssl_certificate      juzhen.crt;
      ssl_certificate_key  juzhen.key;
      ssl_session_cache    shared:SSL:1m;
      ssl_session_timeout  5m;
      ssl_ciphers  HIGH:!aNULL:!MD5;
      ssl_prefer_server_ciphers  on;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      charset utf-8;
      client_max_body_size 1G;
      location / {
          proxy_pass http://localhost:8181;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-Proto $scheme; #如果启用了https就必须添加这个选项
      }
    }
    
  • MinDoc

    1. 配置文件位于 /opt/mindoc/conf下面,文件名为app.conf。主要修改数据库和ldap部分,配置如下所示:
    ---session---
    sessionprovider=file
    sessionproviderconfig=./runtime/session
    ---DB---
    db_adapter=mysql
    db_host=127.0.0.1
    db_port=3306
    db_database=mindoc_db
    db_username=mindoc
    db_password=mindoc
    ---export item---
    enable_export="true" #启用项目导出
    ---upload file---
    upload_file_size=1000MB #上传文件大小限制为1G,同时在nginx的配置中添加"client_max_body_size 1G;"
    ---LDAP---
    ldap_enable=true #开启ldap
    ldap_host=192.168.18.52 #openldap服务所在服务器IP
    ldap_port=389
    ldap_attribute=uid #以ldap的哪个属性作为mindoc系统的用户名
    ldap_base=DC=juzhen,DC=io #基础搜索域
    ldap_user=CN=Manager,DC=juzhen,DC=io #管理员账户
    ldap_password=juzhenldap123 #管理员密码
    ldap_user_role=2 #ldap用户注册之后的用户role为普通用户
    ldap_filter=objectClass=posixAccount
    
    1. 配置文件修改完成后,执行命令./mindoc_linux_amd64 install完成数据库的初始化
    2. 启动MinDoc服务
      sudo service start mindocd

至此,MinDoc的环境搭建就完成了。那么,接下来再写一下备份的事情就算结束了。

5. 备份

备份分为数据库和mindoc文件备份两部分。

  • 数据库
    执行下面的命令即可完整的备份mindoc的数据,将此命令做成定时任务即可完成日常的备份数据库备份工作。

    ~]$ mysqldump -umindoc -pmindoc -h127.0.0.1 --databases mindoc_db --default-character-set utf8 --single-transaction --add-drop-table --routines --events --triggers > mindoc_db_$(date +'%Y%m%d%H%M%S').sql
    
  • mindoc文件
    mindoc文件备份就比较简单粗暴了,直接将/opt/mindoc目录打包,放到备份目录下即可,命令如下:

    ~]$ sudo tar -zcvf mindoc_$(date +'%Y%m%d%H%M').tar.gz /opt/mindoc
    ~]$ sudo mv mindoc_xxxxx.tar.gz /path/backup/
    

6. 密码修改

如果管理员或者用户忘记了密码,管理员可以直接在服务器端使用命令重置密码。执行命令如下:

juzhen@MinDoc:/opt/mindoc$ ./mindoc_linux_amd64 password -account admin -password 123456

参考链接
  1. https://www.iminho.me
  2. http://nginx.org/en/docs/http/configuring_https_servers.html
  3. https://wkhtmltopdf.org
  4. https://download.calibre-ebook.com
  5. https://calibre-ebook.com
  6. http://nginx.org/en/docs/configure.html
  7. https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容