|
Golang源码类似百度文库、新浪爱问文库的开源文库系统
使用 Golang 开发的类似百度文库、新浪爱问文库的开源文库系统,支持 TXT、PDF、EPUB、MOBI、Office 等格式文档的在线预览与管理,为 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+
目录结构部分目录,在程序运行时自动生成,不需要手动创建
- .
- ├── LICENSE # 开源协议
- ├── Makefile # 编译脚本
- ├── README.md # 项目说明
- ├── api # proto api, API协议定义
- ├── app.example.toml # 配置文件示例,需要复制为 app.toml
- ├── biz # 业务逻辑层,主要处理业务逻辑,实现api接口
- ├── cmd # 命令行工具
- ├── cache # 缓存相关
- ├── conf # 配置定义
- ├── dict # 结巴分词字典,用于给文档自动进行分词
- ├── docs # API文档等
- ├── documents # 用户上传的文档存储目录
- ├── go.mod # go依赖管理
- ├── go.sum # go依赖管理
- ├── main.go # 项目入口
- ├── middleware # 中间件
- ├── model # 数据库模型,使用gorm对数据库进行操作
- ├── release # 版本发布生成的版本会放到这里
- ├── service # 服务层,衔接cmd与biz
- ├── sitemap # 站点地图
- ├── third_party # 第三方依赖,主要是proto文件
- ├── uploads # 文档文件之外的其他文件存储目录
- └── util # 工具函数
复制代码
app.toml
- # 程序运行级别:debug、info、warn、error
- level="debug"
- # 日志编码方式,支持:json、console
- logEncoding="console"
- # 后端监听端口
- port="8880"
- # 数据库配置
- [database]
- driver="mysql"
- dsn="root:root@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true"
- # 生产环境,请将showSQL设置为false
- showSQL=true
- maxOpen=10
- maxIdle=10
- # jwt 配置
- [jwt]
- secret="moredoc"
- expireDays=365
复制代码 初始化后端初始化 - # 安装go依赖
- go mod tidy
- # 初始化工程依赖
- make init
- # 编译proto api
- make api
- # 修改 app.toml 文件配置
- cp app.example.toml app.toml
- # 编译后端
- go build -o moredoc main.go
- # 初始化数据库结构
- ./moredoc syncdb
- # 运行后端(可用其他热编译工具),监听8880端口
- go run main.go serve
复制代码前端初始化 - # 切换到web目录
- cd web
- # 安装依赖
- npm install
- # 运行前端,监听3000端口,浏览器访问 http://localhost:3000
- npm run dev
复制代码 管理员初始账号密码
发布版本以下为示例 - # 打标签
- git tag -a v1.0.0 -m "release v1.0.0"
- # 推送标签
- git push origin v1.0.0
- # 编译前端
- cd web && npm run generate
- # 编译后端,编译好了的版本会放到release目录下
- # 编译linux版本(Windows版本用 make buildwin)
- make buildlinux
复制代码
Golang源码类似百度文库、新浪爱问文库的开源文库系统
Golang源码类似百度文库、新浪爱问文库的开源文库系统
Golang源码类似百度文库、新浪爱问文库的开源文库系统
Golang源码类似百度文库、新浪爱问文库的开源文库系统
Golang源码类似百度文库、新浪爱问文库的开源文库系统
Golang源码类似百度文库、新浪爱问文库的开源文库系统
游客,本帖隐藏的内容需要积分高于 2 才可浏览,您当前积分为 0 提取码下载:
|
|