安装简要总结
- 魔豆文库对文档的处理,依赖
calibre
、libreoffice
、mupdf
,在ubuntu下,也就是几个apt install xxx
的事情- 系统守护进程,可自行根据自身需要选择
pm2
或者supervisor
- 数据库选择
MySQL 5.7
- 魔豆文库在配置好了配置文件
app.toml
,通过moredoc syncdb
初始化数据库;通过moredoc serve
启动文库服务- 注意:不要用root用户部署和运行魔豆文库,因为root用户,运行libreoffice和calibre时,会报sandbox的告警和错误,导致文档转换失败!
安装环境依赖
安装calibre
calibre用于将epub、mobi等文档转为PDF,需要安装 3.x 或以上的版本
方式1
当前大多数Ubuntu系统,已可以通过apt
直接安装,如下:
sudo apt update
sudo apt install calibre
# 查看calibre版本,如果是3.x以上的版本,则安装正确,否则用方式2进行安装
ebook-convert --version
方式2
详细安装教程(中文)见: https://calibre-ebook.com/zh_CN/download_linux
安装命令:
sudo -v && wget --no-check-certificate -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin
如果报错误提示:
Your system has GNU libc version 2.27. The calibre binaries require at least version: 2.31 (released on 2020-02-01). Update your system.
则建议升级操作系统到 ubuntu 20.04 或以上版本。或者也可以下载编辑 glibc 升级到 2.31 版本:
其他错误提示,则按下方提示解决:
安装 imagemagick
魔豆文库 v2.1 版本开始,支持选择文档预览方式,用png、svg和jpg等,因此需要imagemagick对文档转换的处理。
sudo apt update
sudo apt install imagemagick
安装libreoffice
libreoffice 用于将office文档转为PDF
详细安装教程见之前 dochub 文库中 libreoffice 依赖的安装: https://www.bookstack.cn/read/dochub/env-libreoffice.md
安装命令:
# 如果要安装最新版本,则添加libreoffice官方源。建议安装最新版!
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt install libreoffice
# 安装中文字体,避免可能出现的字体乱码
sudo apt install ttf-wqy-zenhei fonts-wqy-microhei
安装mupdf
mupdf 工具主要是用于将PDF转为 png 和 svg 图片以便提供文档预览,将PDF转为svg等,比pdf2svg效率更高
安装命令:
sudo apt install mupdf mupdf-tools
安装配置完成之后,执行如下命令,正常输出信息即表示安装成功:
mutool --help
安装 inkscape
Inkscape是一个自由开源的矢量图形编辑器。在mupdf处理PDF出现兼容问题失败时,自动切换inkscape来处理。
需要安装 v1.2
或以上版本
sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt update
sudo apt install inkscape
查看版本,确认已安装正确
inkscape --version
安装教程,详见:https://inkscape.org/release/
安装supervisor
安装命令:
sudo apt install supervisor
supervisor程序守护进行配置示例:
[program:moredoc]
# 环境变量示例
environment=soffice=/opt/libreoffice7.4/program/soffice
# 程序所在目录
directory =/home/ubuntu/moredoc/moredoc.mnt.ltd
# 启动命令
command =/home/ubuntu/moredoc/moredoc.mnt.ltd/moredoc serve
autostart = true
autorestart=true
redirect_stderr = true
stdout_logfile_maxbytes=100MB
stdout_logfile = /var/log/supervisor/moredoc-stdout.log
stderr_logfile = /var/log/supervisor/moredoc-stderr.log
stderr_logfile_maxbytes=100MB
# 对程序目录有读写权限的用户来运行程序。注意,不能是root用户,因为root用户,运行libreoffice和calibre时,会报sandbox的告警和错误!
user=ubuntu
安装MySQL
略.
魔豆文库支持支持 MySQL 5.7 和 8.x
下载魔豆文库
moredoc_ce_xxx
表示社区版,moredoc_pro_xxx
表示普惠版。
从开源仓库releases下,找到最新版本相应系统的程序进行下载放到相应位置。
- Gitee: https://gitee.com/mnt-ltd/moredoc/releases
- Github: https://github.com/mnt-ltd/moredoc/releases
下载下来之后,解压,程序目录如下:
app.example.toml # 配置文件示例
dist # 前端
moredoc # 可执行程序
注意:程序所安装部署放置的目录,需要当前Linux用户拥有读写权限,以避免出现没法生成相应缓存目录和索引目录等情况。
创建数据库
登录MySQL数据库,创建魔豆文库数据库,这里演示以moredoc
作为数据库名称来创建数据库。
SQL
CREATE DATABASE IF NOT EXISTS moredoc DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
注意: 从
v1.1.0
版本开始,配置文件中的数据库账号密码配置对了,且有权限创建数据库,则程序将会根据配置自动创建数据库!
初始化数据
将app.example.toml
重命名为 app.toml
,并修改配置:
配置示例
# 程序运行级别:debug、info、warn、error。
# 调试模式下用debug,生产环境下可用info
level="debug"
# 服务监听端口
port="8880"
# 数据库
[database]
# 此处不要动,当前只支持MySQL
driver="mysql"
# 示例这里,以数据库账号密码均为root来进行配置
dsn="root:root@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true"
# 运行时是否输出执行的SQL。生产环境设置为false
showSQL=false
# 以下两个数值是访问MySQL时最大打开连接数和空闲连接数
maxOpen=10
maxIdle=10
# jwt配置,用户登录时信息加密使用
[jwt]
# 加密密钥,【务必修改】为其他任意字符串
secret="moredoc"
# 用户jwt签名有效期,这里配置为365天
expireDays=365
以上信息配置正确之后,执行如下命令,以初始化数据库:
./moredoc syncdb
启动程序
执行如下命令,启动程序:
./moredoc serve
按照上述app.toml
的配置,这里可以访问8880端口打开服务: http://ip:8880
然后再登录入口登录初始管理员,账号密码分别为:
管理员:admin
密码:mnt.ltd
登录之后,右上角下拉菜单可以看到管理后台入口
进入管理后台之后,面板
处还可以看到需要安装哪些依赖以及依赖是否安装正确。
程序配置
为使程序能正常运行,请进行基础配置。
系统设置
请按照提示,在系统设置
中对各项配置进行设置。
横幅配置
横幅可以让首页看起来更简洁美观,建议设置两个或以上的横幅。首页会自动适应横幅图片尺寸进行展示。
文档分类配置
在文档管理
-> 分类管理
下新增文档分类,所有上传的文档都需要进行归类。
权限控制
在用户管理
->角色管理
下,新增和配置用户角色以及授权,指定默认的用户组、哪些用户可以上传文档等。
注意: 请对
超级管理员
的后台权限
全部勾选,以避免添加其他用户为超级管理员时新加的用户没法登录后台。
系统守护进程
1、进入supervisor的配置目录
cd /etc/supervisor/conf.d/
2、配置守护进程
注意:运行程序的Linux用户需要有
home
目录!!!比如使用宝塔环境时的www
这个用户,是没有/home/www
这个根目录的,这时候用这个用户通过libreoffice
处理文档的时候就会出现失败的情况,因为libreoffice
需要在当前用户的home
目录下生成临时缓存。
创建moredoc.conf
文件,并配置,示例如下:
[program:moredoc]
directory = /home/truthhun/moredoc
command =/home/truthhun/moredoc/moredoc serve
autostart = true
autorestart=true
stdout_logfile_maxbytes=100MB
stdout_logfile = /var/log/supervisor/moredoc-stdout.log
stderr_logfile_maxbytes=100MB
stderr_logfile = /var/log/supervisor/moredoc-stderr.log
user=truthhun
配置完成之后,更新加载配置
[sudo] supervisorctl update
反向代理与SSL证书配置
示例,仅供参考:
server
{
listen 80;
listen 443 ssl http2;
server_name moredoc.mnt.ltd;
ssl_certificate /home/moredoc/moredoc.mnt.ltd/fullchain.pem;
ssl_certificate_key /home/moredoc/moredoc.mnt.ltd/privkey.pem;
# http 跳转 https
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
# 反向代理
location / {
proxy_pass http://127.0.0.1:8880;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
}