102 lines
7.1 KiB
Markdown
102 lines
7.1 KiB
Markdown
# 部署与 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或日志。变更默认配置只作用于新运行,回滚选择已验证旧配置并新建运行,不篡改旧记录。
|