魔豆文库

MOREDOC - 魔豆文库

moredoc - 魔豆文库,由 深圳市摩枫网络科技(Morefun Network Technology Co., Ltdhttps://mnt.ltd ) 使用 Golang 开发的类似百度文库新浪爱问文库的开源文库系统解决方案,支持 TXTPDFEPUBMOBIOffice 等格式文档的在线预览与管理,为 dochub文库( github, gitee )的重构版本。

技术栈

  • Golang :gin + gRPC + GORM
  • Vue.js : nuxt2 + element-ui
  • Database : MySQL 5.7

开源地址

使用手册

关于魔豆文库安装部署以及使用和二次开发等更详细的教程,详见书栈网《魔豆文库使用手册》

演示站点

演示站点,每天凌晨 1:00 ~ 6:00,每隔一小时重置一次全部数据

微信交流群

魔豆文库微信交流群,请添加进击的皇虫的微信,备注魔豆文库加群,以便进群。

微信二维码

魔豆文库微信交流群

页面预览

首页

index.png

列表页

魔豆文库列表页

文档详情页

魔豆文库文档详情页

文档上传页

魔豆文库文档上传页

搜索结果页

魔豆文库搜索结果页

管理后台

魔豆文库管理后台

二次开发

除了文件上传相关的接口,其他接口统一使用 proto 进行定义。

环境要求

  • Golang 1.18+
  • Node.js 14.16.0 (可用 nvm 管理)
  • MySQL 5.7+

请自行配置相应环境。如在此过程中遇到错误,请根据错误提示自行通过 Google 或者百度解决。

目录结构

部分目录,在程序运行时自动生成,不需要手动创建

  1. .
  2. ├── LICENSE # 开源协议
  3. ├── Makefile # 编译脚本
  4. ├── README.md # 项目说明
  5. ├── api # proto api, API协议定义
  6. ├── app.example.toml # 配置文件示例,需要复制为 app.toml
  7. ├── biz # 业务逻辑层,主要处理业务逻辑,实现api接口
  8. ├── cmd # 命令行工具
  9. ├── cache # 缓存相关
  10. ├── conf # 配置定义
  11. ├── dict # 结巴分词字典,用于给文档自动进行分词
  12. ├── dist # 前端打包后的文件
  13. ├── docs # API文档等
  14. ├── documents # 用户上传的文档存储目录
  15. ├── go.mod # go依赖管理
  16. ├── go.sum # go依赖管理
  17. ├── main.go # 项目入口
  18. ├── middleware # 中间件
  19. ├── model # 数据库模型,使用gorm对数据库进行操作
  20. ├── release # 版本发布生成的版本会放到这里
  21. ├── service # 服务层,衔接cmd与biz
  22. ├── sitemap # 站点地图
  23. ├── third_party # 第三方依赖,主要是proto文件
  24. ├── uploads # 文档文件之外的其他文件存储目录
  25. ├── util # 工具函数
  26. └── web # 前端Web

app.toml

  1. # 程序运行级别:debug、info、warn、error
  2. level="debug"
  3. # 日志编码方式,支持:json、console
  4. logEncoding="console"
  5. # 后端监听端口
  6. port="8880"
  7. # 数据库配置
  8. [database]
  9. driver="mysql"
  10. dsn="root:root@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true"
  11. showSQL=true
  12. maxOpen=10
  13. maxIdle=10
  14. # jwt 配置
  15. [jwt]
  16. secret="moredoc"
  17. expireDays=365

初始化

后端初始化

  1. # 安装go依赖
  2. go mod tidy
  3. # 初始化工程依赖
  4. make init
  5. # 编译proto api
  6. make api
  7. # 修改 app.toml 文件配置
  8. cp app.example.toml app.toml
  9. # 编译后端
  10. go build -o moredoc main.go
  11. # 初始化数据库结构
  12. ./moredoc syncdb
  13. # 运行后端(可用其他热编译工具),监听8880端口
  14. go run main.go serve

前端初始化

  1. # 切换到web目录
  2. cd web
  3. # 安装依赖
  4. npm install
  5. # 运行前端,监听3000端口,浏览器访问 http://localhost:3000
  6. npm run dev

管理员初始账号密码

  1. admin
  2. mnt.ltd

发布版本

以下为示例

  1. # 打标签
  2. git tag -a v1.0.0 -m "release v1.0.0"
  3. # 推送标签
  4. git push origin v1.0.0
  5. # 编译前端
  6. cd web && npm run generate
  7. # 编译后端,编译好了的版本会放到release目录下
  8. # 编译linux版本(Windows版本用 make buildwin)
  9. make buildlinux

License

开源版本基于 Apache License 2.0 协议发布。

鸣谢

感谢各开源项目为魔豆文库的开发奠定了基础。相关开源项目,后端依赖,详见 go.mod;前端依赖,详见 web/package.json

魔豆文库 Logo 使用 标小智 logosc.cn 付费生成,效果不错,感谢。