DocHub v2.1 安装部署教程

说明

  1. 当前教程为 Ubuntu 部署教程,使用的是 Ubuntu 16.04
  2. Windows用户,建议简单学习下Docker(Docker系列教材),然后直接拉取 DocHub 的 Docker 镜像环境对程序进行部署。

    镜像环境:

    1. [sudo] docker pull truthhun/dochub:env
  3. 支持收费代部署,费用在300 ~ 800元/次
    需要800元/次的情况,一般出现在你什么东西都没准备好,双方的时间都浪费在了沟通而不是程序部署…
  4. 很多网友在问,为什么不支持文档本地化存储,个人坚决不支持本地化存储的理由如下:
    1. 云存储和CDN,目前已经是白菜价了.
    2. 不能纵容倒退的行为.
    3. 本地化存储,运维和迁移不方便.
    4. 我比较懒…
  5. 可能一些企业想要内部使用这套文库系统来管理企业内部文档,不过建议使用nextcloud开源程序,这套程序是一套PHP开发的开源网盘程序,使用Docker部署也很方便,程序实现了Office等文档在线预览。
  6. 演示站点:https://www.wenkuzhijia.cn
  7. 双拼域名wenku.it打算出手,.it结尾,IT行业,wenku即文库。联系方式在当前文档教程最底部。

硬件配置

最低配置

  1. CPU: 2 * core
  2. 内存:4 GB
  3. 硬盘:20 GB

如果需要安装ElasticSearch,建议最低配置

  1. CPU: 4 * core
  2. 内存:8 GB
  3. 硬盘:20 GB

配置阿里云OSS云存储

  1. 登录阿里云,进入OSS,创建两个bucket,一个设置为私有,一个设置为公共读,如私有的叫dochub-private,公共读的叫dochub-public

  2. 导入样式

    创建一个txt文件,复制下面的文本粘贴进去。

    1. styleName:cover,styleBody:image/resize,m_pad,w_140,h_200,limit_0/auto-orient,0/quality,q_90
    2. styleName:avatar,styleBody:image/resize,m_fill,w_120,h_120,limit_0/auto-orient,0/quality,q_90
    3. styleName:banner,styleBody:image/resize,m_fill,w_825,h_316,limit_0/auto-orient,0/quality,q_90

    进入公共读的bucket,如dochub-public,在导入样式里面选择导入样式,选择您刚刚的txt文件进行导入。

    然后点击访问设置,将自定义分隔符设置为/,如图:

安装环境依赖

最好命令执行的时候,不需要添加sudo,如果需要sudo才能调用程序命令的话,我目前不知道程序在文档处理的时候会不会出现问题。

安装依赖之前,请先执行

  1. apt update

安装字体支持

作用:避免文档乱码

一些程序系统,在转换文档的时候,中文可能会出现乱码,很多时候是缺少字体造成的。

安装中文字体:

  1. apt install -y fonts-wqy-zenhei fonts-wqy-microhei

更多字体支持,请在Ubuntu使用apt search命令进行搜索,搜索fonts一般能搜到各种语言的很多字体

安装 libreoffice

作用:将office文档转PDF

  1. apt install libreoffice

测试
想办法弄一个中文内容的office文档,如文档名称test.docx,使用以下命令进行转换,看下有没有出现中文乱码,出现乱码,请自行Google或者百度解决。

  1. soffice --headless --invisible --convert-to pdf test.docx

会在当前目录下生成test.pdf文档,下载下来看下有没有乱码。

安装 pdf2svg

作用:将PDF 转 svg

  1. apt install pdf2svg

使用方法:

  1. pdf2svg <in file.pdf> <out file.svg> [<page no>]

转化文档,看下效果(test1.svg文件)

  1. pdf2svg test.pdf test1.svg 1

安装 pdftotext工具

作用:提取PDF中的文本

  1. apt install poppler-utils

测试

  1. pdftotext -f 1 -l 5 test.pdf test.txt

用法:

  1. pdftotext --help
  2. ------
  3. pdftotext version 0.41.0
  4. Copyright 2005-2016 The Poppler Developers - http://poppler.freedesktop.org
  5. Copyright 1996-2011 Glyph & Cog, LLC
  6. Usage: pdftotext [options] <PDF-file> [<text-file>]
  7. -f <int> : first page to convert
  8. -l <int> : last page to convert
  9. -r <fp> : resolution, in DPI (default is 72)
  10. -x <int> : x-coordinate of the crop area top left corner
  11. -y <int> : y-coordinate of the crop area top left corner
  12. -W <int> : width of crop area in pixels (default is 0)
  13. -H <int> : height of crop area in pixels (default is 0)
  14. -layout : maintain original physical layout
  15. -fixed <fp> : assume fixed-pitch (or tabular) text
  16. -raw : keep strings in content stream order
  17. -htmlmeta : generate a simple HTML file, including the meta information
  18. -enc <string> : output text encoding name
  19. -listenc : list available encodings
  20. -eol <string> : output end-of-line convention (unix, dos, or mac)
  21. -nopgbrk : don't insert page breaks between pages
  22. -bbox : output bounding box for each word and page size to html. Sets -htmlmeta
  23. -bbox-layout : like -bbox but with extra layout bounding box data. Sets -htmlmeta
  24. -opw <string> : owner password (for encrypted files)
  25. -upw <string> : user password (for encrypted files)
  26. -q : don't print any messages or errors
  27. -v : print copyright and version info
  28. -h : print usage information
  29. -help : print usage information
  30. --help : print usage information
  31. -? : print usage information

安装 calibre

作用:将epub等转PDF

注意:不要使用apt install进行安装,因为安装的会是老版本的,要安装最新版。

安装命令:

  1. wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sh /dev/stdin

calibre详细安装教程:https://calibre-ebook.com/download_linux

国内用户安装会很慢,我也没办法…

测试

  1. ebook-convert test.txt calibre-test.pdf

查看calibre-test.pdf文件中的中文字符是否会出现乱码

安装 imagemagick

作用:将svg转png,主要是用在文档封面上。

安装

  1. apt install imagemagick

测试
输入如下命令,显示版本号,即表示安装成功:

  1. convert --version

[非必需]安装 svgo

作用:去除svg文件中的多余字符,减小svg体积

这个是一个node模块,需要node环境…

  1. apt install -y nodejs-legacy npm && npm install -g svgo

测试

输入svgo命令,显示如下内容,即表示安装成功。

  1. Usage:
  2. svgo [OPTIONS] [ARGS]
  3. Options:
  4. -h, --help : Help
  5. -v, --version : Version
  6. -i INPUT, --input=INPUT : Input file, "-" for STDIN
  7. -s STRING, --string=STRING : Input SVG data string
  8. -f FOLDER, --folder=FOLDER : Input folder, optimize and rewrite all *.svg files
  9. -o OUTPUT, --output=OUTPUT : Output file or folder (by default the same as the input), "-" for STDOUT
  10. -p PRECISION, --precision=PRECISION : Set number of digits in the fractional part, overrides plugins params
  11. --config=CONFIG : Config file or JSON string to extend or replace default
  12. --disable=DISABLE : Disable plugin by name
  13. --enable=ENABLE : Enable plugin by name
  14. --datauri=DATAURI : Output as Data URI string (base64, URI encoded or unencoded)
  15. --multipass : Enable multipass
  16. --pretty : Make SVG pretty printed
  17. --indent=INDENT : Indent number when pretty printing SVGs
  18. -q, --quiet : Only output error messages, not regular status messages
  19. --show-plugins : Show available plugins and exit
  20. Arguments:
  21. INPUT : Alias to --input
  22. OUTPUT : Alias to --output

安装supervisor

作用:将程序加入系统守护进程

安装命令:

  1. apt install supervisor

判断是否安装成功:

  1. supervisord --version

显示版本号,即表示安装成功。

supervisor主要用于将程序加入到系统守护进程

Supervisord 安装完成后有两个可用的命令行 supervisord 和 supervisorctl,命令使用解释如下:

  • supervisord,初始启动 Supervisord,启动、管理配置中设置的进程。
  • supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为 [program:beepkg] 里配置的值,这个示例就是 beepkg。
  • supervisorctl start programxxx,启动某个进程
  • supervisorctl restart programxxx,重启某个进程
  • supervisorctl stop groupworker: ,重启所有属于名为 groupworker 这个分组的进程(start,restart 同理)
  • supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
  • supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
  • supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

下载安装和部署程序

DocHub 程序源码托管在 Gitee 和 GitHub,地址:

然而我们的程序部署,并不需要用源码进行部署,因为 DocHub 采用的是 Go 语言进行开发的程序,直接使用编译好的程序进行部署即可。

程序下载地址:
https://gitee.com/truthhun/DocHub/releases

下载 DocHub.V2.1_linux_amd64.zip 文件,即DocHub v2.1 版本,Linux 64位系统程序。

将程序解压到你想要的目录,如:

  1. /www/wwwroot/dochub

解压后的目录结构,应该如下:

  1. - DocHub - DocHub 可执行程序
  2. - LICENSE - 开源协议
  3. - conf - 配置文件目录,里面有个`app.conf.example`文件
  4. - dictionary - 分词字典,用于自动分词
  5. - static - 静态资源目录,存放CSSJs和图片等静态资源
  6. - views - 模板目录,里面存放HTML模板文件
  7. - zoneinfo.zip - 时区文件,一般可以不用理会

进入/www/wwwroot/dochub,运行如下命令启动程序:

  1. ./DocHub

程序默认监听8090端口,访问如下地址:

  1. http://ip:8090

程序自动跳转到安装页面,输入数据库配置即可安装成功。

或者直接命名conf目录下的app.conf.example文件为app.conf,然后根据提示修改数据库配置,启动程序后即可安装成功。

管理后台地址:

  1. http://ip:8090/admin

默认的管理员账号、密码、验证码:

  1. 账号:admin
  2. 密码:admin
  3. 验证码:芝麻开门

注意:初始化数据是写在程序内部的,不需要额外的SQL文件导入数据,每当程序启动,都会先检测是否已经初始化,如果数据已经初始化,则不会再初始化。

重要
安装完成之后,进入管理后台 > 系统设置

  • 邮箱设置 - 必须要设置,否则用户无法注册。
  • OSS设置 - 必须设置,否则无法存储上传的文档和图片等。

其他设置,自己看着办,自定义设置。

收尾工作

将DocHub 加入系统守护进程

走完了以上的不走,程序算是安装部署完毕,但是为了让程序稳健运行,需要把程序通过supervisor加入到系统守护进行。

1、进入supervisor的配置目录

  1. cd /etc/supervisor/conf.d/

2、配置守护进程
创建dochub.conf文件,并配置。

  1. [program:dochub]
  2. directory = 您的程序目录
  3. command =您的程序执行命令
  4. autostart = true
  5. autorestart=true
  6. user = 启动该程序的用户
  7. redirect_stderr = true
  8. stdout_logfile = 日志地址

配置示例:

  1. [program:dochub]
  2. directory = /www/wwwroot/www.dochub.me
  3. command =/www/wwwroot/www.dochub.me/DocHub
  4. autostart = true
  5. autorestart=true
  6. user = root
  7. redirect_stderr = true
  8. stdout_logfile = /var/log/supervisor/dochub.log

配置完成之后,重启supervisor

  1. supervisorctl reload

配置反向代理

您可以使用通过Apache或者Nginx设置反向代理,具体请参考:

写在最后

如果您觉得DocHub不错,可以扫一下下方的二维码,对项目进行赞助:

支付宝二维码

微信二维码


最后的最后,当前教程已经详细的不能再详细了,如果您最终还是没办法部署成功,那么,请找我收费代部署。