# system-publish **Repository Path**: netbycom/system-publish ## Basic Information - **Project Name**: system-publish - **Description**: 系统发布平台是一个全栈开源的自动化打版与部署管控平台。通过集成 WebSockets 实时控制台、一键 Git Pull + 编译构建、自动快照备份以及跨越式 SSH 自动化传输分发,帮你摆脱传统人工上包、切环境、敲脚本的苦役。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-17 - **Last Updated**: 2026-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 建享云系统发布平台 (JianXiang Cloud Publish Platform) 🚀 **致力于提供丝滑、可视化的轻量级一站式 CI/CD 自动化发布部署服务。** “建享云发布平台” 是一个全栈开源的自动化打版与部署管控平台。通过集成 WebSockets 实时控制台、一键 Git Pull + 编译构建、自动快照备份以及跨越式 SSH 自动化传输分发,帮你摆脱传统人工上包、切环境、敲脚本的苦役。 --- ## ✨ 核心特性 * **⚡ 极速交付链路**:从代码仓库提取、编译、快照打包并最终通过 SSH/SFTP 自动发往指定宿主机节点,全程由后端协程自动推进。 * **📡 实时终端日志**:引入纯原生的 WebSocket 通道,犹如本地操作一般,将远程构建机上执行构建与传输的实况原封不动地推送到浏览器端。 * **🔙 智能快照与回滚**:每发一次正版都会自动压缩一个 ZIP 快照存档,若新版本有 Bug,点一下“部署回滚”立刻时光倒流。 * **👥 动态角色鉴权体系**:完全自定义的角色组态配置。可以精准设置不同成员对于各个版块大屏以及资产管理模块的操作权限。 * **💬 支持机器人群组推送**:拥有发布日志功能和推送体系,发版结束后自动通过企业微信等通道总结推送到团队。 --- ## 🛠️ 技术栈选型 ### 后端 (Backend) - Go * **核心框架**: [Gin](https://gin-gonic.com/) - 最轻快的 HTTP 网关设施。 * **持久层框架**: [GORM](https://gorm.io/) + MySQL。极其便捷的模型定义和数据同步(AutoMigrate)。 * **安全凭证**: [Golang-JWT/v5](https://github.com/golang-jwt/jwt) + Base64 图形验证码。 * **系统调用级交互**: 纯原生 `golang.org/x/crypto/ssh` 处理远端服务器连接,以及 `exec.Command` 全盘接管 Bash/Cmd。 * **即时通讯**: Gorilla WebSocket 实现日志回显队列。 ### 前端 (Frontend) - Vue 3 * **框架选型**: [Vue 3](https://vuejs.org/) (Composition API) + [Vite](https://vitejs.dev/) - 追求瞬时的热重载快感。 * **语言**: TypeScript 提供类型约束的优雅保护。 * **UI 开发套件**: [Element Plus](https://element-plus.org/) 构建极具表现力的仪表盘与管理视图。 * **渲染扩展**: Vue-Codemirror + Markdown 语言适配(优雅渲染并承载巨量长文的开发报告)。 --- ## 🚀 体系化运行演示 系统拆分了以下几个关键运作单元: 1. **工作台大盘 (Dashboard)**:宏观展示今日的部署态势、各平台应用的部署成功率以及服务器健康指标。 2. **应用资产挂载 (App Manage)**:告诉发布平台 —— ”这是什么样的工程?用的什么构建指令(例如 `npm run build` 还是 `go build`)?远程最终要挂载到哪一台主机的哪个绝对路径下?重启服务执行什么口令?“ 3. **部署追踪日志 (Release Manage)**:操作人员一键下单(部署/回滚)。通过 WebSockets 紧随指令下潜,亲眼见证你的项目是如何从 Git 源码转变成远端运转的服务的全流程。 4. **角色与安全 (Roles & Auth)**:通过动态路由绑定角色模型。有效隔绝闲杂人员操作你配置重金的服务器节点信息记录。 --- ## 📦 本地启动指南 ### 1. 前置环境要求 - Go 1.20 或以上 - Node.js 16 或以上 + npm / yarn - MySQL 5.7+ 或 MySQL 8 ### 2. 后端服务端就绪 1. 在数据库中创建一个空实例(例如 `system_publish`) 2. 修改 `server/config/config.yaml` 或对应入口逻辑里的数据库配置参数(帐号、密码) 3. 自动生成并拉起后台: ```bash cd server go mod tidy go run main.go ``` *提示:服务启动时,GORM 会自动建立/补齐所需的全部核心关系表。* ### 3. 前端编译与热启 ```bash cd web npm install npm run dev ``` 浏览器会自动映射出 `localhost:3000` 到大屏鉴权界面。 *(超级管理账号系统会自动在库内预置)* --- ## 🏗️ 生产环境建议 (Production) 当你的发版系统开始向生产交付时,请关注下述保障: 1. **网络层面的阻绝**:本应用最好运行在内网环境(VPN 下)或为 `/api` 加设 IP 白名单。 2. **权限的最小化**: 本 Go 服务需要调用服务器环境的 `git` 和相关语言栈(如 `node`,`go` 的全局环境变量)。 3. **安全使用应用配置的执行命令**:可结合远端机器的 `Systemd` 或者 `PM2` 热接管平滑重启,代替粗暴的杀进程操作。
以匠心构建每一个发布流,与君共勉之。