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)軟件包
-
nginx 1.14.2
依賴-
pcre 8.42
nginx的rewrite正則支持 -
zlib 1.2
nginx的gzip支持 -
openssl 1.1
nginx的https支持
-
pcre 8.42
-
Calibre
PDF、EPUB、MOBI、Word四中格式文件導(dǎo)出功能支持,安裝時(shí)我們使用最新的3.x的版本,以盡可能提供更完整的功能wkhtmltopdf
PDF文件導(dǎo)出支持
3. 安裝
源碼編譯安裝軟件,必要要有配套的系統(tǒng)工具才可以。在Ubuntu系統(tǒng)中主要為gcc|g++|make,通過(guò)命令sudo apt install gcc g++ make -y安裝。
-
提供功能:
- 存儲(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 -
提供功能:
- 代理客戶端對(duì)MinDoc的訪問(wèn)(反向代理)
- https協(xié)議加密傳輸 (openssl支持的SSL加密)
- 數(shù)據(jù)壓縮傳輸 (zlib支持的gzip)
- 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
- mysql我們保持默認(rèn)配置不動(dòng)。
- 啟動(dòng)mysql
service start mysql - 創(chuàng)建數(shù)據(jù)庫(kù)。
mysql> CREATE DATABASE mindoc_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;- 授權(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
- 配置文件位于
/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- 配置文件修改完成后,執(zhí)行命令
./mindoc_linux_amd64 install完成數(shù)據(jù)庫(kù)的初始化 - 啟動(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