Files
mini-openclaw/docs/v2/07-deployment-and-gitea.md
T
2026-09-28 17:02:33 +08:00

90 lines
5.5 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.
# 部署与 Gitea 使用说明
日期:2026-09-28。本文区分已核验、本地配置、历史记录和未来提案;不包含密钥。本轮没有实际部署。
## 1. Git 远程事实
| 项 | 已核验值 |
|---|---|
| 当前 Gitea 远程 | origin |
| SSH 仓库 | ssh://git@192.168.10.111:2222/qiaoqichao/mini-openclaw.git |
| Web 地址线索 | http://8.163.107.248:13000/qiaoqichao/mini-openclaw (Gitea push 回执提供,网页本轮未单独测试) |
| 默认分支 | main,git ls-remote --symref origin HEAD 已核对 |
| 另一个远程 | github-backup → git@github.com:NathanAlex7/mini_openclaw.git;本轮未推送 |
| 源码恢复点 | codex/backup-before-ai-prescreen-v2-20260928 / 4d5a420671cb073a56335bd617e7d0812b8179a9 |
| 文档工作分支 | codex/xingbang-v2-docs-20260928 |
备份分支包含此次会话之前的 9 个已修改文件和选定的未跟踪源码、文档、流程原文,共37个变更文件;未改默认分支。其父提交为 b10093f。快照保存当时源码状态,不等同所有功能已验收。
## 2. 常用命令
先确认身份、网络和现有 SSH host key;不要为连接便利关闭主机指纹校验,不把口令放 URL。
```powershell
git status --short
git remote -v
git ls-remote --symref origin HEAD
git fetch origin
git switch -c codex/<task-name>
# 只暂存本次已检查文件,避免 git add . 带入临时凭据
git add -- <file1> <file2>
git diff --cached --check
git commit -m "docs(v2): 说明改动与结果"
git push -u origin HEAD
git rev-parse HEAD
git ls-remote --heads origin <branch-name>
```
本地 HEAD 与指定远程分支 SHA 相同才可说“已备份”。只 commit、只 push 输出、网页旧分支都不能替代核验。需合并时在 Gitea 创建面向 main 的 PR,按流程至少一人评审并绑定最终修订验证;本轮不自动合并。
## 3. 无损恢复
恢复到全新目录检查,不在有工作成果的目录执行 reset --hard/clean。
```powershell
git clone --branch codex/backup-before-ai-prescreen-v2-20260928 --single-branch ssh://git@192.168.10.111:2222/qiaoqichao/mini-openclaw.git F:\mini-OpenClaw-restore-20260928
git -C F:\mini-OpenClaw-restore-20260928 rev-parse HEAD
```
预期提交:4d5a420671cb073a56335bd617e7d0812b8179a9。目标须不存在。当前仅验证远程可提供该提交,未执行恢复目录创建或破坏性恢复演练。
这是源码备份:不包括实际业务数据库、上传文件、运行日志、会话、密钥或 Docker 数据卷;这些资产需要另行按部署环境建立备份。现有 Git 历史中的旧交付文档含遗留凭据,未重写既有历史;新文档和未来新仓库不得继续复制这些值。
## 4. 当前运行与部署事实
| 项 | 来源 / 状态 |
|---|---|
| 后端 | backend/app.py,python app.py 固定监听8002;或在 backend 工作目录用 uvicorn app:app --port 明确指定 |
| 前端 | package.json 的 next dev/start,默认3000;Next代理默认后端127.0.0.1:8002 |
| 本地 Compose | docker-compose.yml,容器 mini-openclaw-stable,宿主3200/8002 |
| 云端 Compose | deploy/docker-compose.aliyun.yml,容器 mini-openclaw,loopback FRONTEND_PORT默认80/BACKEND_PORT默认8002 |
| ECS 本机配置 | server-deploy.conf 指向 8.163.107.248:22,用户 qykj_qqc;不复制此含密钥文件 |
| 旧项目远程目录 | /home/qykj_qqc/mini-OpenClaw,来自此前会话只读检查;本轮未复查服务器 |
| 云端实时健康 | Unobserved,本轮未发起 SSH、重启或模型调用 |
当前 Dockerfile 在一个镜像中运行 Next 和 FastAPI,容器内部端口3000/8002;卷保存 xingbang_data 与日志。云端浏览器通过同源代理访问后端。受信模型 endpoint、密钥和 ERP 连接由环境提供,不提交到 Git。
## 5. 现有验证与发布链
```powershell
.\backend\venv\Scripts\python.exe scripts/verify.py
```
先安装项目依赖;必须使用项目虚拟环境。测试报告在 test-evidence,配置示例 deploy/aliyun.env.example 只有占位值。当前脚本 publish-acr.ps1/.sh 会验证、构建、推送;deploy-aliyun.sh 会 pull/up 并健康检查,这些是有副作用的发布脚本,不在本轮执行。
发布要求:验证通过、不可变镜像标签、部署配置单独保管、既有数据卷有备份、目标端口和容器隔离已确认。回滚用已验证的旧镜像标签;数据库变更的回退另行设计,不能把换镜像等同数据恢复。
## 6. v2 部署隔离提案
目标独立目录 F:/mini-OpenClaw-v2;独立 Git 项目、Compose 项目名、镜像名、容器、数据卷和宿主端口须在实施前确定。当前没有创建 v2 远程、部署文件或分配实际端口。不要执行原版 Compose 去部署 v2,否则会复用旧容器名和数据。
前端代理可通过 CORE_BACKEND_URL / RISK_AGENT_BACKEND_URL 指向隔离后端;启动命令和测试 smoke URL 必须随端口同步。将代码从旧版复制出来不自动完成资源隔离。
真实材料是否可发往 DeepSeek/Jev,取决于客户数据策略及实际部署方式;不能用“部署在客户服务器”推断“数据不会外发”。模型出口需要独立核对。
## 7. Gitea CI 状态
当前仓库只有 .github/workflows/verify.yml,未发现 .gitea/workflows。Gitea Actions 开关、runner、required checks 均未核验。不能声称 Gitea 已自动测试。
后续接入 CI 时:先核对服务器能力和 runner→使用同一本地验证入口→上传 test-evidence→验证失败阻断发布→确认对最终 SHA 真正执行。只新增 YAML 不算 CI 接入完成。