{"id":50176092,"url":"https://github.com/opsre/gos","last_synced_at":"2026-05-25T04:06:40.891Z","repository":{"id":344152519,"uuid":"1103085030","full_name":"opsre/gos","owner":"opsre","description":"发布治理平台，自由组合 cicd 流程","archived":false,"fork":false,"pushed_at":"2026-05-23T14:10:39.000Z","size":203640,"stargazers_count":49,"open_issues_count":5,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-05-23T16:11:34.506Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.lingyunyeqing.site/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opsre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-24T12:09:35.000Z","updated_at":"2026-05-23T14:09:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/opsre/gos","commit_stats":null,"previous_names":["yl1664907302/gos","opsre/gos"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/opsre/gos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2Fgos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2Fgos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2Fgos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2Fgos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opsre","download_url":"https://codeload.github.com/opsre/gos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opsre%2Fgos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33459742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-25T02:24:28.008Z","status":"ssl_error","status_checked_at":"2026-05-25T02:23:23.339Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-25T04:06:36.476Z","updated_at":"2026-05-25T04:06:40.884Z","avatar_url":"https://github.com/opsre.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch1 align=\"center\"\u003eGOS Release · 发布治理平台\u003c/h1\u003e\n\n\u003cp\u003e\u003cstrong\u003e一张发布单，串起交付全链路。\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp\u003e\n  \u003cimg alt=\"Go 1.25+\" src=\"https://img.shields.io/badge/Go-1.25+-00ADD8?logo=go\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"Vue 3.5+\" src=\"https://img.shields.io/badge/Vue-3.5+-42B883?logo=vue.js\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"Vite 7.x\" src=\"https://img.shields.io/badge/Vite-7.x-646CFF?logo=vite\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"Gin API\" src=\"https://img.shields.io/badge/Gin-API-00ACD7\" /\u003e\n  \u003cimg alt=\"MySQL / SQLite\" src=\"https://img.shields.io/badge/MySQL%20%2F%20SQLite-supported-4479A1\" /\u003e\n  \u003cimg alt=\"Docker Ready\" src=\"https://img.shields.io/badge/Docker-ready-2496ED?logo=docker\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n\u003cp\u003e\n  \u003cimg alt=\"Jenkins Sync\" src=\"https://img.shields.io/badge/Jenkins-sync-D24939?logo=jenkins\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"ArgoCD GitOps\" src=\"https://img.shields.io/badge/ArgoCD-GitOps-EF7B4D?logo=argo\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"GitOps Repos\" src=\"https://img.shields.io/badge/GitOps-repos-F05032?logo=git\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"GOS Agent\" src=\"https://img.shields.io/badge/GOS%20Agent-active-111827?logo=gnubash\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"Approval Workflow\" src=\"https://img.shields.io/badge/Approval-workflow-2563EB?logo=checkmarx\u0026logoColor=white\" /\u003e\n  \u003cimg alt=\"Pipeline Rules\" src=\"https://img.shields.io/badge/Pipeline-rules-334155\" /\u003e\n  \u003cimg alt=\"Artifact Center\" src=\"https://img.shields.io/badge/Artifact-center-0EA5E9\" /\u003e\n  \u003cimg alt=\"AI Diagnosis\" src=\"https://img.shields.io/badge/AI-diagnosis-7C3AED\" /\u003e\n  \u003cimg alt=\"Feishu WeCom DingTalk\" src=\"https://img.shields.io/badge/Notify-Feishu%20%2F%20WeCom%20%2F%20DingTalk-1677FF?logo=dingtalk\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n\u003cp\u003eGOS 不是 Jenkins、ArgoCD 或 Agent 的替代品，而是它们上层的发布治理层。\u003c/p\u003e\n\n\u003cp\u003eGOS 只做一件事：把分散执行收口成可治理的发布流程。\u003c/p\u003e\n\n\u003c/div\u003e\n\n---\n\n## 🎯 为什么选择 GOS？\n\n内部发布平台真正复杂的地方，不是单个执行器，而是发布链路被拆散在太多系统里。\n\n应用负责人、项目归属、发布环境、Jenkins 参数、管线脚本规范、GitOps 仓库、ArgoCD 实例、Agent 脚本、制品产物、通知 Hook、审批人和执行权限分散维护。研发需要理解大量底层细节，平台也很难回答一次发布到底用了什么参数、跑了哪条管线、产出了哪些制品、失败在哪里、通知是否送达。\n\nGOS 将这些链路收口成发布单：\n\n- 统一入口：从发布单发起标准发布、极速发布、仅构建、分段部署、回滚和重放，减少 Jenkins / ArgoCD / Git 仓库 / Agent 任务之间的切换。\n- 模板治理：用发布模板固化 CI/CD 执行单元、参数映射、审批规则、Hook 和通知策略，避免每次发布临时拼流程。\n- 管线约束：通过管线规范对 Jenkins Pipeline 做底层、有边界的约束，保证制品地址输出、OSS 上传命令、内置参数映射等关键节点可被平台识别。\n- 参数收敛：用标准字库和高级参数展示规则隐藏底层映射细节，只让申请人填写真正需要输入的字段。\n- 执行追踪：在发布单详情里查看预检、审批、构建、部署、Hook、阶段日志、制品信息和 AI 诊断结论。\n- 制品沉淀：用制品中心聚合发布过程产物、校验信息、记录时间和下载入口，避免制品链接散落在流水线日志里。\n- 诊断闭环：对 Jenkins 阶段日志做 AI 诊断，提取错误上下文、可能原因、日志证据和处理建议。\n- 通知闭环：把飞书、企业微信（企微）、钉钉通知源、Markdown 模板和通知 Hook 配成平台能力。\n- 权限与审计：统一控制应用、环境、组件、模板、制品库、通知和系统管理入口，并沉淀发布参数、执行单元、阶段、Agent 任务、制品元信息、AI 诊断记录和通知结果。\n\n---\n\n## 🧭 标准化\n\nGOS 的标准化不是要求所有团队使用同一条流水线，而是把发布过程中必须统一的边界先定下来。\n\n- 标准入口：所有发布、回滚、重放都从发布单进入。\n- 标准对象：项目、应用、环境、执行器、模板、制品库、发布单和通知源统一建模。\n- 标准字段：应用、环境、分支、镜像、Helm values、制品地址等关键参数统一命名和来源。\n- 标准参数：基础字段、固定值、CI 沿用、CD 沿用、GitOps 替换和 Hook 变量按同一套规则流转。\n- 标准模板：把 CI/CD、审批、Hook、通知、参数规则和管线规范前置到模板里。\n- 标准管线：对制品地址输出、OSS 上传命令、内置参数等关键边界做规则校验，不侵入团队自定义流水线逻辑。\n- 标准制品：发布过程产出的包、校验信息、对象路径和下载入口统一沉淀到制品中心。\n- 标准诊断：失败阶段可以回到同一个发布上下文中查看日志、AI 诊断、可能原因和建议动作。\n- 标准流程：预检、审批、管线规范校验、执行、制品归档、Hook、通知、AI 诊断、回滚和审计按同一套生命周期流转。\n- 标准留痕：每一次参数、操作、执行单元、阶段日志、制品元信息、AI 诊断和通知结果都能回到发布单追踪。\n\n执行器可以不同，网络环境可以不同，部署方式也可以不同；但申请人看到的是同一套发布语言，平台沉淀的是同一套治理数据。\n\n---\n\n## ⚙️ 当前已落地能力\n\n### 🧾 发布单工作台\n\n围绕发布单组织完整发布生命周期。\n\n- 发布单创建、编辑、删除、执行、取消。\n- 支持标准发布、极速发布、仅构建、分段部署、回滚和重放。\n- 批量执行、批量删除、并发批次进度和执行状态追踪。\n- 发布前预检覆盖发布单状态、执行单元、参数完整性、并发锁冲突和模板合规性。\n- 应用维度回滚能力检测、当前上线状态确认与历史状态追踪。\n- 发布详情聚合执行单元、实时日志、阶段日志、Hook 进度、制品信息和 AI 诊断结果。\n\n### ✅ 审批与发布模板\n\n把发布规则前置到模板，而不是让每次发布临时决定。\n\n- 发布模板 CRUD，按应用绑定可用发布流程。\n- CI / CD 执行器绑定，支持 Jenkins、ArgoCD / GitOps 和 Agent 任务组合。\n- CI / CD 参数映射、固定值、基础字段、CI 参数沿用和高级参数展示。\n- 隐藏基础字段映射和 CD 沿用 CI 的参数，降低发布申请页面复杂度。\n- 模板审批开关、审批模式、审批人配置、审批工作台和审批记录。\n- 模板 Hook 配置，支持 Agent 任务、通知 Hook 和发布后补充动作。\n- 发布创建前校验模板执行单元、参数、管线规范和权限边界。\n\n### 🧱 Jenkins 管理\n\n让 Jenkins 专注执行，GOS 负责治理入口。\n\n- Jenkins 管线同步、列表、详情和原始链接跳转。\n- 执行器参数同步，并映射到平台标准字段。\n- 原始脚本 / Config XML 查看，支持原始 Jenkins Pipeline 创建、编辑、删除。\n- 单条管线校验和批量管线扫描，帮助提前发现执行器不可用或脚本不合规。\n- Jenkins 构建日志、阶段状态、阶段日志回写发布单。\n- 与管线规范、制品中心、AI 诊断联动，补齐从构建到排障的发布链路。\n\n### 📏 管线规范\n\n在不接管团队 Pipeline 业务逻辑的前提下，对发布链路必须可治理的底层边界做规则约束。\n\n- 规则管理支持内置规则和自定义规则，可按制品、安全、凭据、命名等分类维护。\n- 支持 `info`、`warning`、`error` 等级，规则可启停并记录更新时间。\n- 扫描 Jenkins Pipeline 脚本，输出违规行、匹配内容、处理建议和扫描状态。\n- 内置 `GOS_ARTIFACT_URL` 制品地址输出规范，确保 CI 产物能被发布单、CD、GitOps 和 Hook 继续沿用。\n- 支持 OSS 上传命令格式、内置字段参数映射等制品链路规范。\n- 发布模板可按 CI / CD 绑定管线规范校验范围，违反阻断级规则时阻止创建发布单。\n- 约束重点放在平台必须识别的边界上，保留团队对 Pipeline 内部业务步骤的自主权。\n\n### 🧠 AI 诊断\n\n把 Jenkins 阶段日志转成结构化排障结果，降低失败定位成本。\n\n- 系统设置维护 OpenAI Compatible 模型，支持测试连接、启停和设置诊断模型。\n- 发布单详情的 Jenkins 阶段节点展示 AI 诊断入口，失败阶段可快速进入排障。\n- 后端拉取阶段日志，完成脱敏、截断、错误上下文提取后调用诊断模型。\n- 诊断抽屉展示分析结论、可能原因、日志证据、建议动作和人工复核提示。\n- 支持重新诊断、诊断缓存、历史结果查看和快捷追问。\n- 诊断记录保存模型、日志 hash、创建人和时间，便于审计追踪。\n\n### 🚢 ArgoCD / GitOps 管理\n\n面向声明式部署场景，串起环境、仓库、应用和集群。\n\n- 多 ArgoCD 实例管理、连通性检查和环境绑定。\n- ArgoCD Application 列表、详情、原始链接和手动 Sync。\n- GitOps 实例管理、仓库状态检查和路径映射。\n- GitOps 模板字段、字段候选值、values 候选值和替换规则。\n- Helm / Kustomize 扫描路径配置。\n- 发布时解析链路：`env -\u003e ArgoCD -\u003e GitOps -\u003e Git 仓库`。\n- 可沿用 CI 产出的制品地址、镜像版本和标准参数，保持构建到部署参数一致。\n\n### 🛰️ Agent 与受控任务\n\n用于生产孤岛、网络隔离或平台无法直连目标环境的场景。\n\n- Agent 注册、心跳、在线 / 离线 / 忙碌状态。\n- Agent 启用、禁用、维护模式、安装配置生成与 Token 重置。\n- 临时任务、常驻任务、指定 Agent 分发。\n- Shell 任务、脚本文件任务、文件分发任务。\n- 脚本管理：脚本模板、Shell 类型、脚本文本、脚本路径。\n- 任务执行、停止、恢复、删除、日志和结果回传。\n- 发布模板可把 Agent 任务配置为 Hook，发布详情中展示 Hook / Agent 任务进度和日志。\n\n### 📦 制品中心\n\n把发布过程产出的文件纳入统一目录，避免制品链接散落在流水线日志里。\n\n- 制品库配置、连接测试和凭据加密存储。\n- 应用绑定制品库与制品路径，发布时自动注入 OSS 内置参数。\n- 管线规范约束制品上传和 `GOS_ARTIFACT_URL` 输出，保证平台能识别 CI 产物。\n- CI 标准字段 `gos_artifact_url` 可沿用至 CD、GitOps 和 Hook 变量。\n- 发布单详情展示制品名称、校验信息、记录时间和下载入口。\n- 制品目录按制品库、项目、应用、执行单元和发布单聚合检索。\n- 支持手动补录制品，并限制删除发布过程自动产出的制品记录。\n\n### 🔔 通知模块\n\n把通知源、模板和 Hook 配成平台能力，而不是散落在流水线脚本里。\n\n- 通知源管理：飞书、企业微信（企微）、钉钉。\n- Markdown 通知模板和条件化模板内容。\n- 通知 Hook 管理，发布模板可按阶段和触发条件关联通知 Hook。\n- 通知内容可复用发布单、应用、环境、执行结果、制品和 Hook 上下文。\n- 通知源 Secret / Token / 飞书放行关键字加密存储。\n\n### 🔐 应用、项目与权限治理\n\n把发布入口和组织权限绑定起来。\n\n- 项目管理和应用归属治理。\n- 应用 CRUD、负责人、仓库、语言、制品类型、制品库和制品路径。\n- 应用 GitOps 分支映射、发布分支选项和环境策略。\n- 应用与 CI/CD 管线绑定，支持应用级执行器选择。\n- 标准字库管理，统一发布字段、执行器参数、GitOps 替换和通知变量来源。\n- 应用级可见 / 发布权限控制、用户管理、权限授权和参数权限。\n- 系统设置：发布环境、并发控制、GitOps 扫描路径和 AI 模型配置。\n\n---\n\n## 🖼️ 界面预览\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e应用工作台\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/my-applications-page-legend.png\" alt=\"应用工作台\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e发布单详情页\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/release-order-detail-legend.png\" alt=\"发布单详情\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e发布单详情：制品信息与 AI 诊断入口\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/release-detail-artifacts-ai.png\" alt=\"发布单详情制品与 AI 诊断\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003eAI 诊断抽屉\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/ai-diagnosis-drawer.png\" alt=\"AI 诊断抽屉\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e制品目录\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/artifact-catalog.png\" alt=\"制品目录\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e管线规范\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/pipeline-rules.png\" alt=\"管线规范\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e发布单列表页\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/release-order-list-legend.png\" alt=\"发布单列表\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e新建发布单页\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/new-release-order-page-legend.png\" alt=\"新建发布单\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003cstrong\u003e发布模板配置\u003c/strong\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/release-template-modal-legend.png\" alt=\"发布模板\" width=\"90%\" /\u003e\n\u003c/p\u003e\n\n---\n\n## 🏗️ 架构概览\n\n```mermaid\nflowchart LR\n    U[\"用户\"] --\u003e F[\"Vue 3 管理后台\"]\n    F --\u003e B[\"Gin API\"]\n    B --\u003e D[\"MySQL / SQLite\"]\n    B --\u003e J[\"Jenkins\"]\n    B --\u003e AR[\"ArgoCD\"]\n    B --\u003e AG[\"GOS Agent\"]\n    B --\u003e N[\"通知源\"]\n    AR --\u003e G[\"GitOps Repos\"]\n    AR --\u003e K[\"Kubernetes Clusters\"]\n    AG --\u003e T[\"特殊网络/生产环境\"]\n    J --\u003e B\n```\n\n后端采用轻量分层：\n\n- `internal/domain`：领域实体与仓储接口\n- `internal/application`：用例编排\n- `internal/infrastructure`：数据库、Jenkins、ArgoCD、GitOps、配置、加密\n- `internal/interfaces/http`：Gin 路由与 Handler\n\n---\n\n## 🧩 技术栈\n\n| 层级 | 技术 |\n| --- | --- |\n| 后端 | Go 1.25、Gin、Swagger |\n| 存储 | MySQL、SQLite |\n| 前端 | Vue 3、Vite、TypeScript、Pinia、Ant Design Vue、ECharts |\n| 执行器 | Jenkins、ArgoCD / GitOps、GOS Agent |\n| 部署 | Docker 单容器、源码运行 |\n\n---\n\n## 🚀 快速开始\n\n### 方式一：Docker 单容器运行\n\n适合部署到目标机器，单容器同时提供前端和后端服务。\n\n本地构建镜像：\n\n```bash\ndocker build -t gos-release:latest .\n```\n\nMySQL 模式启动：\n\n```bash\ndocker run -d \\\n  --name gos-release \\\n  -p 5174:5174 \\\n  -p 8081:8081 \\\n  -e GOS_DB_DRIVER=mysql \\\n  -e GOS_MYSQL_DSN='user:password@tcp(mysql-host:3306)/deploy_platform?charset=utf8mb4\u0026parseTime=true\u0026loc=Local' \\\n  -e GOS_JENKINS_ENABLED=true \\\n  -e GOS_JENKINS_BASE_URL='http://jenkins.example.com/' \\\n  -e GOS_JENKINS_USERNAME='admin' \\\n  -e GOS_JENKINS_API_TOKEN='your-token' \\\n  -e GOS_AUTH_ADMIN_USERNAME='admin' \\\n  -e GOS_AUTH_ADMIN_PASSWORD='your-admin-password' \\\n  -e GOS_SECURITY_ENCRYPTION_KEY='replace-with-a-strong-key' \\\n  yl10115658529/gos-release:v1.2\n```\n\n\u003e **说明**：GOS_SECURITY_ENCRYPTION_KEY 用于加密数据，请自定义 。\n\n访问地址：\n\n- 登入：`http://127.0.0.1:5174/login`\n\n首次部署 MySQL 时，可先导入仓库内表结构：\n\n```bash\nmysql -h mysql-host -P 3306 -u user -p \u003c ./deploy_platform.sql\n```\n\n### 方式二：源码开发\n\n环境要求：\n\n- Go `1.25+`\n- Node.js `20+`\n- MySQL `8+` 或 SQLite\n- Jenkins / ArgoCD / GitOps / Agent / 制品库 / AI 模型 / 通知源按需准备\n\n启动后端：\n\n```bash\ngo run ./cmd/server -config configs/config.local.json\n```\n\n启动前端：\n\n```bash\ncd frontend\nnpm install\nVITE_API_BASE_URL=http://127.0.0.1:8081 npm run dev\n```\n\n---\n\n## 🛠️ 配置说明\n\n源码运行时主要读取配置文件，例如：\n\n- `configs/config.local.json`\n- `configs/config.production.json`\n\nDocker 单容器运行时由 `docker/entrypoint.sh` 根据环境变量生成：\n\n- `/app/configs/config.runtime.json`\n\n常用 Docker 环境变量：\n\n| 变量 | 说明 |\n| --- | --- |\n| `GOS_DB_DRIVER` | 数据库类型：`mysql` 或 `sqlite` |\n| `GOS_MYSQL_DSN` | MySQL 连接串 |\n| `GOS_SQLITE_PATH` | SQLite 文件路径 |\n| `GOS_JENKINS_ENABLED` | 是否启用 Jenkins |\n| `GOS_JENKINS_BASE_URL` | Jenkins 地址 |\n| `GOS_JENKINS_USERNAME` | Jenkins 用户名 |\n| `GOS_JENKINS_API_TOKEN` | Jenkins API Token |\n| `GOS_JENKINS_AUTO_SYNC_ENABLED` | 是否启用 Jenkins 自动同步 |\n| `GOS_JENKINS_AUTO_SYNC_INTERVAL_SEC` | Jenkins 自动同步间隔 |\n| `GOS_JENKINS_RELEASE_TRACK_ENABLED` | 是否启用发布构建追踪 |\n| `GOS_AUTH_ADMIN_USERNAME` | 初始管理员账号 |\n| `GOS_AUTH_ADMIN_PASSWORD` | 初始管理员密码 |\n| `GOS_SECURITY_ENCRYPTION_KEY` | 平台加密密钥 |\n| `GOS_RELEASE_ENV_OPTIONS` | 发布环境列表，例如 `dev,test,prod` |\n| `GOS_RELEASE_CONCURRENCY_ENABLED` | 是否启用发布并发锁 |\n| `GOS_RELEASE_LOCK_SCOPE` | 锁范围，例如 `application_env` |\n| `GOS_RELEASE_CONFLICT_STRATEGY` | 冲突策略，例如 `reject` |\n| `GOS_GITOPS_PATH_MAPS` | GitOps 路径映射，格式 `宿主机路径=容器内路径` |\n\n生产环境务必使用强密码、独立加密密钥，并避免在日志或命令历史中暴露 Token。\n\n---\n\n## 🗺️ 页面地图\n\n| 模块 | 页面 | 路由 |\n| --- | --- | --- |\n| 入口 | 官网 / 产品页 | `/` |\n| 入口 | 登录 | `/login` |\n| 应用管理 | 我的应用 | `/applications` |\n| 应用管理 | 新增应用 | `/applications/new` |\n| 应用管理 | 编辑应用 | `/applications/:id/edit` |\n| 应用管理 | 管线绑定 | `/applications/:id/pipeline-bindings` |\n| 应用管理 | 项目管理 | `/projects` |\n| 应用管理 | 标准字库 | `/platform-param-dicts` |\n| 发布管理 | 发布单 | `/releases` |\n| 发布管理 | 新建发布单 | `/releases/new` |\n| 发布管理 | 编辑发布单 | `/releases/:id/edit` |\n| 发布管理 | 发布单详情 | `/releases/:id` |\n| 发布管理 | 审批工作台 | `/release-approvals` |\n| 发布管理 | 发布模板 | `/release-templates` |\n| 制品中心 | 制品目录 | `/artifacts` |\n| 制品中心 | 制品库配置 | `/artifacts/repositories` |\n| 组件管理 | Jenkins 管线 | `/components/jenkins` |\n| 组件管理 | 管线规范 | `/components/pipeline-rules` |\n| 组件管理 | 执行器参数 | `/components/executor-params` |\n| 组件管理 | ArgoCD 管理 | `/components/argocd` |\n| 组件管理 | ArgoCD 应用 | `/components/argocd/applications` |\n| 组件管理 | GitOps 管理 | `/components/gitops` |\n| 组件管理 | GitOps 教程 | `/help/gitops` |\n| 组件管理 | Agent 概览 | `/components/agents` |\n| 组件管理 | Agent 脚本管理 | `/components/agent-scripts` |\n| 组件管理 | Agent 任务管理 | `/components/agent-tasks` |\n| 系统管理 | 用户管理 | `/system/users` |\n| 系统管理 | 权限授权 | `/system/permissions` |\n| 系统管理 | 通知模块 | `/system/notifications` |\n| 系统管理 | 系统设置 / AI 模型 | `/system/settings` |\n\n---\n\n## 🧪 初始化顺序\n\n第一次落地建议按这个顺序做：\n\n1. 启动后端和前端\n2. 登录管理员账号\n3. 配置发布环境和并发策略\n4. 创建用户并授权\n5. 创建项目和应用\n6. 按需接入 Jenkins / ArgoCD / GitOps / Agent / 制品库 / AI 模型 / 通知源\n7. 绑定应用与 CI/CD 执行器\n8. 维护标准字库、执行器参数和管线规范\n9. 创建发布模板，配置审批与 Hook\n10. 创建发布单，执行并查看详情\n\n完整说明见：`docs/使用手册/GOS从0到1初始化使用指南.md`\n\n---\n\n## 📁 项目结构\n\n```text\ngos/\n├── agent                       # Agent 相关代码\n├── cmd/server                  # 后端入口\n├── configs                     # 配置文件\n├── docker                      # 单容器运行配置\n├── docs                        # Swagger、需求文档、样式规范、测试清单\n├── frontend                    # Vue 3 管理后台\n├── images                      # README 截图素材\n├── internal/application        # 用例层\n├── internal/bootstrap          # 启动与配置\n├── internal/domain             # 领域层\n├── internal/infrastructure     # 基础设施层\n├── internal/interfaces/http    # Gin 接口层\n└── scripts                     # 辅助脚本\n```\n\n---\n\n## 📚 文档索引\n\n- Docker 部署：`docs/部署/Docker部署说明.md`\n- 初始化使用指南：`docs/使用手册/GOS从0到1初始化使用指南.md`\n- Swagger：`docs/swagger.yaml`\n- 后端需求：`docs/后端/`\n- 前端需求：`docs/前端/`\n- AI 诊断功能设计：`docs/ai-diagnosis-feature.md`\n- 前端样式规范：`docs/样式规范/`\n- 测试清单与报告：`docs/测试/`\n\n---\n\n## 🛣️ Roadmap\n\n以下内容在需求文档中有规划，但不要理解为当前已完整落地能力：\n\n- K8s 发布策略引擎\n- 多平台小程序发布\n- 更细粒度的发布策略可视化\n- 外部身份源接入：LDAP / SSO\n\n---\n\n## 💬 联系\n\n\u003cp\u003e\n  \u003cimg alt=\"WeChat 13025452443\" src=\"https://img.shields.io/badge/WeChat-13025452443-07C160?logo=wechat\u0026logoColor=white\" /\u003e\n\u003c/p\u003e\n\n---\n\n## 📄 License\n\n本项目基于 MIT License 开源，详见 [LICENSE](./LICENSE)。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopsre%2Fgos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopsre%2Fgos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopsre%2Fgos/lists"}