moredoc魔豆文库系统搭建ubuntu

系统:ubuntu:20.04
软件:moredoc-ce:3.2.0

根据官方手册进行安装
https://www.bookstack.cn/read/moredoc/install-linux.md

安装calibre

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

安装 imagemagick

sudo apt install imagemagick

安装libreoffice

# 如果要安装最新版本,则添加libreoffice官方源。建议安装最新版!
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt install libreoffice
# 安装中文字体,避免可能出现的字体乱码
sudo apt install ttf-wqy-zenhei fonts-wqy-microhei

安装mupdf

sudo apt install mupdf mupdf-tools
安装配置完成之后,执行如下命令,正常输出信息即表示安装成功:
mutool --help

安装 inkscape

sudo add-apt-repository ppa:inkscape.dev/stable
sudo apt update
sudo apt install inkscape
查看版本,确认已安装正确
inkscape --version

MySQL安装及问题处理

ubuntu更新系统

apt update
apt upgrade -y

安装MySQL

apt install -y mysql-server
apt install -y libmysqlclient-dev

启动MySQL

systemctl start mysql
systemctl enable mysql
systemctl status mysql

设置root密码

mysql -u root -p
默认密码为空
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;

修改mysql配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

添加一行:
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

修改mysql认证方式,切换到 mysql_native_password 插件:

mysql -u root
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

如果显示 auth_socket 插件,则需要更改为 mysql_native_password 插件。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;

重新配置 root 权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

重启mysql
systemctl restart mysql

下载安装moredoc

下载moredoc, moredoc_ce_xxx 表示社区版,
Gitee: https://gitee.com/mnt-ltd/moredoc/releases

cd /opt
mkdir moredoc
cd moredoc
wget https://gitee.com/mnt-ltd/moredoc/releases/download/v3.2.0/moredoc_ce_v3.2.0_linux_amd64.tar.gz
tar -zxvf moredoc_ce_v3.2.0_linux_amd64.tar.gz

创建数据库

mysql -u root -p
CREATE DATABASE IF NOT EXISTS moredoc DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
show databases;

初始化数据

将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="moredocsecret"
    # 用户jwt签名有效期,这里配置为365天
    expireDays=365

执行如下命令,以初始化数据库:

./moredoc syncdb

如果有以下错误,可以忽略

"Error 1146: Table 'moredoc.mnt_user' doesn't exist"

如果执行./moredoc syncdb不成功,删除已有数据库,再重新生成数据库后运行命令

DROP DATABASE IF EXISTS moredoc;

启动程序

./moredoc serve

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

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

管理员:admin
密码:mnt.ltd

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

安装supervisor(可以不用安装使用守护程序,每次重启ubuntu后,需要手动启动moredoc)

sudo apt install supervisor

在目录 /etc/supervisor/conf.d 下面新建配置文件 vim moredoc.conf

[program:moredoc]
# 程序所在目录
directory =/opt/moredoc
# 启动命令
command =/opt/moredoc/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

给程序根目录添加权限

sudo chmod g+w moredoc/
sudo chmod o+w moredoc/
posted @ 2025-01-14 13:50  红妹妹  阅读(261)  评论(0)    收藏  举报