infra/README.md

44 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Infra Compose
## GitHub 开发镜像
- GitHub `RX-Penguin/infra` 只用于云端 Coding Agent、开发分支、PR 和云端测试。
- Gitea `slh/infra` 是唯一真相源和唯一部署来源GitHub Main 不得覆盖 Gitea Main。
- Gitea Main 到 GitHub Main 只允许 Fast-ForwardGitHub 分支回流后必须测试并创建 Gitea PR等待人工 Merge。
- 禁止 Force Push、自动解决冲突、自动 Merge、同步 Secrets、数据库、Volume 和运行数据。
## Gitea 真相源
- 本目录的最终代码与部署历史以 Gitea `slh/infra``main` 分支为唯一真相源。
- 生产部署只能来自 GiteaGitHub 只能作为云端开发工作区,不能覆盖 Gitea Main。
- Git 仅跟踪 Compose、README、无凭据服务配置和幂等初始化脚本。数据库、OAuth、Secrets、日志、迁移快照及运行数据永不入库。
- Compose 的唯一入口是 `docker-compose.yaml`
## Compose 真相源规范
- 每个项目唯一、最终的 Compose 真相文件必须命名为 `docker-compose.yaml`
- `compose.yaml``docker-compose.yml`、服务分片和迁移候选只能临时存在;任务完成前必须合并回 `docker-compose.yaml`
- 同一项目不得保留第二个可执行生产入口。历史材料只能进入明确的 `migration/``rollback/` 目录,并使用不会被 Docker Compose 自动识别的快照文件名。
- 收尾必须执行 `docker compose -f docker-compose.yaml config -q`,并核对 Compose project、service、容器名和运行归属。
共享基础设施的唯一 Compose 入口。迁移按服务逐个进行;尚未迁移的服务继续由原项目管理。
当前服务:
- `gitea`NAS 内部唯一 Git 真相源Web/SSH 继续只监听宿主机 `127.0.0.1:13000/2223`,状态固定在 `/volume2/docker/infra/gitea`
- `litellm`:继续通过外部 `n8n_default` 网络向现有 Agent 提供 `http://litellm:4000`,迁移稳定后再统一共享网络。
唯一 Compose 入口是 `/volume2/docker/infra/compose.yaml`。所有单实例服务显式设置 `container_name`
Infra 版 LiteLLM 只提供官方订阅 OAuth 路由OpenAI ChatGPT OAuth 与 xAI OAuth不包含 GitHub Copilot。旧 NewAPI、DeepSeek、Kuaipao、MINIMAX、Elysia 和其他 API Key 不迁移;`litellm-config.yaml` 不包含 secret。
2026-07-16 对当前 Plus 账号真实请求模型目录并逐一 smoke test 后ChatGPT 路由只保留:`gpt-5.6-sol``gpt-5.5``gpt-5.4``gpt-5.4-mini``codex-auto-review`。这些结论来自账号运行态,不来自静态文档目录。
`frpc` 是独立项目,不属于本 Compose。
Gitea 从 Codex Compose 迁移使用 `/volume2/docker/ops/migrate-gitea-to-infra.sh`。如果旧 `codex_local_git` 仍存在,脚本会停止并重命名它;如果容器已经不存在,则直接冷接管离线状态。脚本会复制 `/volume2/docker/codex/gitea``/volume2/docker/infra/gitea`;新容器健康后,它会从 Codex Compose 精确移除旧 Gitea 服务,并把原文件保存在新状态目录的 `migration/legacy-codex-compose.yaml`。旧数据始终保留为回滚点确认仓库、登录、SSH 和数据完整前不得删除。
LiteLLM 迁移使用 `/volume2/docker/ops/migrate-litellm-to-infra.sh`。脚本只复制已有 ChatGPT/xAI OAuth 状态,不读取或生成 API Key 环境文件。成功前不得删除旧 `litellm` 容器和 `/volume2/docker/n8n/litellm`
单实例服务必须显式设置 `container_name`。Infra LiteLLM 固定使用 `litellm`;首次按新命名重建前,如果旧回滚容器仍占用该名称,先将旧容器改名为 `litellm-legacy-rollback`,不得直接删除未确认的回滚状态。