MinDoc搭建企業(yè)WIKI

1. 簡(jiǎn)介

MinDoc 是一款針對(duì)IT團(tuán)隊(duì)開發(fā)的簡(jiǎn)單好用的文檔管理系統(tǒng)。使用Golang開發(fā),部署方便,同時(shí)支持MarkDown和HTML兩種編輯器。MinDoc還集成了calibre使系統(tǒng)可以導(dǎo)出word、mobi、epub和pdf四種格式的文檔。

2. 準(zhǔn)備相關(guān)軟件包

3. 安裝

源碼編譯安裝軟件,必要要有配套的系統(tǒng)工具才可以。在Ubuntu系統(tǒng)中主要為gcc|g++|make,通過(guò)命令sudo apt install gcc g++ make -y安裝。

  • MySQL

    提供功能:

    1. 存儲(chǔ)mindoc的數(shù)據(jù)
    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. 代理客戶端對(duì)MinDoc的訪問(wèn)(反向代理)
    2. https協(xié)議加密傳輸 (openssl支持的SSL加密)
    3. 數(shù)據(jù)壓縮傳輸 (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的安裝包是已經(jīng)編譯好的二進(jìn)制文件,不需要單獨(dú)安裝,只需要解壓到目標(biāo)目錄下即可

    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為系統(tǒng)服務(wù),位置: /etc/systemd/system/mindocd.service
    
  • Calibre
    calibre官方提供了linux下的二進(jìn)制安裝包,我們直接下載解壓即可使用。

    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/ #最后的這個(gè)路徑可以為系統(tǒng)的PATH路徑下的任意一個(gè),主要是為了可以在系統(tǒng)環(huán)境下直接執(zhí)行ebook-convert命令
    
  • wkhtmltopdf
    wkhtmltopdf工具可以將html頁(yè)面轉(zhuǎn)換為pdf文件,linux系統(tǒng)中經(jīng)常會(huì)出現(xiàn)中文亂碼的情況,我們把windows系統(tǒng)的宋體上傳到linux系統(tǒng)的/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
    

    如果有報(bào)錯(cuò),根據(jù)提示安裝依賴的軟件包即可。

4. 配置啟動(dòng)

  • MySQL

    1. mysql我們保持默認(rèn)配置不動(dòng)。
    2. 啟動(dòng)mysql
      service start mysql
    3. 創(chuàng)建數(shù)據(jù)庫(kù)。
    mysql> CREATE DATABASE mindoc_db  DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
    
    1. 授權(quán)mindoc用戶管理mindoc的數(shù)據(jù)庫(kù)
    mysql> GRANT ALL PRIVILEGES ON mindoc_db.* TO '  mindoc'@'127.0.0.1' IDENTIFIED BY 'mindoc';
    mysql> FLUSH PRIVILEGES;
    
  • Nginx
    nginx需要配置ssl功能,并且作為mindoc的代理服務(wù)來(lái)使用。CA證書這部分自行百度即可,這里不做任何說(shuō)明。主要配置如下:

    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就必須添加這個(gè)選項(xiàng)
      }
    }
    
  • MinDoc

    1. 配置文件位于 /opt/mindoc/conf下面,文件名為app.conf。主要修改數(shù)據(jù)庫(kù)和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" #啟用項(xiàng)目導(dǎo)出
    ---upload file---
    upload_file_size=1000MB #上傳文件大小限制為1G,同時(shí)在nginx的配置中添加"client_max_body_size 1G;"
    ---LDAP---
    ldap_enable=true #開啟ldap
    ldap_host=192.168.18.52 #openldap服務(wù)所在服務(wù)器IP
    ldap_port=389
    ldap_attribute=uid #以ldap的哪個(gè)屬性作為mindoc系統(tǒng)的用戶名
    ldap_base=DC=juzhen,DC=io #基礎(chǔ)搜索域
    ldap_user=CN=Manager,DC=juzhen,DC=io #管理員賬戶
    ldap_password=juzhenldap123 #管理員密碼
    ldap_user_role=2 #ldap用戶注冊(cè)之后的用戶role為普通用戶
    ldap_filter=objectClass=posixAccount
    
    1. 配置文件修改完成后,執(zhí)行命令./mindoc_linux_amd64 install完成數(shù)據(jù)庫(kù)的初始化
    2. 啟動(dòng)MinDoc服務(wù)
      sudo service start mindocd

至此,MinDoc的環(huán)境搭建就完成了。那么,接下來(lái)再寫一下備份的事情就算結(jié)束了。

5. 備份

備份分為數(shù)據(jù)庫(kù)和mindoc文件備份兩部分。

  • 數(shù)據(jù)庫(kù)
    執(zhí)行下面的命令即可完整的備份mindoc的數(shù)據(jù),將此命令做成定時(shí)任務(wù)即可完成日常的備份數(shù)據(jù)庫(kù)備份工作。

    ~]$ 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文件備份就比較簡(jiǎn)單粗暴了,直接將/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. 密碼修改

如果管理員或者用戶忘記了密碼,管理員可以直接在服務(wù)器端使用命令重置密碼。執(zhí)行命令如下:

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容