关于 createos
CreateOS Platform Skills 是用于通过 CreateOS 管理云项目和部署工作负载的技能,涵盖多种部署方式、环境、域名及运维工具,并支持直接通过 MCP 操作。
主要功能
- 01从 GitHub、Docker 镜像或文件创建项目
- 02触发并检查部署
- 03管理环境与变量
- 04配置域名并验证 DNS
- 05查看日志、指标与安全扫描
适用场景
- 01从已连接的 GitHub 仓库部署 API
- 02无需 Git,上传文件部署原型
- 03设置独立的预发布与生产环境
MCP 相关
该技能指导 MCP 连接的 Agent 使用 CreateOS 工具管理项目、部署、环境和域名等。README 说明 MCP 会自动处理身份验证。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nodeops-app/ skills --skill createos安装后在 Claude Code 中输入/createos确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
config/config.jsonreferences/api-reference.mddeployment-patterns.mdscripts/createos.pydeploy.shquick-deploy.sh详细介绍
CreateOS 平台技能
将任何内容部署到生产环境 — AI Agent、API、后端、机器人、MCP 服务、前端、Webhook、Worker 等。
⚠️ 重要:身份验证
面向 AI Agent(MCP)— 使用此方式
通过 MCP(OpenClaw、MoltBot、ClawdBot、Claude)连接时,无需 API 密钥。 MCP 服务会自动处理身份验证。
MCP 端点: https://api-createos.nodeops.network/mcp
直接调用工具:
CreateProject(...)
UploadDeploymentFiles(...)
ListProjects(...)
面向 REST API(脚本/外部调用)
直接调用 REST 端点(curl、Python requests 等)时:
X-Api-Key: <your-api-key>
Base URL: https://api-createos.nodeops.network
通过 MCP 获取 API 密钥:CreateAPIKey({name: "my-key", expiryAt: "2025-12-31T23:59:59Z"})
🚀 MCP Agent 快速入门
直接部署文件(最快)
// 1. Create upload project
CreateProject({
"uniqueName": "my-app",
"displayName": "My App",
"type": "upload",
"source": {},
"settings": {
"runtime": "node:20",
"port": 3000
}
})
// 2. Upload files and deploy
UploadDeploymentFiles(project_id, {
"files": [
{"path": "package.json", "content": "{\"name\":\"app\",\"scripts\":{\"start\":\"node index.js\"}}"},
{"path": "index.js", "content": "require('http').createServer((req,res)=>{res.end('Hello!')}).listen(3000)"}
]
})
// Result: https://my-app.createos.nodeops.network is live!
从 GitHub 部署(推送时自动部署)
// 1. Get GitHub installation ID
ListConnectedGithubAccounts()
// Returns: [{installationId: "12345", ...}]
// 2. Find repo ID
ListGithubRepositories("12345")
// Returns: [{id: "98765", fullName: "myorg/myrepo", ...}]
// 3. Create VCS project
CreateProject({
"uniqueName": "my-app",
"displayName": "My App",
"type": "vcs",
"source": {
"vcsName": "github",
"vcsInstallationId": "12345",
"vcsRepoId": "98765"
},
"settings": {
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"buildCommand": "npm run build",
"runCommand": "npm start"
}
})
// Auto-deploys on every git push!
部署 Docker 镜像
// 1. Create image project
CreateProject({
"uniqueName": "my-service",
"displayName": "My Service",
"type": "image",
"source": {},
"settings": {
"port": 8080
}
})
// 2. Deploy image
CreateDeployment(project_id, {
"image": "nginx:latest"
})
目录
- 简介
- 核心技能概览
- 项目管理技能
- 部署技能
- 环境管理技能
- 域名与路由技能
- GitHub 集成技能
- 分析与监控技能
- 安全技能
- 组织技能(应用)
- API 密钥管理技能
- 常见部署模式
- 最佳实践
- 故障排除与边缘情况
- API 快速参考
简介
什么是 CreateOS?
CreateOS 是一个云部署平台,旨在快速部署各种工作负载——从简单的静态网站到复杂的多 Agent AI 系统。它提供:
- 三种部署方式:GitHub 自动部署、Docker 镜像、直接上传文件
- 多环境支持:生产、预发布、开发环境,各自使用隔离的配置
- 内置 CI/CD:在 git push 时自动构建和部署
- 自定义域名:包含 SSL/TLS,支持 DNS 验证
- 实时分析:请求指标、错误跟踪、性能监控
- 安全扫描:检测部署中的漏洞
目标用户
| 用户类型 | 主要用例 |
|---|---|
| AI/ML 工程师 | 部署 Agent、MCP 服务、RAG 流水线、大模型服务 |
| 后端开发者 | 部署 API、微服务、Webhook、Worker |
| 前端开发者 | 部署 SPA、SSR 应用、静态网站 |
| DevOps 工程师 | 管理环境、域名、扩缩容和监控 |
| 机器人开发者 | 托管 Discord、Slack、Telegram 机器人 |
支持的技术
运行时:node:18、node:20、node:22、python:3.11、python:3.12、golang:1.22、golang:1.25、rust:1.75、bun:1.1、bun:1.3、static
框架:nextjs、reactjs-spa、reactjs-ssr、vuejs-spa、vuejs-ssr、nuxtjs、astro、remix、express、fastapi、flask、django、gin、fiber、actix
核心技能概览
🔌 可用的 MCP 工具(直接调用,无需身份验证)
通过 MCP(OpenClaw、Claude 等)使用 CreateOS 时,可直接使用以下工具:
项目:
CreateProject- 创建新项目(vcs、image 或 upload 类型)ListProjects- 列出所有项目GetProject- 获取项目详情UpdateProject- 更新项目元数据UpdateProjectSettings- 更新构建/运行时设置DeleteProject- 删除项目
部署:
CreateDeployment- 部署 Docker 镜像(image 项目)TriggerLatestDeployment- 从 GitHub 触发构建(vcs 项目)UploadDeploymentFiles- 上传要部署的文件(upload 项目)UploadDeploymentBase64Files- 以 base64 格式上传二进制文件UploadDeploymentZip- 上传 zip 压缩包ListDeployments- 列出所有部署GetDeployment- 获取部署状态GetBuildLogs- 查看构建日志GetDeploymentLogs- 查看运行时日志RetriggerDeployment- 重试失败的部署CancelDeployment- 取消排队中/正在构建的部署WakeupDeployment- 唤醒休眠中的部署
环境:
CreateProjectEnvironment- 创建环境(production、staging 等)ListProjectEnvironments- 列出环境UpdateProjectEnvironment- 更新环境配置UpdateProjectEnvironmentEnvironmentVariables- 设置环境变量UpdateProjectEnvironmentResources- 调整 CPU/内存/副本数AssignDeploymentToProjectEnvironment- 将部署分配到环境DeleteProjectEnvironment- 删除环境
域名:
CreateDomain- 添加自定义域名ListDomains- 列出域名RefreshDomain- 验证 DNSUpdateDomainEnvironment- 将域名分配到环境DeleteDomain- 移除域名
GitHub:
ListConnectedGithubAccounts- 获取已连接的 GitHub 账户ListGithubRepositories- 列出可访问的代码仓库ListGithubRepositoryBranches- 列出分支
应用:
CreateApp- 创建应用以归组项目ListApps- 列出应用AddProjectsToApp- 将项目添加到应用
用户:
GetCurrentUser- 获取用户信息GetQuotas- 查看使用限额GetSupportedProjectTypes- 列出运行时/框架
功能技能
| 技能类别 | 能力 |
|---|---|
| 项目管理 | 创建、配置、更新、删除、转移项目 |
| 部署 | 构建、部署、回滚、唤醒、取消部署 |
| 环境管理 | 多环境配置、环境变量、资源扩缩 |
| 域名管理 | 自定义域名、SSL、DNS 验证 |
| GitHub 集成 | 自动部署、分支管理、代码仓库访问 |
| 分析 | 请求指标、错误率、性能数据 |
| 安全 | 漏洞扫描、API 密钥管理 |
| 组织 | 将项目归组到应用、管理服务 |
技术技能
| 技能 | 描述 |
|---|---|
| 身份验证 | 基于 API 密钥的身份验证,支持过期管理 |
| 构建 AI | 自动检测构建配置 |
| Dockerfile 支持 | 自定义容器构建 |
| 环境隔离 | 为每个环境单独配置 |
| 资源管理 | CPU、内存、副本数扩缩 |
项目管理技能
技能:创建项目
创建新项目,并完整配置构建和运行时设置。
项目类型
| 类型 | 描述 | 最适合 |
|---|---|---|
vcs | 已连接 GitHub 的代码仓库 | 带 CI/CD 的生产应用 |
image | Docker 容器部署 | 预构建镜像、复杂依赖 |
upload | 直接上传文件 | 快速原型、静态站点 |
VCS 项目创建
功能:关联 GitHub 仓库,以便在推送时自动部署。
用途:启用 GitOps 工作流——推送即可部署,无需手动干预。
实现方法:
CreateProject({
"uniqueName": "my-nextjs-app",
"displayName": "My Next.js Application",
"type": "vcs",
"source": {
"vcsName": "github",
"vcsInstallationId": "12345678",
"vcsRepoId": "98765432"
},
"settings": {
"framework": "nextjs",
"runtime": "node:20",
"port": 3000,
"directoryPath": ".",
"installCommand": "npm install",
"buildCommand": "npm run build",
"runCommand": "npm start",
"buildVars": {
"NODE_ENV": "production",
"NEXT_PUBLIC_API_URL": "https://api.example.com"
},
"runEnvs": {
"DATABASE_URL": "postgresql://...",
"SECRET_KEY": "..."
},
"ignoreBranches": ["develop", "feature/*"],
"hasDockerfile": false,
"useBuildAI": false
},
"appId": "optional-app-uuid",
"enabledSecurityScan": true
})
前提条件:
- 已通过
InstallGithubApp关联 GitHub 账户 - 已向 CreateOS GitHub App 授予仓库访问权限
潜在问题:
vcsRepoId不正确会导致部署失败- 缺少
port设置会导致健康检查失败 - 混淆
buildVars和runEnvs(构建时与运行时)
镜像项目创建
功能:部署预构建的 Docker 镜像,无需构建步骤。
用途:加快部署、支持复杂依赖、兼容现有 CI 流水线。
CreateProject({
"uniqueName": "my-api-service",
"displayName": "My API Service",
"type": "image",
"source": {},
"settings": {
"port": 8080,
"runEnvs": {
"API_KEY": "secret",
"LOG_LEVEL": "info"
}
}
})
影响:
- 没有构建日志(镜像已构建完成)
- 必须单独管理镜像仓库
- 通过镜像标签进行版本控制
上传项目创建
功能:直接上传文件进行部署——无需 Git。
用途:快速原型、迁移、由 CI 生成的构件。
CreateProject({
"uniqueName": "quick-prototype",
"displayName": "Quick Prototype",
"type": "upload",
"source": {},
"settings": {
"framework": "express",
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"buildCommand": "npm run build",
"buildDir": "dist",
"useBuildAI": true
}
})
技能:更新项目设置
修改构建和运行时配置,无需重新创建项目。
UpdateProjectSettings(project_id, {
"framework": "nextjs",
"runtime": "node:22",
"port": 3000,
"installCommand": "npm ci",
"buildCommand": "npm run build",
"runCommand": "npm start",
"buildDir": ".next",
"buildVars": {"NODE_ENV": "production"},
"runEnvs": {"NEW_VAR": "value"},
"ignoreBranches": ["wip/*"],
"hasDockerfile": false,
"useBuildAI": false
})
边缘情况:
- 更改
runtime会在下次部署时触发重新构建 - 更改
port需要重新部署才能生效 ignoreBranches仅影响之后的推送
技能:项目生命周期管理
| 操作 | 工具 | 使用场景 |
|---|---|---|
| 列出项目 | ListProjects(limit?, offset?, name?, type?, status?, app?) | 控制面板、搜索 |
| 获取详情 | GetProject(project_id) | 查看完整配置 |
| 更新元数据 | UpdateProject(project_id, {displayName, description?, enabledSecurityScan?}) | 重命名、切换功能 |
| 删除 | DeleteProject(project_id) | 清理(异步删除) |
| 检查名称 | CheckProjectUniqueName({uniqueName}) | 创建前验证 |
技能:项目转移
在用户之间转移项目所有权。
1. Owner: GetProjectTransferUri(project_id) → returns {uri, token} (valid 6 hours)
2. Owner: Share URI with recipient
3. Recipient: TransferProject(project_id, token)
4. Audit: ListProjectTransferHistory(project_id)
安全影响:
- 令牌 6 小时后过期
- 转移不可撤销
- 所有环境和部署都会一并转移
部署技能
技能:触发部署
VCS 项目
自动触发(推荐):推送到 GitHub 会自动触发部署。
手动触发:
TriggerLatestDeployment(project_id, branch?)
// branch defaults to repo's default branch
镜像项目
CreateDeployment(project_id, {
"image": "nginx:latest"
})
// Supports any valid Docker image reference:
// - nginx:latest
// - myregistry.com/myapp:v1.2.3
// - ghcr.io/org/repo:sha-abc123
上传项目
直接上传文件:
UploadDeploymentFiles(project_id, {
"files": [
{"path": "package.json", "content": "{\"name\":\"app\",...}"},
{"path": "index.js", "content": "const express = require('express')..."},
{"path": "public/style.css", "content": "body { margin: 0; }"}
]
})
Base64 文件(用于二进制内容):
UploadDeploymentBase64Files(project_id, {
"files": [
{"path": "assets/logo.png", "content": "iVBORw0KGgo..."}
]
})
ZIP 上传:
UploadDeploymentZip(project_id, {file: zipBinaryData})
限制:
- 每次上传最多 100 个文件
- 较大的项目请使用 ZIP
技能:部署生命周期
┌─────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐
│ queued │ → │ building │ → │ deploying │ → │ deployed │
└─────────┘ └──────────┘ └───────────┘ └──────────┘
│ │
↓ ↓
┌────────┐ ┌──────────┐
│ failed │ │ sleeping │
└────────┘ └──────────┘
| 状态 | 说明 | 可执行操作 |
|---|---|---|
queued | 等待构建槽位 | 取消 |
building | 正在构建 | 取消、查看日志 |
deploying | 正在推送到基础设施 | 等待 |
deployed | 已上线并提供流量服务 | 分配到环境 |
failed | 构建或部署出错 | 重试、查看日志 |
sleeping | 空闲超时(节省成本) | 唤醒 |
技能:部署操作
| 操作 | 工具 | 备注 |
|---|---|---|
| 列出 | ListDeployments(project_id, limit?, offset?) | 每页最多 20 条,更多结果请翻页 |
| 获取详情 | GetDeployment(project_id, deployment_id) | 完整状态、时间戳、URL |
| 重试 | RetriggerDeployment(project_id, deployment_id, settings?) | settings:“project”或“deployment” |
| 取消 | CancelDeployment(project_id, deployment_id) | 仅适用于 queued/building 状态 |
| 删除 | DeleteDeployment(project_id, deployment_id) | 标记为异步删除 |
| 唤醒 | WakeupDeployment(project_id, deployment_id) | 重启休眠中的部署 |
| 下载 | DownloadDeployment(project_id, deployment_id) | 仅适用于上传项目 |
技能:使用日志调试
构建日志——调试编译/构建失败:
GetBuildLogs(project_id, deployment_id, skip?)
// skip: number of lines to skip (for pagination)
运行时日志——调试应用错误:
GetDeploymentLogs(project_id, deployment_id, since-seconds?)
// since-seconds: look back window (default: 60)
环境日志——汇总某个环境的日志:
GetProjectEnvironmentLogs(project_id, environment_id, since-seconds?)
环境管理技能
技能:创建环境
环境为同一代码库提供相互隔离的配置。
典型设置:
production— 线上流量,最大资源staging— 预生产测试development— 功能开发
VCS 项目环境(需要分支)
CreateProjectEnvironment(project_id, {
"displayName": "Production",
"uniqueName": "production",
"description": "Live production environment",
"branch": "main",
"isAutoPromoteEnabled": true,
"resources": {
"cpu": 500,
"memory": 1024,
"replicas": 2
},
"settings": {
"runEnvs": {
"NODE_ENV": "production",
"DATABASE_URL": "postgresql://prod-db:5432/app",
"REDIS_URL": "redis://prod-cache:6379"
}
}
})
镜像项目环境(无需分支)
CreateProjectEnvironment(project_id, {
"displayName": "Production",
"uniqueName": "production",
"description": "Live production environment",
"resources": {
"cpu": 500,
"memory": 1024,
"replicas": 2
},
"settings": {
"runEnvs": {
"NODE_ENV": "production"
}
}
})
技能:资源管理
| 资源 | 最小值 | 最大值 | 单位 | 影响 |
|---|---|---|---|---|
| CPU | 200 | 500 | 毫核 | 越高,处理速度越快 |
| 内存 | 500 | 1024 | MB | 越高,内存中的数据越多 |
| 副本数 | 1 | 3 | 实例 | 越高,可用性越高 |
UpdateProjectEnvironmentResources(project_id, environment_id, {
"cpu": 500,
"memory": 1024,
"replicas": 3
})
扩缩容注意事项:
- 副本数 > 1 时,应用必须采用无状态设计
- 超出内存限制会导致 OOM 终止
- 达到 CPU 限制时会发生节流(不会终止)
技能:环境变量
UpdateProjectEnvironmentEnvironmentVariables(project_id, environment_id, {
"runEnvs": {
"DATABASE_URL": "postgresql://...",
"API_KEY": "new-secret-key",
"LOG_LEVEL": "debug",
"FEATURE_FLAG_X": "enabled"
},
"port": 8080 // Image projects only
})
最佳实践:
- 切勿将机密提交到代码中——请使用
runEnvs - 为不同环境设置不同的值
- 更改变量后需重新部署才能生效
技能:部署分配
手动控制哪个部署为环境提供服务:
AssignDeploymentToProjectEnvironment(project_id, environment_id, {
"deploymentId": "deployment-uuid"
})
使用场景:
- 回滚到之前的部署
- 切换蓝绿部署
- 金丝雀发布(使用多个环境)
域名与路由技能
技能:添加自定义域名
CreateDomain(project_id, {
"name": "api.mycompany.com",
"environmentId": "optional-env-uuid" // Assign immediately
})
响应中包含 DNS 说明:
Add CNAME record:
api.mycompany.com → <createos-provided-target>
技能:域名验证流程
1. CreateDomain → Status: pending
2. Configure DNS at your registrar
3. Wait for DNS propagation (up to 48 hours)
4. RefreshDomain → Status: active (if verified)
RefreshDomain(project_id, domain_id)
// Only available when status is "pending"
技能:域名与环境分配
将域名流量路由到指定环境:
UpdateDomainEnvironment(project_id, domain_id, {
"environmentId": "production-env-uuid"
})
// Set to null to unassign
多域名设置示例:
app.example.com→ production 环境staging.example.com→ staging 环境dev.example.com→ development 环境
技能:域名操作
| 操作 | 工具 |
|---|---|
| 列出 | ListDomains(project_id) |
| 验证 | RefreshDomain(project_id, domain_id) |
| 分配 | UpdateDomainEnvironment(project_id, domain_id, {environmentId}) |
| 删除 | DeleteDomain(project_id, domain_id) |
GitHub 集成技能
技能:连接 GitHub 账户
InstallGithubApp({
"installationId": 12345678,
"code": "oauth-code-from-github-redirect"
})
流程:
- 用户在 CreateOS 中点击“Connect GitHub”
- 重定向到 GitHub 进行授权
- GitHub 携带
code和installationId重定向回来 - 调用
InstallGithubApp完成连接
技能:发现代码仓库
// 1. Get connected accounts
ListConnectedGithubAccounts()
// Returns: [{installationId, accountName, accountType}, ...]
// 2. List accessible repositories
ListGithubRepositories(installation_id)
// Returns: [{id, name, fullName, private, defaultBranch}, ...]
// 3. List branches for a repo
ListGithubRepositoryBranches(installation_id, "owner/repo", page?, per-page?, protected?)
// Returns: [{name, protected}, ...]
// 4. Get file tree (for monorepo path selection)
GetGithubRepositoryContent(installation_id, {
"repository": "owner/repo",
"branch": "main",
"treeSha": "optional-tree-sha"
})
技能:自动部署配置
分支筛选——从自动部署中忽略指定分支:
UpdateProjectSettings(project_id, {
"ignoreBranches": ["develop", "feature/*", "wip/*"]
})
自动晋级——自动将部署分配到环境:
CreateProjectEnvironment(project_id, {
"branch": "main",
"isAutoPromoteEnabled": true,
// ... other settings
})
当 isAutoPromoteEnabled: true 时,该分支的成功部署会自动在对应环境中生效。
分析与监控技能
技能:综合分析
GetProjectEnvironmentAnalytics(project_id, environment_id, {
"start": 1704067200, // Unix timestamp (default: 1 hour ago)
"end": 1704070800 // Unix timestamp (default: now)
})
返回内容:
- 请求总数
- 状态码分布
- RPM(每分钟请求数)
- 成功率
- 命中最多的路径
- 错误最多的路径
技能:单项指标
| 指标 | 工具 | 返回内容 |
|---|---|---|
| 请求总数 | GetProjectEnvironmentAnalyticsOverallRequests | 总数、2xx、4xx、5xx 计数 |
| RPM | GetProjectEnvironmentAnalyticsRPM | RPM 峰值和平均值 |
| 成功率 | GetProjectEnvironmentAnalyticsSuccessPercentage | (2xx + 3xx) / 总数 |
| 时间序列 | GetProjectEnvironmentAnalyticsRequestsOverTime | 随时间变化的各状态请求数 |
| 热门路径 | GetProjectEnvironmentAnalyticsTopHitPaths | 访问量最高的 10 个路径 |
| 错误路径 | GetProjectEnvironmentAnalyticsTopErrorPaths | 最容易出错的 10 个路径 |
| 分布 | GetEnvAnalyticsReqDistribution | 按状态码细分 |
技能:性能监控
识别问题:
- 检查
SuccessPercentage——数值下降表示存在问题 - 查看
TopErrorPaths——找出有问题的端点 - 分析
RequestsOverTime——发现流量模式 - 监控
RPM——检测流量峰值
安全技能
技能:漏洞扫描
启用扫描:
UpdateProject(project_id, {
"enabledSecurityScan": true
})
触发扫描:
TriggerSecurityScan(project_id, deployment_id)
查看结果:
GetSecurityScan(project_id, deployment_id)
// Returns: {status, vulnerabilities, summary}
下载完整报告:
GetSecurityScanDownloadUri(project_id, deployment_id)
// Only when status is "successful"
// Returns signed URL for report download
重试失败的扫描:
RetriggerSecurityScan(project_id, deployment_id)
// Only when status is "failed"
组织技能(应用)
技能:分组项目
应用可对相关项目和服务进行逻辑分组。
CreateApp({
"name": "E-Commerce Platform",
"description": "All services for the e-commerce system",
"color": "#3B82F6"
})
技能:管理应用内容
// Add projects to app
AddProjectsToApp(app_id, {
"projectIds": ["project-1-uuid", "project-2-uuid"]
})
// Remove projects
RemoveProjectsFromApp(app_id, {
"projectIds": ["project-1-uuid"]
})
// List projects in app
ListProjectsByApp(app_id, limit?, offset?)
// Same for services
AddServicesToApp(app_id, {"serviceIds": [...]})
RemoveServicesFromApp(app_id, {"serviceIds": [...]})
ListServicesByApp(app_id, limit?, offset?)
技能:应用生命周期
| 操作 | 工具 |
|---|---|
| 列出 | ListApps() |
| 更新 | UpdateApp(app_id, {name, description?, color?}) |
| 删除 | DeleteApp(app_id) |
注意:删除应用会将关联项目/服务的 appId 设为 null(不会删除这些项目/服务)。
API 密钥管理技能
技能:创建 API 密钥
CreateAPIKey({
"name": "production-key",
"description": "API key for production CI/CD",
"expiryAt": "2025-12-31T23:59:59Z"
})
// Returns: {id, name, key, expiryAt}
// IMPORTANT: key is only shown once at creation
技能:API 密钥操作
| 操作 | 工具 |
|---|---|
| 列出 | ListAPIKeys() |
| 更新 | UpdateAPIKey(api_key_id, {name, description?}) |
| 撤销 | RevokeAPIKey(api_key_id) |
| 检查名称 | CheckAPIKeyUniqueName({uniqueName}) |
技能:用户与配额管理
GetCurrentUser()
// Returns: user profile information
GetQuotas()
// Returns: {projects: {used, limit}, apiKeys: {used, limit}, ...}
GetSupportedProjectTypes()
// Returns: current list of supported runtimes and frameworks
常见部署模式
模式:AI Agent 部署
CreateProject({
"uniqueName": "intelligent-agent",
"displayName": "Intelligent Agent",
"type": "vcs",
"source": {"vcsName": "github", "vcsInstallationId": "...", "vcsRepoId": "..."},
"settings": {
"runtime": "python:3.12",
"port": 8000,
"installCommand": "pip install -r requirements.txt",
"runCommand": "python -m uvicorn agent:app --host 0.0.0.0 --port 8000",
"runEnvs": {
"OPENAI_API_KEY": "sk-...",
"ANTHROPIC_API_KEY": "sk-ant-...",
"LANGCHAIN_TRACING": "true",
"AGENT_MEMORY_BACKEND": "redis"
}
}
})
模式:MCP 服务部署
CreateProject({
"uniqueName": "my-mcp-server",
"displayName": "Custom MCP Server",
"type": "vcs",
"source": {"vcsName": "github", "vcsInstallationId": "...", "vcsRepoId": "..."},
"settings": {
"runtime": "node:20",
"port": 3000,
"installCommand": "npm install",
"runCommand": "node server.js",
"runEnvs": {
"MCP_TRANSPORT": "sse",
"MCP_PATH": "/mcp"
}
}
})
MCP 端点:https://{uniqueName}.createos.nodeops.network/mcp
模式:RAG 流水线
CreateProject({
"uniqueName": "rag-pipeline",
"displayName": "RAG Pipeline Service",
"type": "vcs",
"settings": {
"runtime": "python:3.12",
"port": 8000,
"runCommand": "uvicorn main:app --host 0.0.0.0 --port 8000",
"runEnvs": {
"PINECONE_API_KEY": "...",
"PINECONE_ENVIRONMENT": "us-west1-gcp",
"OPENAI_API_KEY": "...",
"EMBEDDING_MODEL": "text-embedding-3-small",
"CHUNK_SIZE": "512",
"CHUNK_OVERLAP": "50"
}
}
})
模式:Discord/Slack 机器人
CreateProject({
"uniqueName": "discord-bot",
"displayName": "Discord Bot",
"type": "image",
"source": {},
"settings": {
"port": 8080,
"runEnvs": {
"DISCORD_TOKEN": "...",
"DISCORD_CLIENT_ID": "...",
"BOT_PREFIX": "!",
"LOG_CHANNEL_ID": "..."
}
}
})
// Deploy with:
CreateDeployment(project_id, {"image": "my-discord-bot:v1.0.0"})
模式:多 Agent 系统
┌─────────────────────────────────────────────────┐
│ App: Agent Swarm │
├─────────────────┬─────────────────┬─────────────┤
│ Orchestrator │ Worker Agent │ Worker Agent│
│ (coordinator) │ (researcher) │ (executor) │
└────────┬────────┴────────┬────────┴──────┬──────┘
│ │ │
└────── HTTP/gRPC communication ──┘
// 1. Create app
CreateApp({"name": "Agent Swarm"})
// 2. Create orchestrator
CreateProject({
"uniqueName": "orchestrator",
"type": "vcs",
"appId": app_id,
"settings": {
"runEnvs": {
"WORKER_RESEARCHER_URL": "https://researcher.createos.nodeops.network",
"WORKER_EXECUTOR_URL": "https://executor.createos.nodeops.network"
}
}
})
// 3. Create workers
CreateProject({"uniqueName": "researcher", "appId": app_id, ...})
CreateProject({"uniqueName": "executor", "appId": app_id, ...})
模式:蓝绿部署
1. CreateProjectEnvironment "blue" with branch "main"
2. CreateProjectEnvironment "green" with branch "main"
3. CreateDomain "app.example.com" → assign to "blue"
4. Deploy new version to "green"
5. Test via green's environment URL
6. UpdateDomainEnvironment → switch to "green"
7. "blue" becomes the standby
模式:回滚
// 1. Find previous good deployment
ListDeployments(project_id, {limit: 10})
// Identify deployment_id of last known good
// 2. Assign to environment
AssignDeploymentToProjectEnvironment(project_id, environment_id, {
"deploymentId": "previous-good-deployment-id"
})
最佳实践
安全
- 切勿将密钥硬编码 — 对所有敏感数据使用
runEnvs - 启用安全扫描 — 尽早发现漏洞
- 轮换 API 密钥 — 设置合理的有效期
- 隔离环境 — 为不同环境使用不同的密钥
性能
- 合理配置资源 — 从小规模开始,根据指标扩容
- 使用副本保障可用性 — 生产环境至少 2 个
- 监控分析数据 — 为错误率飙升设置警报
- 优化构建 — 使用
npm ci,而非npm install
可靠性
- 谨慎启用自动晋级 — 先在暂存环境中测试
- 保留之前的部署 — 以便快速回滚
- 使用健康检查 — 确保
port与应用的监听端口一致 - 处理休眠部署 — 唤醒部署或配置保持活动机制
组织管理
- 使用应用 — 对相关项目进行逻辑分组
- 遵循命名规范 — 使用
{app}-{service}-{env}模式 - 记录环境信息 — 为每个环境提供清晰的描述
- 清理未使用资源 — 删除旧项目和部署
故障排查与边缘情况
常见错误
| 错误 | 诊断 | 解决方案 |
|---|---|---|
| 构建失败 | GetBuildLogs | 修复代码错误,检查依赖项 |
| 运行时崩溃 | GetDeploymentLogs | 检查启动错误和缺失的环境变量 |
| 健康检查失败 | 应用未在端口上响应 | 确认 port 设置与应用端口一致 |
| 502 Bad Gateway | 应用在部署后崩溃 | 检查日志;如果发生 OOM,则增加内存 |
| 域名待处理 | DNS 尚未传播 | 等待 24-48h,并验证 CNAME 记录 |
| 超出配额 | GetQuotas | 升级套餐或删除未使用的资源 |
| 部署休眠 | 空闲超时 | 使用 WakeupDeployment 或添加保持活动机制 |
边缘情况
高负载场景:
- 每个环境最多 3 个副本
- 规模需求更高时,可考虑使用外部负载均衡器
- 监控 RPM 并调整资源
Monorepo 项目:
- 将
directoryPath设置为子目录 - 使用
GetGithubRepositoryContent探索项目结构
私有 npm/pip 包:
- 将身份验证令牌添加到
buildVars - 在仓库中使用
.npmrc或pip.conf
长时间运行的构建:
- 构建超时时间为 15 分钟
- 复杂构建请使用
hasDockerfile: true - 为镜像项目预先构建镜像
API 快速参考
项目生命周期
CreateProject → ListProjects → GetProject → UpdateProject → UpdateProjectSettings → DeleteProject
CheckProjectUniqueName | GetProjectTransferUri → TransferProject | ListProjectTransferHistory
部署生命周期
CreateDeployment | TriggerLatestDeployment | UploadDeploymentFiles | UploadDeploymentBase64Files | UploadDeploymentZip
ListDeployments → GetDeployment → AssignDeploymentToProjectEnvironment
RetriggerDeployment | CancelDeployment | DeleteDeployment | WakeupDeployment | DownloadDeployment
GetBuildLogs | GetDeploymentLogs
环境生命周期
CreateProjectEnvironment → ListProjectEnvironments → UpdateProjectEnvironment → DeleteProjectEnvironment
CheckProjectEnvironmentUniqueName | AssignDeploymentToProjectEnvironment
UpdateProjectEnvironmentEnvironmentVariables | UpdateProjectEnvironmentResources
GetProjectEnvironmentLogs
域名生命周期
CreateDomain → ListDomains → RefreshDomain → UpdateDomainEnvironment → DeleteDomain
GitHub 集成
InstallGithubApp → ListConnectedGithubAccounts
ListGithubRepositories → ListGithubRepositoryBranches → GetGithubRepositoryContent
分析
GetProjectEnvironmentAnalytics (comprehensive)
GetProjectEnvironmentAnalyticsOverallRequests | GetProjectEnvironmentAnalyticsRPM
GetProjectEnvironmentAnalyticsSuccessPercentage | GetProjectEnvironmentAnalyticsRequestsOverTime
GetProjectEnvironmentAnalyticsTopHitPaths | GetProjectEnvironmentAnalyticsTopErrorPaths
GetEnvAnalyticsReqDistribution
安全
TriggerSecurityScan → GetSecurityScan → GetSecurityScanDownloadUri
RetriggerSecurityScan
应用
CreateApp → ListApps → UpdateApp → DeleteApp
AddProjectsToApp | RemoveProjectsFromApp | ListProjectsByApp
AddServicesToApp | RemoveServicesFromApp | ListServicesByApp
API 密钥与用户
CreateAPIKey → ListAPIKeys → UpdateAPIKey → RevokeAPIKey
CheckAPIKeyUniqueName | GetCurrentUser | GetQuotas | GetSupportedProjectTypes
命名限制
| 字段 | 最小值 | 最大值 | 模式 |
|---|---|---|---|
| 项目 uniqueName | 4 | 32 | ^[a-zA-Z0-9-]+$ |
| 项目 displayName | 4 | 48 | ^[a-zA-Z0-9 _-]+$ |
| 描述 | 4 | 2048 | 任意文本 |
| 环境 uniqueName | 4 | 32 | ^[a-zA-Z0-9-]+$ |
| 环境 displayName | 4 | 48 | ^[a-zA-Z0-9 _-]+$ |
| API 密钥名称 | 4 | 48 | ^[a-zA-Z0-9-]+$ |
| 域名 | 3 | 255 | 有效域名 |
另请参阅
如果用户要将现有项目从其他云平台迁移过来,而不是从头开始,请优先使用迁移类技能,而非通用的 createos 流程:
vercel-to-createos— 目前可用。当仓库包含vercel.json、.vercel/或@vercel/*依赖项,或者用户提到从 Vercel 迁移时使用。netlify-to-createos、railway-to-createos、heroku-to-createos、render-to-createos、flyio-to-createos— 预留占位项。在这些技能发布之前,请引导用户通过mailto:[email protected]联系迁移顾问。
有关完整的迁移技能索引,请参阅仓库根目录中的 MIGRATIONS.md。
最后更新:2025 年 1 月