安装简要总结

  • 魔豆文库对文档的处理,依赖 calibrelibreofficemupdf,在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直接安装,如下:

  1. sudo apt update
  2. sudo apt install calibre
  3. # 查看calibre版本,如果是3.x以上的版本,则安装正确,否则用方式2进行安装
  4. ebook-convert --version

方式2

详细安装教程(中文)见: https://calibre-ebook.com/zh_CN/download_linux

安装命令:

  1. sudo -v && wget --no-check-certificate -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin

如果报错误提示:

  1. 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 版本:

其他错误提示,则按下方提示解决:

Linux ( Ubuntu )下安装部署 - 图1

安装 imagemagick

魔豆文库 v2.1 版本开始,支持选择文档预览方式,用png、svg和jpg等,因此需要imagemagick对文档转换的处理。

  1. sudo apt update
  2. sudo apt install imagemagick

安装libreoffice

libreoffice 用于将office文档转为PDF

详细安装教程见之前 dochub 文库中 libreoffice 依赖的安装: https://www.bookstack.cn/read/dochub/env-libreoffice.md

安装命令:

  1. sudo apt install libreoffice
  2. # 安装中文字体,避免可能出现的字体乱码
  3. sudo apt install ttf-wqy-zenhei fonts-wqy-microhei

安装mupdf

mupdf 工具主要是用于将PDF转为 png 和 svg 图片以便提供文档预览,将PDF转为svg等,比pdf2svg效率更高

安装命令:

  1. sudo apt install mupdf mupdf-tools

安装配置完成之后,执行如下命令,正常输出信息即表示安装成功:

  1. mutool --help

安装 inkscape

Inkscape是一个自由开源的矢量图形编辑器。在mupdf处理PDF出现兼容问题失败时,自动切换inkscape来处理。

需要安装 v1.2 或以上版本

  1. sudo add-apt-repository ppa:inkscape.dev/stable
  2. sudo apt update
  3. sudo apt install inkscape

查看版本,确认已安装正确

  1. inkscape --version

安装教程,详见:https://inkscape.org/release/

安装supervisor

安装命令:

  1. sudo apt install supervisor

supervisor程序守护进行配置示例:

  1. [program:moredoc]
  2. # 环境变量示例
  3. environment=soffice=/opt/libreoffice7.4/program/soffice
  4. # 程序所在目录
  5. directory =/home/ubuntu/moredoc/moredoc.mnt.ltd
  6. # 启动命令
  7. command =/home/ubuntu/moredoc/moredoc.mnt.ltd/moredoc serve
  8. autostart = true
  9. autorestart=true
  10. redirect_stderr = true
  11. stdout_logfile_maxbytes=100MB
  12. stdout_logfile = /var/log/supervisor/moredoc-stdout.log
  13. stderr_logfile = /var/log/supervisor/moredoc-stderr.log
  14. stderr_logfile_maxbytes=100MB
  15. # 对程序目录有读写权限的用户来运行程序。注意,不能是root用户,因为root用户,运行libreoffice和calibre时,会报sandbox的告警和错误!
  16. user=ubuntu

安装MySQL

略.

魔豆文库支持支持 MySQL 5.7 和 8.x

下载魔豆文库

moredoc_ce_xxx 表示社区版,moredoc_pro_xxx表示普惠版。

从开源仓库releases下,找到最新版本相应系统的程序进行下载放到相应位置。

下载下来之后,解压,程序目录如下:

  1. app.example.toml # 配置文件示例
  2. dist # 前端
  3. moredoc # 可执行程序

注意:程序所安装部署放置的目录,需要当前Linux用户拥有读写权限,以避免出现没法生成相应缓存目录和索引目录等情况。

创建数据库

登录MySQL数据库,创建魔豆文库数据库,这里演示以moredoc作为数据库名称来创建数据库。

SQL

  1. CREATE DATABASE IF NOT EXISTS moredoc DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

注意:v1.1.0版本开始,配置文件中的数据库账号密码配置对了,且有权限创建数据库,则程序将会根据配置自动创建数据库!

初始化数据

app.example.toml重命名为 app.toml,并修改配置:

配置示例

  1. # 程序运行级别:debug、info、warn、error。
  2. # 调试模式下用debug,生产环境下可用info
  3. level="debug"
  4. # 服务监听端口
  5. port="8880"
  6. # 数据库
  7. [database]
  8. # 此处不要动,当前只支持MySQL
  9. driver="mysql"
  10. # 示例这里,以数据库账号密码均为root来进行配置
  11. dsn="root:root@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true"
  12. # 运行时是否输出执行的SQL。生产环境设置为false
  13. showSQL=false
  14. # 以下两个数值是访问MySQL时最大打开连接数和空闲连接数
  15. maxOpen=10
  16. maxIdle=10
  17. # jwt配置,用户登录时信息加密使用
  18. [jwt]
  19. # 加密密钥,【务必修改】为其他任意字符串
  20. secret="moredoc"
  21. # 用户jwt签名有效期,这里配置为365天
  22. expireDays=365

以上信息配置正确之后,执行如下命令,以初始化数据库:

  1. ./moredoc syncdb

启动程序

执行如下命令,启动程序:

  1. ./moredoc serve

按照上述app.toml的配置,这里可以访问8880端口打开服务: http://ip:8880

然后再登录入口登录初始管理员,账号密码分别为:

  1. 管理员:admin
  2. 密码:mnt.ltd

登录之后,右上角下拉菜单可以看到管理后台入口

Linux ( Ubuntu )下安装部署 - 图2

进入管理后台之后,面板处还可以看到需要安装哪些依赖以及依赖是否安装正确。

Linux ( Ubuntu )下安装部署 - 图3

程序配置

为使程序能正常运行,请进行基础配置。

系统设置

请按照提示,在系统设置中对各项配置进行设置。

Linux ( Ubuntu )下安装部署 - 图4

横幅配置

横幅可以让首页看起来更简洁美观,建议设置两个或以上的横幅。首页会自动适应横幅图片尺寸进行展示。

Linux ( Ubuntu )下安装部署 - 图5

文档分类配置

文档管理-> 分类管理下新增文档分类,所有上传的文档都需要进行归类。

Linux ( Ubuntu )下安装部署 - 图6

权限控制

用户管理->角色管理下,新增和配置用户角色以及授权,指定默认的用户组、哪些用户可以上传文档等。

注意: 请对超级管理员后台权限全部勾选,以避免添加其他用户为超级管理员时新加的用户没法登录后台。

Linux ( Ubuntu )下安装部署 - 图7

系统守护进程

1、进入supervisor的配置目录

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

2、配置守护进程

注意:运行程序的Linux用户需要有home目录!!!比如使用宝塔环境时的www这个用户,是没有/home/www这个根目录的,这时候用这个用户通过libreoffice处理文档的时候就会出现失败的情况,因为libreoffice需要在当前用户的home目录下生成临时缓存。

创建moredoc.conf文件,并配置,示例如下:

  1. [program:moredoc]
  2. directory = /home/truthhun/moredoc
  3. command =/home/truthhun/moredoc/moredoc serve
  4. autostart = true
  5. autorestart=true
  6. stdout_logfile_maxbytes=100MB
  7. stdout_logfile = /var/log/supervisor/moredoc-stdout.log
  8. stderr_logfile_maxbytes=100MB
  9. stderr_logfile = /var/log/supervisor/moredoc-stderr.log
  10. user=truthhun

配置完成之后,更新加载配置

  1. [sudo] supervisorctl update

反向代理与SSL证书配置

示例,仅供参考:

  1. server
  2. {
  3. listen 80;
  4. listen 443 ssl http2;
  5. server_name moredoc.mnt.ltd;
  6. ssl_certificate /home/moredoc/moredoc.mnt.ltd/fullchain.pem;
  7. ssl_certificate_key /home/moredoc/moredoc.mnt.ltd/privkey.pem;
  8. # http 跳转 https
  9. if ($server_port !~ 443){
  10. rewrite ^(/.*)$ https://$host$1 permanent;
  11. }
  12. # 反向代理
  13. location / {
  14. proxy_pass http://127.0.0.1:8880;
  15. proxy_set_header Host $host;
  16. proxy_set_header X-Real-IP $remote_addr;
  17. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  18. proxy_set_header REMOTE-HOST $remote_addr;
  19. }
  20. }