1. 简介
MinDoc 是一款针对IT团队开发的简单好用的文档管理系统。使用Golang开发,部署方便,同时支持MarkDown和HTML两种编辑器。MinDoc还集成了calibre使系统可以导出word、mobi、epub和pdf四种格式的文档。
2. 准备相关软件包
-
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四中格式文件导出功能支持,安装时我们使用最新的3.x的版本,以尽可能提供更完整的功能wkhtmltopdf
PDF文件导出支持
3. 安装
源码编译安装软件,必要要有配套的系统工具才可以。在Ubuntu系统中主要为gcc
|g++
|make
,通过命令sudo apt install gcc g++ make -y
安装。
-
提供功能:
- 存储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
-
提供功能:
- 代理客户端对MinDoc的访问(反向代理)
- https协议加密传输 (openssl支持的SSL加密)
- 数据压缩传输 (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的安装包是已经编译好的二进制文件,不需要单独安装,只需要解压到目标目录下即可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
- mysql我们保持默认配置不动。
- 启动mysql
service start mysql
- 创建数据库。
mysql> CREATE DATABASE mindoc_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
- 授权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
- 配置文件位于
/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
- 配置文件修改完成后,执行命令
./mindoc_linux_amd64 install
完成数据库的初始化 - 启动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