diff --git a/AGENTS.md b/AGENTS.md index d9f2cfe5..b3a7e971 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ Sub2API — AI API 网关平台,Go + Vue 3 前后端一体,Ent ORM,支持 - 上游: `https://github.com/Wei-Shaw/sub2api` - 本地: `/Users/qingse/Sync/local-git/sub2api` -- 当前稳定版: `v0.1.126` +- 当前稳定版: `v0.1.133` - 许可证: LGPL v3 ## 部署留痕规则 diff --git a/ops/remote/us-racknerd-0526-sub2api/README.md b/ops/remote/us-racknerd-0526-sub2api/README.md index d9b0f530..c37ebdc8 100644 --- a/ops/remote/us-racknerd-0526-sub2api/README.md +++ b/ops/remote/us-racknerd-0526-sub2api/README.md @@ -1,6 +1,6 @@ # US RackNerd 0526 Sub2API Remote Inventory -最后核对时间:2026-05-26 19:37 Asia/Shanghai +最后核对时间:2026-06-05 17:22 Asia/Shanghai ## 远程位置 @@ -21,6 +21,7 @@ - nginx:`nginx/1.26.3` - DNS:`origin.proxy.api.lilifamily.com -> 216.45.59.243`,`catproxy.lilifamily.com -> 216.45.59.243` - `proxy.api.lilifamily.com` 已切到 JPpro `151.242.164.72`,3c4g 上旧 `proxy.api` nginx 站点已禁用。 +- Sub2API 当前版本:`0.1.133`,当前镜像:`sub2api:upstream-0.1.133-ebf4d8c3c3e9`。 - Sub2API 只绑定宿主机 `127.0.0.1:8080`,公网只能经 nginx `catproxy` 或受限 `origin` 转发。 - PostgreSQL、Redis、Mihomo 不映射公网端口。 - CLIProxyAPI 已部署为同机内网服务,容器加入 `sub2api-network`,宿主机仅监听 `127.0.0.1:8317`。 @@ -94,7 +95,7 @@ Sub2API - token 配置:`/etc/nginx/proxy-ng/token.conf`,权限 `600 root root` - token map 配置:`/etc/nginx/conf.d/proxy-ng-token-map.conf`,本地副本已脱敏 - 远程 `.env`:`PUBLIC_DOMAIN=proxy.api.lilifamily.com` -- 远程 `.env`:`SUB2API_IMAGE=sub2api:custom-menu-safe-embed-20260527-r2` +- 远程 `.env`:`SUB2API_IMAGE=sub2api:upstream-0.1.133-ebf4d8c3c3e9` - URL allowlist 当前关闭:`SECURITY_URL_ALLOWLIST_ENABLED=false` - 远程 `.env`:`SECURITY_URL_ALLOWLIST_ALLOW_INSECURE_HTTP=true`,允许 APIKey 上游 base_url 使用 `http://`。 - CLIProxyAPI 部署目录:`/opt/cliproxyapi` @@ -267,3 +268,28 @@ docker exec sub2api sh -lc 'wget -q -S -O - http://cli-proxy-api:8317/healthz 2> - 脱敏配置副本:`current/cliproxyapi-compose.yml`、`current/cliproxyapi-config.redacted.yaml`。 - 验证结果:`curl http://127.0.0.1:8317/healthz` 返回 `200`;无业务 key 请求 `/v1/models` 返回 `401 Missing API key`;带业务 key 请求 `/v1/models` 返回 `200 {"data":[],"object":"list"}`;`docker exec sub2api` 内访问 `http://cli-proxy-api:8317/healthz` 返回 `200`。 - 当前限制:尚未导入 OAuth auth 文件或上游 API key,因此 `/v1/models` 返回空列表;后续需要为 CLIProxyAPI 配置具体 provider 后,Sub2API 才能通过该内网地址调用上游模型。 + +### 2026-06-05 Sub2API 0.1.133 上游合并发布 + +- 目标:从上游 `origin/main` 合并到 `feature/proxy-ng` 后发布,跟进开源版本升级,同时保留本地 proxy-ng、ops 留痕和自定义菜单安全嵌入能力。 +- 上游合并来源:`origin/main d895d765`。 +- 本地发布提交:`ebf4d8c3c3e9`。 +- 发布版本:`0.1.133`。 +- 部署方式:本地构建 linux/amd64 Go 二进制并嵌入前端,上传 runtime patch tar 到远程,在远程基于当前运行镜像替换 `/app/sub2api` 和 `/app/resources` 后 `docker commit` 生成本地镜像。 +- runtime patch:`/tmp/sub2api-0.1.133-ebf4d8c3c3e9-runtime-patch.tar.gz` +- runtime patch SHA256:`2709409c4bd3cd3cc7622dcdb9e8eea264f9cc595cb60d845a528fc0d676fcc6` +- 部署前备份:`/opt/sub2api/backups/deploy-upstream-0.1.133-20260605-021731` +- 当前镜像:`sub2api:upstream-0.1.133-ebf4d8c3c3e9` +- 镜像 ID:`sha256:01bc4c4df84c2ed9cc5ec0934203b3a17538b0854d0704d91dbc2b9b878e834a` +- 生效方式:更新远程 `/opt/sub2api/.env` 的 `SUB2API_IMAGE`,执行 `docker compose up -d --no-deps --force-recreate sub2api`;PostgreSQL、Redis、Mihomo、CLIProxyAPI 未重启。 +- 远程版本核对:`/app/sub2api --version` 返回 `Sub2API 0.1.133 (commit: ebf4d8c3c3e9, built: 2026-06-05T09:13:49Z)`。 +- 远程健康核对:`docker compose ps sub2api` 显示 `healthy`;本机 `http://127.0.0.1:8080/health` 返回 `{"status":"ok"}`。 +- CLIProxyAPI 边界核对:宿主机 `http://127.0.0.1:8317/healthz` 和 Sub2API 容器内 `http://cli-proxy-api:8317/healthz` 均返回 `{"status":"ok"}`。 +- nginx 核对:`nginx -t` 成功,`systemctl is-active nginx` 返回 `active`。 +- 端口边界核对:Sub2API 仅监听 `127.0.0.1:8080`,CLIProxyAPI 仅监听 `127.0.0.1:8317`,公网仅开放 nginx `80/443`。 +- 公网健康核对:`https://catproxy.lilifamily.com/health` 和 `https://proxy.api.lilifamily.com/health` 均返回 `{"status":"ok"}`。 +- 公网设置核对:`https://catproxy.lilifamily.com/api/v1/settings/public` 返回 `version=0.1.133`,并保留 `购买套餐` 菜单和 `omit_auth_context=true`。 +- 自定义页面核对:`https://catproxy.lilifamily.com/custom/shop` 返回 `200`,页面配置仍包含 `https://pay.ldxp.cn`。 +- origin 边界核对:本地非白名单来源访问 `https://origin.proxy.api.lilifamily.com/health` 返回 `403`,符合预期。 +- 注意:本地镜像通过 `docker commit` 生成,OCI label 仍可能继承旧 runtime patch 元数据;运行版本以远程二进制 `--version`、`.env` 中 `SUB2API_IMAGE` 和 Compose 实际镜像为准。 +- 回滚方式:把 `/opt/sub2api/.env` 的 `SUB2API_IMAGE` 回退到上一版 `sub2api:custom-menu-safe-embed-20260527-r2`,再执行 `cd /opt/sub2api && docker compose up -d --no-deps --force-recreate sub2api`;必要时使用备份目录 `/opt/sub2api/backups/deploy-upstream-0.1.133-20260605-021731` 取回部署前文件。