DocHub v2.1 安装部署教程

    1. 当前教程为 Ubuntu 部署教程,使用的是 Ubuntu 16.04
    2. 镜像环境:

    3. 支持收费代部署,费用在300 ~ 800元/次
      需要800元/次的情况,一般出现在你什么东西都没准备好,双方的时间都浪费在了沟通而不是程序部署…
    4. 很多网友在问,为什么不支持文档本地化存储,个人坚决不支持本地化存储的理由如下:
      1. 云存储和CDN,目前已经是白菜价了.
      2. 不能纵容倒退的行为.
      3. 本地化存储,运维和迁移不方便.
      4. 我比较懒…
    5. 可能一些企业想要内部使用这套文库系统来管理企业内部文档,不过建议使用nextcloud开源程序,这套程序是一套PHP开发的开源网盘程序,使用Docker部署也很方便,程序实现了Office等文档在线预览。
    6. 演示站点:
    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
    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文件进行导入。

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

      DocHub v2.1 安装部署教程 - 图1

    安装环境依赖

    最好命令执行的时候,不需要添加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. apt install poppler-utils

    测试

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

    这个是一个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. --pretty : Make SVG pretty printed
    16. --indent=INDENT : Indent number when pretty printing SVGs
    17. -q, --quiet : Only output error messages, not regular status messages
    18. --show-plugins : Show available plugins and exit
    19. Arguments:
    20. INPUT : Alias to --input
    21. OUTPUT : Alias to --output

    安装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 语言进行开发的程序,直接使用编译好的程序进行部署即可。

    程序下载地址:

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

    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 = 日志地址

    配置示例:

    配置完成之后,重启supervisor

    1. supervisorctl reload

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

    写在最后

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

    支付宝二维码

    微信二维码

    DocHub v2.1 安装部署教程 - 图2


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