简介:
魔豆文库(moredoc)是一套使用 Golang 语言开发的类似百度文库、新浪爱问文库的开源文库系统,支持 TXT、PDF、EPUB、MOBI、Office 等格式文档的在线预览与管理,为 dochub文库的重构版本。
技术栈
后端:Golang(gin + gRPC + GORM)
前端:Vue.js ( nuxt2 + element-ui)
数据库 : MySQL 5.7
演示系统:
宝塔面板 CentOS 7.6.1810 x86_64(Py3.7.9)
一、安装go环境
1、前往go官网下载环境文件,下载地址:https://golang.google.cn/dl/
2、将文件上传到 /www/server 目录,然后解压
cd /www/server tar -xzvf go1.21.2.linux-amd64.tar.gz
3、打开编辑/etc/profile文件,在最后添加如下代码:
export GOROOT=/www/server/go export GOBIN=$GOROOT/bin export GOPKG=$GOROOT/pkg/tool/linux_amd64 export GOARCH=amd64 export GOOS=linux export GOPATH=/www/wwwroot/Golang export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin
4、添加保存之后,在SSH终端使用如下命令使其生效:
source /etc/profile
5、使用以下命令检测下go环境是否安装成功
go version
二、下载源码
下载地址:https://gitee.com/mnt-ltd/moredoc
1、将下载的源码上传到宝塔面板www/wwwroot目录,并解压,文件夹名改为doc
2、打开/www/wwwroot/doc/app.example.toml文件,修改里面的数据库配置
3、在SSH终端使用以下命令添加权限
cd /www/wwwroot chmod +x doc
三、后端初始化(编译)
1、在SSH终端使用以下命令设置golang代理(修改环境变量)
export GO111MODULE=on export GOPROXY=https://goproxy.cn
或者
echo "export GO111MODULE=on" >> ~/.profile echo "export GOPROXY=https://goproxy.cn" >> ~/.profile source ~/.profile
2、进入目录,安装go依赖
cd /www/wwwroot/doc go mod tidy
3、初始化工程依赖
make init
4、编译proto api
make api
5、修改 app.toml 文件配置
cp app.example.toml app.toml
6、编译后端
go build -o moredoc main.go
7、初始化数据库结构(自动创建数据库和数据表)
./moredoc syncdb
说明:我安装的是V1.6版本,一共有25张数据表,如果你的数据表数量少于25,可能是因为数据库问题,导致创建失败了。
8、运行后端
网站 → Go项目 → 添加Go项目 → 选择执行文件和设置端口号
执行命令如下:
./moredoc serve
四、前端初始化
1、安装PM2管理器
软件商店 → 搜索“PM2管理器”并安装,Node版本切换到v16.14.0
1、切换到web目录,并安装依赖
cd /www/wwwroot/doc/web npm install
2、打包项目
npm run build
3、PM2管理器 → 项目列表 → 添加项目,按照如下设置:
4、添加好项目后,在项目右侧菜单点击”映射“,添加一个域名用来访问站点
5、通过浏览器访问我们刚才添加的域名
可以看到访问成功了,也可以正常登录,能正常登录账号,说明和后端的接口连通也是ok的。
五、默认管理员
或者 http://你的服务器外网IP:3000
账号:admin
密码:mnt.ltd
六、环境安装
-
calibre是一个自由开源的电子书软件套装,用于将epub、mobi等电子书转为pdf;
-
MuPDF是一款以C语言编写的自由及开放源代码软件库,是PDF和XPS解析和渲染引擎,用于将PDF转为svg、png等图片;
-
LibreOffice是由文档基金会开发的自由及开放源代码的办公套件,用于将office等文档转为pdf;
-
Inkscape是一个自由开源的矢量图形编辑器,在mupdf处理PDF出现兼容问题失败时,自动切换inkscape来处理;
1、安装 calibre
1.1 下载calibre-5.44.0版本,下载地址:https://download.calibre-ebook.com/5.44.0/calibre-5.44.0-x86_64.txz
1.2 在SSH终端查看当前系统的CXXABI版本号,如果CXXABI版本低于1.3.8,安装calibre时,会出现如下报错信息:
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8′ not found
报错解决方案请参考:/archives/172.html
1.3 将calibre-5.44.0-x86_64.txz上传到www/wwwroot目录,然后使用以下命令进行安装:
cd /www/wwwroot tar -xvf calibre-5.44.0-x86_64.txz -C /opt/calibre /opt/calibre/calibre_postinstall echo "export QT_QPA_PLATFORM='offscreen'" | tee /etc/profile.d/QT_QPA.sh export QTWEBENGINE_DISABLE_SANDBOX=1 source /etc/profile
1.4 检查版本
ebook-convert --version
2、安装mupdf
2.1首先是下载mupdf开源代码 https://mupdf.com/downloads/archive/mupdf-1.22.0-source.tar.gz
2.2 安装OpenGL库
sudo yum install mesa-libGLU mesa-libGLU-devel sudo yum install mesa-libGLU mesa-libGLU-devel sudo yum install freeglut freeglut-devel sudo yum install mesa-libGL-devel mesa-libGLU-devel freeglut-devel
2.3 安装libXtst库
sudo yum install libXtst-devel sudo yum install libXrandr-devel
2.4 上传刚才下载的mupdf-1.22.0-source.tar.gz文件到/www/wwwroot目录
2.5 解压和编译
tar -xvf mupdf-1.22.0-source.tar.gz cd /www/wwwroot/mupdf-1.22.0-source make && make install
2.6 创建软连接
cp -r release /usr/local/mupdf ln -s /usr/local/mupdf/mutool /usr/local/bin/mutool
3、安装LibreOffice
3.1 yum安装
yum install -y libreoffice
3.2 检查版本
libreoffice --version
4、安装 inkscape
4.1 yum安装
yum install -y inkscape
4.2 检测版本
inkscape --version
5、安装svgo
svgo是基于node.js的插件,所以需要先安装node.js,前面我们安装的PM2管理器已经自带node.js,因此不需要再安装,直接在SSH终端使用以下命令安装svgo:
npm install -g svgo
检测版本
svgo --version
6、处理中文乱码
(1)、下载下面的“字体.zip”,然后上传到usr/share目录,并解压
这个字体主要是解决“将文档转换为svg文件时会出现中文乱码,或者字体变成黑色大块”问题;
(2)、安装中文支持
yum install kde-l10n-Chinese
(3)、清理字体缓存并查询结果
cd /usr/share/fonts mkfontscale mkfontdir fc-cache -fv fc-list :lang=zh
请登录之后再进行评论