diff --git a/.claude/skills/proxy-deploy/SKILL.md b/.claude/skills/proxy-deploy/SKILL.md new file mode 100644 index 0000000..38184c0 --- /dev/null +++ b/.claude/skills/proxy-deploy/SKILL.md @@ -0,0 +1,92 @@ +--- +name: proxy-deploy +description: 部署 Claude API 代理服务到 K8S ECI。当用户要求部署代理服务、创建新的代理实例、查看代理状态、删除代理服务时使用。触发词: deploy, 部署, 代理, proxy, k8s, eci, 服务状态, 删除服务。 +--- + +# Claude API 代理服务部署 + +用于管理 Claude API 代理服务在 K8S ECI 环境中的部署。 + +## 可用命令 + +### 部署代理服务 + +```bash +pnpm deploy [options] +``` + +**参数:** +- `name` - 服务名称(唯一标识) +- `image` - Docker 镜像地址 + +**选项:** +- `--replicas ` - 副本数(默认: 1) +- `--port ` - 容器端口(默认: 3000) +- `--eip-bandwidth ` - EIP 带宽 Mbps(默认: 5) + +**示例:** +```bash +# 部署单个代理实例 +pnpm deploy claude-proxy-1 registry.cn-beijing.aliyuncs.com/d8dcloud/claude-api-proxy:v0.0.1 + +# 部署 3 个副本 +pnpm deploy claude-proxy-1 registry.cn-beijing.aliyuncs.com/d8dcloud/claude-api-proxy:v0.0.1 --replicas 3 + +# 自定义端口 +pnpm deploy claude-proxy-2 registry.cn-beijing.aliyuncs.com/d8dcloud/claude-api-proxy:v0.0.2 --port 80 +``` + +### 删除代理服务 + +```bash +pnpm deploy delete +``` + +### 查询服务状态 + +```bash +pnpm deploy status +``` + +## 环境配置 + +部署前需要确保 `.env` 文件包含以下配置: + +```env +# K8S API 配置 +K8S_API_URL=http://10.0.0.52:23972 +K8S_API_TOKEN=your_fixed_token_here + +# 域名配置 +DEV_HOST="*.dev.d8d.fun" +DEV_TLS_SECRET_NAME="d8d-proxy-tls" + +# 上游 API(会注入到容器) +ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic +``` + +## 部署特性 + +- **ECI 实例**: 使用阿里云 ECI 弹性容器实例 +- **Spot 实例**: 自动使用抢占式实例降低成本 +- **自动 EIP**: 自动分配公网 IP +- **TLS**: 自动配置 HTTPS 域名访问 +- **健康检查**: 自动配置就绪探针和存活探针 + +## 访问地址格式 + +部署成功后,服务可通过以下地址访问: + +``` +https://-. +``` + +例如: `https://claude-proxy-1-80.dev.d8d.fun` + +## 工作流程 + +1. 确认 `.env` 配置正确 +2. 运行 `pnpm deploy ` 部署服务 +3. 等待 Pod 启动(通常需要 1-2 分钟) +4. 使用 `pnpm deploy status ` 检查状态 +5. 通过返回的 HTTPS 地址访问服务 diff --git a/.claude/skills/release/SKILL.md b/.claude/skills/release/SKILL.md new file mode 100644 index 0000000..c884dac --- /dev/null +++ b/.claude/skills/release/SKILL.md @@ -0,0 +1,86 @@ +--- +name: release +description: 创建和推送版本标签触发 CI/CD 发布流程。当用户要求发布新版本、创建标签、发布 release、触发构建时使用。触发词: release, 发布, 版本, tag, 标签, v0.0.x, 构建镜像, docker build。 +--- + +# 版本发布管理 + +用于创建和管理版本标签,触发 Gitea Actions 自动构建 Docker 镜像。 + +## 发布新版本 + +```bash +./scripts/release_tag.sh [version] +``` + +### 使用方式 + +1. **自动递增版本(推荐)** + ```bash + ./scripts/release_tag.sh + ``` + 自动检测最新版本并递增 PATCH 号。 + +2. **指定版本号** + ```bash + # 以下格式都支持,会自动添加 release/v 前缀 + ./scripts/release_tag.sh 1.0.0 + ./scripts/release_tag.sh v1.0.0 + ./scripts/release_tag.sh release/v1.0.0 + ``` + +3. **查看所有标签** + ```bash + ./scripts/release_tag.sh --list + # 或 + ./scripts/release_tag.sh -l + ``` + +## 版本命名规则 + +- 标签格式: `release/v..` +- 示例: `release/v0.0.1`, `release/v0.0.2`, `release/v1.0.0` +- 从 `release/v0.0.1` 开始 + +## 发布流程 + +执行发布脚本后会自动: + +1. **检查工作目录** - 提示未提交的更改 +2. **拉取最新代码** - `git pull gitea ` +3. **创建标签** - `git tag release/vX.X.X` +4. **推送标签** - `git push gitea release/vX.X.X` +5. **触发 CI** - Gitea Actions 自动构建 Docker 镜像 + +## CI/CD 说明 + +标签推送后,Gitea Actions 会自动: + +1. 构建多架构 Docker 镜像 (amd64, arm64) +2. 推送到阿里云容器镜像仓库 +3. 镜像地址: `registry.cn-beijing.aliyuncs.com/d8dcloud/claude-api-proxy:vX.X.X` + +## 注意事项 + +- 发布前确保所有更改已提交 +- 版本号格式必须符合语义化版本规范 +- ECI 容器环境会自动配置 SSH 连接参数 +- 如果推送失败,检查 `gitea` 远程仓库配置 + +## 完整发布工作流 + +```bash +# 1. 确保代码已提交 +git add . +git commit -m "feat: 新功能描述" +git push gitea main + +# 2. 发布新版本 +./scripts/release_tag.sh + +# 3. 等待 CI 构建完成 +# 访问 Gitea Actions 页面查看构建状态 + +# 4. 部署新版本 +pnpm deploy claude-proxy-1 registry.cn-beijing.aliyuncs.com/d8dcloud/claude-api-proxy:vX.X.X +``` diff --git a/skills-lock.json b/skills-lock.json index a01ef04..b52b062 100644 --- a/skills-lock.json +++ b/skills-lock.json @@ -5,6 +5,14 @@ "source": "anthropics/skills", "sourceType": "github", "computedHash": "b122f4d1e91aa1d83027e050b5b37c3156203ee85458d7b1360bc48167c9e02a" + }, + "proxy-deploy": { + "source": ".claude/skills/proxy-deploy", + "sourceType": "local" + }, + "release": { + "source": ".claude/skills/release", + "sourceType": "local" } } }