# system-module-server **Repository Path**: lets-go-fishing/system-module-server ## Basic Information - **Project Name**: system-module-server - **Description**: 系统模块管理服务 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-18 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # system-module-server ## 接口服务 [个人项目](https://system-design.apifox.cn/) ## 配置本地信息 conf.yaml 文件中,配置本地的 redis,MySQL 相关信息,然后再启动服务 ## 启动服务 1. go get 2. go install github.com/swaggo/swag/cmd/swag@latest 3. go install github.com/air-verse/air@latest 4. air ## API 文档 项目已集成 Swagger 自动文档生成功能,可通过以下方式访问: 1. 启动服务后访问 `http://localhost:[项目端口]/swagger/index.html` 查看 API 文档 2. 支持导入到 Apifox 进行管理,详细说明请查看 [API 文档指南](docs/README.md) ### 更新文档 当 API 发生变化时,运行以下命令重新生成文档: ```bash swag init -g cmd/api/main.go -o docs ``` ## 部署和构建 项目提供了两种方式进行构建、部署和生成 API 文档:shell 脚本和 Makefile。 ### 使用 deploy.sh 脚本 部署脚本提供了多种命令选项: ```bash # 编译 Windows 版本 ./scripts/deploy.sh build win # 编译 Linux 版本 ./scripts/deploy.sh build linux # 打包 Windows 版本 ./scripts/deploy.sh build package-win # 打包 Linux 版本 ./scripts/deploy.sh build package-linux # 打包所有平台版本 ./scripts/deploy.sh build package # 编译到自定义目录 ./scripts/deploy.sh build custom <目标目录> # 生成API文档 ./scripts/deploy.sh docs ``` ### 使用 Makefile 也可以使用 Makefile 进行构建和部署: ```bash # 编译 Windows 版本 make -f scripts/Makefile win # 编译 Linux 版本 make -f scripts/Makefile linux # 编译所有平台版本和生成文档 make -f scripts/Makefile all # 打包 Windows 版本 make -f scripts/Makefile package_win # 打包 Linux 版本 make -f scripts/Makefile package_linux # 打包所有平台版本 make -f scripts/Makefile package # 编译到自定义目录 make -f scripts/Makefile custom_output TARGET_DIR=/path/to/dir # 生成API文档 make -f scripts/Makefile docs # 清理编译文件 make -f scripts/Makefile clean # 清理文档 make -f scripts/Makefile clean_docs ``` ## 介绍 中后台系统管理模块 ## 项目结构 ``` server/ ├── cmd/ # 应用程序入口 │ └── api/ # API服务入口 │ └── main.go # 主程序入口点 ├── internal/ # 私有应用和库代码 │ ├── config/ # 配置管理 │ ├── constant/ # 常量定义 │ ├── dto/ # 数据传输对象 │ ├── handler/ # HTTP处理器 │ ├── middleware/ # HTTP中间件 │ ├── model/ # 数据模型定义 │ ├── repo/ # 数据存储仓库 │ ├── router/ # 路由配置 │ ├── service/ # 业务逻辑服务 │ └── tool/ # 内部工具函数 ├── pkg/ # 公共库代码 │ ├── gcode/ # 代码生成工具 │ └── db_manage/ # 数据库管理工具 ├── docs/ # API文档 │ ├── swagger.json # Swagger JSON文档 │ ├── swagger.yaml # Swagger YAML文档 │ └── docs.go # 自动生成的文档代码 ├── wiki/ # 项目知识库和文档 │ ├── assets/ # 文档资源文件 │ ├── guides/ # 用户指南 │ ├── learning/ # 学习资料 │ ├── references/ # 参考资料 │ └── solutions/ # 解决方案文档 ├── scripts/ # 部署和构建脚本 ├── test/ # 测试代码 └── tmp/ # 临时文件 ``` ## 技术架构 本项目采用分层架构设计: 1. **表示层**: 由 `router` 和 `handler` 组成,负责 HTTP 请求的接收和响应 2. **业务逻辑层**: 由 `service` 组成,实现核心业务逻辑 3. **数据访问层**: 由 `repo` 和 `model` 组成,负责数据库交互 4. **基础设施层**: 由 `tool` 和 `config` 组成,提供基础支持 ### 主要功能模块 - **用户认证**: 提供登录、注册和权限管理功能 - **博客管理**: 实现博客的创建、编辑、发布和管理 - **代码生成**: 提供代码自动生成功能,提高开发效率 - **数据库管理**: 数据库连接和操作的统一管理 ### 主要技术栈 - Web 框架: Gin - ORM 框架: GORM - 配置管理: Viper - 缓存: Redis - 文档: Swagger - 部署: 支持多平台(Windows/Linux)编译和部署 ## 功能设计开发 1. 博客系统 2. 工作流(dify)预研 ## 待开发功能 1. 字典管理 2. 标签管理 3. 角色管理 4. 菜单管理 5. 权限管理 6. 日志管理 ## 功能优化 # Docker 服务配置 本项目使用 Docker Compose 配置了 MySQL 和 Redis 服务,方便批量启动和下线。 ## 目录结构 ``` . ├── scripts │ └── compose.yaml # Docker Compose配置文件 ├── mysql │ ├── conf # MySQL配置文件目录 │ │ └── my.cnf # MySQL配置文件 │ └── init # MySQL初始化脚本目录 │ └── init.sql # 初始化SQL脚本 └── redis └── conf # Redis配置文件目录 └── redis.conf # Redis配置文件 ``` ## 服务说明 - **MySQL**: - 版本: 8.0 - 端口: 3306 - 用户名: user - 密码: password - 数据库: mydb - 数据卷: mysql_data(持久化存储) - 配置文件挂载: ./mysql/conf:/etc/mysql/conf.d - 初始化脚本挂载: ./mysql/init:/docker-entrypoint-initdb.d - **Redis**: - 版本: 6.2 - 端口: 6379 - 密码: redispassword - 数据卷: redis_data(持久化存储) - 配置文件挂载: ./redis/conf/redis.conf:/usr/local/etc/redis/redis.conf ## 使用方法 ### 启动服务 ```bash cd scripts docker-compose up -d ``` ### 查看服务状态 ```bash docker-compose ps ``` ### 停止服务 ```bash docker-compose down ``` ### 停止并删除数据卷 ```bash docker-compose down -v ``` ## 连接服务 ### 连接 MySQL ```bash docker exec -it mysql-service mysql -u user -p ``` ### 连接 Redis ```bash docker exec -it redis-service redis-cli -a redispassword ```