Golang源码类似百度文库、新浪爱问文库的开源文库系统

Golang源码类似百度文库、新浪爱问文库的开源文库系统
使用 Golang 开发的类似百度文库、新浪爱问文库的开源文库系统,支持 TXTPDFEPUBMOBIOffice 等格式文档的在线预览与管理,为 dochub文库的重构版本。
功能特征

  • 前后端分离
  • 注册登录以及密码找回
  • 支持横幅
  • 支持无限级分类
  • 文档批量上传
  • 支持回收站功能,删除的文档还可以恢复
  • 支持office、pdf、txt、epub、mobi等多种文档格式预览
  • 文档批量转换(普惠版)
  • 全文搜索(普惠版)

功能清单

  • 面板 个人资料 修改密码 退出登录
  • 文档管理 分类管理 文档列表 回收站
  • 用户管理 用户管理 角色管理 权限管理
  • 横幅管理
  • 单页管理
  • 友链管理
  • 评论管理
  • 举报管理
  • 附件管理
  • 系统设置


技术栈

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

二次开发

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

环境要求

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

目录结构

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

  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. ├── docs                    # API文档等
  13. ├── documents               # 用户上传的文档存储目录
  14. ├── go.mod                  # go依赖管理
  15. ├── go.sum                  # go依赖管理
  16. ├── main.go                 # 项目入口
  17. ├── middleware              # 中间件
  18. ├── model                   # 数据库模型,使用gorm对数据库进行操作
  19. ├── release                 # 版本发布生成的版本会放到这里
  20. ├── service                 # 服务层,衔接cmd与biz
  21. ├── sitemap                 # 站点地图
  22. ├── third_party             # 第三方依赖,主要是proto文件
  23. ├── uploads                 # 文档文件之外的其他文件存储目录
  24. └── util                    # 工具函数

复制代码




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设置为false
  12.     showSQL=true
  13.     maxOpen=10
  14.     maxIdle=10
  15. # jwt 配置
  16. [jwt]
  17.     secret=”moredoc”
  18.     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

复制代码

下载说明:
1.本站资源都是白菜价出售,同样的东西,我们不卖几百,也不卖几十,甚至才卖几块钱,一个永久会员能下载全站100%源码了,所以单独购买也好,会员也好均不提供相关技术服务。
2.如果源码下载地址失效请联系站长QQ进行补发。
3.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
4.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,由于源码具有复制性,一经售出,概不退换。用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,【安安资源网】对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
5.请您认真阅读上述内容,购买即以为着您同意上述内容,由于源码具有复制性,一经售出,概不退换。
安安资源网 » Golang源码类似百度文库、新浪爱问文库的开源文库系统