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

102 lines
7.1 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 接入完成。
## 8. 专项判断提供方配置提案(尚未实现)
配置结构以 [专项判断模型切换](11-judgment-providers.md) 为准,不向现有 .env / Compose 写入尚未被代码消费的变量。拟新增后端专用配置 `judgment.default_profile_id`(可空)及 `judgment.profiles`;默认关闭,管理员验证本地配置后才选为默认或显式选择。
- Jev:按将来核实的官方接口配置端点与后端凭据引用;缺 Key 不影响主审或 local 配置启动。没有凭据不能标记 Jev 已就绪。
- local:指定经许可的本地/内网推理服务、模型版本和提示版本;不需要 Jev Key。本地服务是否需要自己的访问令牌取决于其部署认证;开源模型权重许可、硬件资源、结构化输出能力和中文评审效果在接入前核实。
- disabled:零专项请求,保留规则、历史经验和主审预审;结果显示缺失专项核查。不能把 disabled 当作 local 的成功结果。
模型服务与业务后端分开配置端口/资源。容器内 localhost 指容器自身,实际地址须从后端容器连通性验证,不能照抄宿主机地址。配置只接受已批准端点,校验重定向/解析目标和数据范围;名称叫 local 不证明全系统数据不外发,主审等其他模型出口也须核对。
每个配置有不可变修订,运行引用其版本;敏感值通过后端密钥引用解析,不写前端、Git或日志。变更默认配置只作用于新运行,回滚选择已验证旧配置并新建运行,不篡改旧记录。