如何基于CentOS部署docHub?

Linux基础
2

1 基础知识

1.1 软件的简介

– DocHub实现百度文库类似的功能
– DocHub是一个使用Go语言开发的开源项目

1.2 实现原理

– DocHub文库通过svg矢量图实现文档在线阅读
– DocHub文库会经过两次格式转换(office –> pdf –> svg)

1.3 项目的特点

– SVG矢量实现相对有放大不失真的特点
– SVG矢量实现相对尺寸更小
– SVG矢量实现相对压缩比例更高
– SVG矢量实现相对速度更快

2 最佳实践

2.1 安装前的准备

2.1.1 准备系统

OS = CentOS 8.1 x86_64
ip address = 10.168.0.100
host name = any

2.1.2 下载源代码

wget https://github.com/TruthHun/DocHub/releases/download/v2.4/DocHub.V2.4_linux_amd64.zip

其他版本请从以下链接下载,
https://gitee.com/truthhun/DocHub/releases

2.1.4 安装所需的软件包

yum install -y unzip

2.2 安装数据库

2.2.1 安装所需的软件包

yum install -y mariadb-server mariadb

2.2.2 启动服务并设置自启动

systemctl start mariadb.service
systemctl enable mariadb.service

另外,其他控制服务的命令请参阅以下命令,

systemctl stop mariadb.service
systemctl restart mariadb.service
systemctl status mariadb.service

2.2.3 初始化数据库

mysql_secure_installation

向导如下,

[...]
Set root password? [Y/n] y
New password:******
Re-enter new password:******
[...]
Remove anonymous users? [Y/n] y
[...]
Disallow root login remotely? [Y/n] n
[...]
Remove test database and access to it? [Y/n] y
[...]
Reload privilege tables now? [Y/n] y
[...]

2.2.4 登录并创建应用所需的库

mysql -uroot -p
create database dochub character set utf8;
grant all privileges on dochub.* to "dochub"@"localhost" identified by "dochubpwd";

注:以上创建的数据库与用户名密码用于后面的配置

2.3 安装依赖的软件包

2.3.1 安装Libreoffice

yum install -y wqy-unibit-fonts wqy-microhei-fonts libreoffice*

安装完成后,请使用如下命令测试转换,

soffice --headless --invisible --convert-to pdf example.doc

注:文档要求包含中英文

2.3.2 安装Calibre

由于考虑到安装的复杂程度,所以该安装由专门的章节处理,
https://www.cmdschool.org/archives/9726
安装完成后,请使用如下命令测试转换,

useradd dochub
su - dochub
ebook-convert example.txt example.pdf

2.3.3 安装pdf2svg

如你不知道如何部署,可参阅以下文档部署pdf2svg,
https://www.cmdschool.org/archives/9670
安装完成后,请使用如下命令测试转换,

pdf2svg example.pdf example-no1.svg

2.3.4 安装ImagerMagick

yum install -y ImageMagick

另外,也可以使用编译的安装方式,
https://www.cmdschool.org/archives/2795
安装完毕后,请使用如下命令检查,

convert --version

2.4 部署软件包

2.4.1 创建部署目录

mkdir /usr/dochub

2.4.2 部署软件包到目录

unzip DocHub.V2.4_linux_amd64.zip -d /usr/dochub/
chmod +x /usr/dochub/DocHub

2.4.3 手动启动程序

cd /usr/dochub/
./DocHub

按下【Ctrl+C】结束程序,另外你可以使用如下命令确认软件启动,

netstat -antp | grep -i dochub

可见如下显示,

tcp6       0      0 :::8090                 :::*                    LISTEN      2339/DocHub

如需结束程序,可使用如下命令,

kill 2 `pgrep -uroot DocHub`

2.4.4 配置服务控制

vim /lib/systemd/system/dochub.service

加入如下命令,

[Unit]
Description=docHub manager
After=mariadb.service
Documentation=https://github.com/TruthHun/DocHub

[Service]
Type=forking
ExecStart=/bin/sh -c 'cd /usr/dochub; ./DocHub &'
ExecStop=/bin/sh -c 'kill 2 `pgrep -u root DocHub`'
Restart=on-success

[Install]
WantedBy=multi-user.target

配置完成后,可使用如下命令重载服务控制脚本,

systemctl daemon-reload

用如下命令控制服务,

systemctl start dochub.service
systemctl status dochub.service
systemctl stop dochub.service
systemctl restart dochub.service

另外,请使用人如下命令设置服务自启动,

systemctl enable dochub.service

2.4.5 链接数据库

http://10.168.0.100:8090

2.4.6 管理员登录

http://10.168.0.100:8090/admin

注:默认的用户名与密码都是“admin”

2.4.7 配置SMTP


如上图所示,
单击【系统设置】->【邮箱设置】
填写smtp的配置信息,包括“主机”、“端口”、“用户名”、“密码”等信息
单击【提交更改】即可完成SMTP配置

2.5 连接私有云存储MinIO

2.5.1 准备私有云存储

如果你尚未部署私有云存储MinIO,请按如下向导部署(本范例使用单节点部署),
https://www.cmdschool.org/archives/9450

2.5.2 创建公共可读Bucket


如上图所示,
单击【+】->【Create Bucket】
弹出窗口中填写“dochub-public”
按【Enter】即可创建公共可读Bucket

如上图所示,
单击【dochub-public】菜单->【Edit policy】
窗口显示如下,

如上图所示,
单击【Add】即可添加Read Only权限

2.5.3 创建私有Bucket


如上图所示,
单击【+】->【Create Bucket】
弹出窗口中填写“dochub-private”
按【Enter】即可创建私有Bucket

2.5.4 配置云存储的连接


如上图所示,
填写存储连接的参数并单击【提交更改】即可完成存储参数定义

2.5.5 启用本地云存储MinIO


如上图所示,
存储类型选择“Minio(本地云存储)”
其他参数根据实际需求定义并单击【提交更改】即可完定义

参阅文档
============================

连接存储
————-
https://www.bookstack.cn/read/dochub/install-linux.md

github
————-
https://github.com/TruthHun/DocHub

demo
————-
https://www.wenkuzhijia.cn/

install
————–
https://www.bookstack.cn/read/dochub/install

实现原理与功能特点
————–
https://github.com/TruthHun/DocHub/#%E5%8A%9F%E8%83%BD%E7%89%B9%E7%82%B9

首先,谢谢作者的无私分享。对于我们这些小白来说十分感谢你的分享。
如果可以的话,作者可以出一份BookStack部署在centos上的吗,网上虽然有一些,但是照着做总是出错。
小白完全没办法。
如果出了,我们会帮你宣传下的。

非常感谢!

感谢支持,你是第一个跟我约稿的人。O(∩_∩)O哈哈~
我的笔记也是基于工作需求,如果有时间我会测试BookStack并邮件通知你。谢谢!

2条评论

发表评论

Linux基础
如何二进制部署Metabase?

1 基础知识 1.1 Metabase的简介 – Metabase是一款简单、开源商业智 …

Linux基础
如何熟悉跨站点攻击CSRF?

1 CSRF的概念 – CSRF是英文“Cross-site request forge …

Linux基础
如何安装配置Oracle客户端?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境有一台服务器需要连接Oracle数据库,于是整 …