C

createos

by @nodeops-appv1.0.0
0.0(0)

利用CreateOS平台将AI代理、API、后端服务和机器人等快速部署到生产环境,加速产品上市。

Production DeploymentBackend PlatformAI Agent DevelopmentAPI ManagementGitHub
安装方式
npx skills add nodeops-app/skills --skill createos
compare_arrows

Before / After 效果对比

1
使用前

部署AI应用、API等至生产环境流程复杂,耗时费力。

使用后

通过CreateOS平台,快速将AI应用、API等部署上线,高效便捷。

description SKILL.md

createos

CreateOS Platform Skills Ship anything to production — AI agents, APIs, backends, bots, MCP servers, frontends, webhooks, workers, and more. ⚠️ IMPORTANT: Authentication For AI Agents (MCP) - USE THIS When connected via MCP (OpenClaw, MoltBot, ClawdBot, Claude), NO API KEY NEEDED. The MCP server handles authentication automatically. MCP Endpoint: https://api-createos.nodeops.network/mcp Just call the tools directly: CreateProject(...) UploadDeploymentFiles(...) ListProjects(...) For REST API (Scripts/External) When calling REST endpoints directly (curl, Python requests, etc.): X-Api-Key: Base URL: https://api-createos.nodeops.network Get API key via MCP: CreateAPIKey({name: "my-key", expiryAt: "2025-12-31T23:59:59Z"}) 🚀 Quick Start for MCP Agents Deploy Files Directly (Fastest) // 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.io is live! Deploy from GitHub (Auto-deploy on push) // 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! Deploy Docker Image // 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" }) Table of Contents Introduction Core Skills Overview Project Management Skills Deployment Skills Environment Management Skills Domain & Routing Skills GitHub Integration Skills Analytics & Monitoring Skills Security Skills Organization Skills (Apps) API Key Management Skills Common Deployment Patterns Best Practices Troubleshooting & Edge Cases API Quick Reference Introduction What is CreateOS? CreateOS is a cloud deployment platform designed for rapid shipping of any workload — from simple static sites to complex multi-agent AI systems. It provides: Three deployment methods: GitHub auto-deploy, Docker images, direct file upload Multi-environment support: Production, staging, development with isolated configs Built-in CI/CD: Automatic builds and deployments on git push Custom domains: SSL/TLS included, DNS verification Real-time analytics: Request metrics, error tracking, performance monitoring Security scanning: Vulnerability detection for deployments Target Users User Type Primary Use Cases AI/ML Engineers Deploy agents, MCP servers, RAG pipelines, LLM services Backend Developers Ship APIs, microservices, webhooks, workers Frontend Developers Deploy SPAs, SSR apps, static sites DevOps Engineers Manage environments, domains, scaling, monitoring Bot Developers Host Discord, Slack, Telegram bots Supported Technologies Runtimes: 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 Frameworks: nextjs, reactjs-spa, reactjs-ssr, vuejs-spa, vuejs-ssr, nuxtjs, astro, remix, express, fastapi, flask, django, gin, fiber, actix Core Skills Overview 🔌 MCP Tools Available (Direct Call - No Auth Needed) When using CreateOS via MCP (OpenClaw, Claude, etc.), these tools are available directly: Projects: CreateProject - Create new project (vcs, image, or upload type) ListProjects - List all projects GetProject - Get project details UpdateProject - Update project metadata UpdateProjectSettings - Update build/runtime settings DeleteProject - Delete project Deployments: CreateDeployment - Deploy Docker image (image projects) TriggerLatestDeployment - Trigger build from GitHub (vcs projects) UploadDeploymentFiles - Upload files to deploy (upload projects) UploadDeploymentBase64Files - Upload binary files as base64 UploadDeploymentZip - Upload zip archive ListDeployments - List all deployments GetDeployment - Get deployment status GetBuildLogs - View build logs GetDeploymentLogs - View runtime logs RetriggerDeployment - Retry failed deployment CancelDeployment - Cancel queued/building deployment WakeupDeployment - Wake sleeping deployment Environments: CreateProjectEnvironment - Create environment (production, staging, etc.) ListProjectEnvironments - List environments UpdateProjectEnvironment - Update environment config UpdateProjectEnvironmentEnvironmentVariables - Set env vars UpdateProjectEnvironmentResources - Scale CPU/memory/replicas AssignDeploymentToProjectEnvironment - Assign deployment to env DeleteProjectEnvironment - Delete environment Domains: CreateDomain - Add custom domain ListDomains - List domains RefreshDomain - Verify DNS UpdateDomainEnvironment - Assign domain to environment DeleteDomain - Remove domain GitHub: ListConnectedGithubAccounts - Get connected GitHub accounts ListGithubRepositories - List accessible repos ListGithubRepositoryBranches - List branches Apps: CreateApp - Create app to group projects ListApps - List apps AddProjectsToApp - Add projects to app User: GetCurrentUser - Get user info GetQuotas - Check usage limits GetSupportedProjectTypes - List runtimes/frameworks Functional Skills Skill Category Capabilities Project Management Create, configure, update, delete, transfer projects Deployment Build, deploy, rollback, wake, cancel deployments Environment Management Multi-env configs, env vars, resource scaling Domain Management Custom domains, SSL, DNS verification GitHub Integration Auto-deploy, branch management, repo access Analytics Request metrics, error rates, performance data Security Vulnerability scanning, API key management Organization Group projects into apps, manage services Technical Skills Skill Description Authentication API key-based auth with expiry management Build AI Automatic build configuration detection Dockerfile Support Custom container builds Environment Isolation Separate configs per environment Resource Management CPU, memory, replica scaling Project Management Skills Skill: Create Projects Create new projects with full configuration for build and runtime settings. Project Types Type Description Best For vcs GitHub-connected repository Production apps with CI/CD image Docker container deployment Pre-built images, complex deps upload Direct file upload Quick prototypes, static sites VCS Project Creation What it does: Links a GitHub repository for automatic deployments on push. Why it's useful: Enables GitOps workflow — push to deploy with zero manual intervention. How to implement: 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 }) Prerequisites: GitHub account connected via InstallGithubApp Repository access granted to CreateOS GitHub App Potential pitfalls: Incorrect vcsRepoId causes deployment failures Missing port setting results in health check failures buildVars vs runEnvs confusion (build-time vs runtime) Image Project Creation What it does: Deploys pre-built Docker images without build step. Why it's useful: Faster deployments, complex dependencies, existing CI pipelines. CreateProject({ "uniqueName": "my-api-service", "displayName": "My API Service", "type": "image", "source": {}, "settings": { "port": 8080, "runEnvs": { "API_KEY": "secret", "LOG_LEVEL": "info" } } }) Implications: No build logs (image already built) Must manage image registry separately Version control via image tags Upload Project Creation What it does: Deploy by uploading files directly — no Git required. Why it's useful: Quick prototypes, migrations, CI-generated artifacts. 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 } }) Skill: Update Project Settings Modify build and runtime configuration without recreating projects. 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 }) Edge cases: Changing runtime triggers rebuild on next deployment Changing port requires redeployment to take effect ignoreBranches only affects future pushes Skill: Project Lifecycle Management Operation Tool Use Case List projects ListProjects(limit?, offset?, name?, type?, status?, app?) Dashboard, search Get details GetProject(project_id) View full config Update metadata UpdateProject(project_id, {displayName, description?, enabledSecurityScan?}) Rename, toggle features Delete DeleteProject(project_id) Cleanup (async deletion) Check name CheckProjectUniqueName({uniqueName}) Validation before create Skill: Project Transfer Transfer project ownership between users. 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) Security implications: Token expires after 6 hours Transfer is irreversible All environments and deployments transfer Deployment Skills Skill: Trigger Deployments For VCS Projects Automatic (recommended): Push to GitHub triggers deployment automatically. Manual trigger: TriggerLatestDeployment(project_id, branch?) // branch defaults to repo's default branch For Image Projects 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 For Upload Projects Direct files: 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 files (for binary content): UploadDeploymentBase64Files(project_id, { "files": [ {"path": "assets/logo.png", "content": "iVBORw0KGgo..."} ] }) ZIP upload: UploadDeploymentZip(project_id, {file: zipBinaryData}) Limitations: Max 100 files per upload Use ZIP for larger projects Skill: Deployment Lifecycle ┌─────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐ │ queued │ → │ building │ → │ deploying │ → │ deployed │ └─────────┘ └──────────┘ └───────────┘ └──────────┘ │ │ ↓ ↓ ┌────────┐ ┌──────────┐ │ failed │ │ sleeping │ └────────┘ └──────────┘ State Description Actions Available queued Waiting for build slot Cancel building Build in progress Cancel, View logs deploying Pushing to infrastructure Wait deployed Live and serving traffic Assign to env failed Build or deploy error Retry, View logs sleeping Idle timeout (cost saving) Wake up Skill: Deployment Operations Operation Tool Notes List ListDeployments(project_id, limit?, offset?) Max 20/page, paginate for more Get details GetDeployment(project_id, deployment_id) Full status, timestamps, URLs Retry RetriggerDeployment(project_id, deployment_id, settings?) settings: "project" or "deployment" Cancel CancelDeployment(project_id, deployment_id) Only queued/building states Delete DeleteDeployment(project_id, deployment_id) Marks for async deletion Wake WakeupDeployment(project_id, deployment_id) Restarts sleeping deployment Download DownloadDeployment(project_id, deployment_id) Upload projects only Skill: Debug with Logs Build logs — Debug compilation/build failures: GetBuildLogs(project_id, deployment_id, skip?) // skip: number of lines to skip (for pagination) Runtime logs — Debug application errors: GetDeploymentLogs(project_id, deployment_id, since-seconds?) // since-seconds: look back window (default: 60) Environment logs — Aggregate logs for an environment: GetProjectEnvironmentLogs(project_id, environment_id, since-seconds?) Environment Management Skills Skill: Create Environments Environments provide isolated configurations for the same codebase. Typical setup: production — Live traffic, max resources staging — Pre-production testing development — Feature development VCS Project Environment (branch required) 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" } } }) Image Project Environment (no branch) CreateProjectEnvironment(project_id, { "displayName": "Production", "uniqueName": "production", "description": "Live production environment", "resources": { "cpu": 500, "memory": 1024, "replicas": 2 }, "settings": { "runEnvs": { "NODE_ENV": "production" } } }) Skill: Resource Management Resource Min Max Unit Implications CPU 200 500 millicores Higher = faster processing Memory 500 1024 MB Higher = more data in memory Replicas 1 3 instances Higher = more availability UpdateProjectEnvironmentResources(project_id, environment_id, { "cpu": 500, "memory": 1024, "replicas": 3 }) Scaling considerations: Replicas > 1 requires stateless application design Memory limits cause OOM kills if exceeded CPU throttling occurs at limit (not killed) Skill: Environment Variables 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 }) Best practices: Never commit secrets to code — use runEnvs Use different values per environment Redeploy after changing vars for effect Skill: Deployment Assignment Manually control which deployment serves an environment: AssignDeploymentToProjectEnvironment(project_id, environment_id, { "deploymentId": "deployment-uuid" }) Use cases: Rollback to previous deployment Blue-green deployment switching Canary releases (with multiple envs) Domain & Routing Skills Skill: Add Custom Domains CreateDomain(project_id, { "name": "api.mycompany.com", "environmentId": "optional-env-uuid" // Assign immediately }) Response includes DNS instructions: Add CNAME record: api.mycompany.com → Skill: Domain Verification Flow 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" Skill: Domain-Environment Assignment Route domain traffic to specific environment: UpdateDomainEnvironment(project_id, domain_id, { "environmentId": "production-env-uuid" }) // Set to null to unassign Multi-domain setup example: app.example.com → production environment staging.example.com → staging environment dev.example.com → development environment Skill: Domain Operations Operation Tool List ListDomains(project_id) Verify RefreshDomain(project_id, domain_id) Assign UpdateDomainEnvironment(project_id, domain_id, {environmentId}) Delete DeleteDomain(project_id, domain_id) GitHub Integration Skills Skill: Connect GitHub Account InstallGithubApp({ "installationId": 12345678, "code": "oauth-code-from-github-redirect" }) Flow: User clicks "Connect GitHub" in CreateOS Redirected to GitHub for authorization GitHub redirects back with code and installationId Call InstallGithubApp to complete connection Skill: Repository Discovery // 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" }) Skill: Auto-Deploy Configuration Branch filtering — Ignore branches from auto-deploy: UpdateProjectSettings(project_id, { "ignoreBranches": ["develop", "feature/", "wip/"] }) Auto-promote — Automatically assign deployments to environment: CreateProjectEnvironment(project_id, { "branch": "main", "isAutoPromoteEnabled": true, // ... other settings }) When isAutoPromoteEnabled: true, successful deployments from the branch automatically become active in that environment. Analytics & Monitoring Skills Skill: Comprehensive Analytics GetProjectEnvironmentAnalytics(project_id, environment_id, { "start": 1704067200, // Unix timestamp (default: 1 hour ago) "end": 1704070800 // Unix timestamp (default: now) }) Returns: Overall request counts Status code distribution RPM (requests per minute) Success percentage Top hit paths Top error paths Skill: Individual Metrics Metric Tool Returns Overall requests GetProjectEnvironmentAnalyticsOverallRequests Total, 2xx, 4xx, 5xx counts RPM GetProjectEnvironmentAnalyticsRPM Peak and average RPM Success % GetProjectEnvironmentAnalyticsSuccessPercentage (2xx + 3xx) / total Time series GetProjectEnvironmentAnalyticsRequestsOverTime Requests by status over time Top paths GetProjectEnvironmentAnalyticsTopHitPaths Top 10 most accessed Error paths GetProjectEnvironmentAnalyticsTopErrorPaths Top 10 error-prone Distribution GetEnvAnalyticsReqDistribution Breakdown by status code Skill: Performance Monitoring Identify issues: Check SuccessPercentage — drop indicates problems Review TopErrorPaths — find problematic endpoints Analyze RequestsOverTime — spot traffic patterns Monitor RPM — detect traffic spikes Security Skills Skill: Vulnerability Scanning Enable scanning: UpdateProject(project_id, { "enabledSecurityScan": true }) Trigger scan: TriggerSecurityScan(project_id, deployment_id) View results: GetSecurityScan(project_id, deployment_id) // Returns: {status, vulnerabilities, summary} Download full report: GetSecurityScanDownloadUri(project_id, deployment_id) // Only when status is "successful" // Returns signed URL for report download Retry failed scan: RetriggerSecurityScan(project_id, deployment_id) // Only when status is "failed" Organization Skills (Apps) Skill: Group Projects Apps provide logical grouping for related projects and services. CreateApp({ "name": "E-Commerce Platform", "description": "All services for the e-commerce system", "color": "#3B82F6" }) Skill: Manage App Contents // 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?) Skill: App Lifecycle Operation Tool List ListApps() Update UpdateApp(app_id, {name, description?, color?}) Delete DeleteApp(app_id) Note: Deleting an app sets appId: null on associated projects/services (doesn't delete them). API Key Management Skills Skill: Create API Keys 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 Skill: API Key Operations Operation Tool List ListAPIKeys() Update UpdateAPIKey(api_key_id, {name, description?}) Revoke RevokeAPIKey(api_key_id) Check name CheckAPIKeyUniqueName({uniqueName}) Skill: User & Quota Management GetCurrentUser() // Returns: user profile information GetQuotas() // Returns: {projects: {used, limit}, apiKeys: {used, limit}, ...} GetSupportedProjectTypes() // Returns: current list of supported runtimes and frameworks Common Deployment Patterns Pattern: AI Agent Deployment 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" } } }) Pattern: MCP Server Deployment 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 Endpoint: https://{uniqueName}.createos.io/mcp Pattern: RAG Pipeline 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" } } }) Pattern: Discord/Slack Bot 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"}) Pattern: Multi-Agent System ┌─────────────────────────────────────────────────┐ │ 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.io", "WORKER_EXECUTOR_URL": "https://executor.createos.io" } } }) // 3. Create workers CreateProject({"uniqueName": "researcher", "appId": app_id, ...}) CreateProject({"uniqueName": "executor", "appId": app_id, ...}) Pattern: Blue-Green Deployment 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 Pattern: Rollback // 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" }) Best Practices Security Never hardcode secrets — Use runEnvs for all sensitive data Enable security scanning — Catch vulnerabilities early Rotate API keys — Set reasonable expiry dates Use environment isolation — Different secrets per environment Performance Right-size resources — Start small, scale based on metrics Use replicas for availability — Min 2 for production Monitor analytics — Set up alerts for error rate spikes Optimize builds — Use npm ci over npm install Reliability Enable auto-promote carefully — Test in staging first Keep previous deployments — Enable quick rollbacks Use health checks — Ensure port matches app's listen port Handle sleeping deployments — Wake or configure keep-alive Organization Use Apps — Group related projects logically Naming conventions — {app}-{service}-{env} pattern Document environments — Clear descriptions for each Clean up unused — Delete old projects and deployments Troubleshooting & Edge Cases Common Errors Error Diagnosis Solution Build failed GetBuildLogs Fix code errors, check dependencies Runtime crash GetDeploymentLogs Check startup errors, missing env vars Health check fail App not responding on port Verify port setting matches app 502 Bad Gateway App crashed after deploy Check logs, increase memory if OOM Domain pending DNS not propagated Wait 24-48h, verify CNAME record Quota exceeded GetQuotas Upgrade plan or delete unused Deployment sleeping Idle timeout WakeupDeployment or add keep-alive Edge Cases High-load scenarios: Max 3 replicas per environment Consider external load balancer for higher scale Monitor RPM and adjust resources Monorepo projects: Set directoryPath to subdirectory Use GetGithubRepositoryContent to explore structure Private npm/pip packages: Add auth tokens to buildVars Use .npmrc or pip.conf in repo Long-running builds: Build timeout is 15 minutes Use hasDockerfile: true for complex builds Pre-build images for image projects API Quick Reference Project Lifecycle CreateProject → ListProjects → GetProject → UpdateProject → UpdateProjectSettings → DeleteProject CheckProjectUniqueName | GetProjectTransferUri → TransferProject | ListProjectTransferHistory Deployment Lifecycle CreateDeployment | TriggerLatestDeployment | UploadDeploymentFiles | UploadDeploymentBase64Files | UploadDeploymentZip ListDeployments → GetDeployment → AssignDeploymentToProjectEnvironment RetriggerDeployment | CancelDeployment | DeleteDeployment | WakeupDeployment | DownloadDeployment GetBuildLogs | GetDeploymentLogs Environment Lifecycle CreateProjectEnvironment → ListProjectEnvironments → UpdateProjectEnvironment → DeleteProjectEnvironment CheckProjectEnvironmentUniqueName | AssignDeploymentToProjectEnvironment UpdateProjectEnvironmentEnvironmentVariables | UpdateProjectEnvironmentResources GetProjectEnvironmentLogs Domain Lifecycle CreateDomain → ListDomains → RefreshDomain → UpdateDomainEnvironment → DeleteDomain GitHub Integration InstallGithubApp → ListConnectedGithubAccounts ListGithubRepositories → ListGithubRepositoryBranches → GetGithubRepositoryContent Analytics GetProjectEnvironmentAnalytics (comprehensive) GetProjectEnvironmentAnalyticsOverallRequests | GetProjectEnvironmentAnalyticsRPM GetProjectEnvironmentAnalyticsSuccessPercentage | GetProjectEnvironmentAnalyticsRequestsOverTime GetProjectEnvironmentAnalyticsTopHitPaths | GetProjectEnvironmentAnalyticsTopErrorPaths GetEnvAnalyticsReqDistribution Security TriggerSecurityScan → GetSecurityScan → GetSecurityScanDownloadUri RetriggerSecurityScan Apps CreateApp → ListApps → UpdateApp → DeleteApp AddProjectsToApp | RemoveProjectsFromApp | ListProjectsByApp AddServicesToApp | RemoveServicesFromApp | ListServicesByApp API Keys & User CreateAPIKey → ListAPIKeys → UpdateAPIKey → RevokeAPIKey CheckAPIKeyUniqueName | GetCurrentUser | GetQuotas | GetSupportedProjectTypes Naming Constraints Field Min Max Pattern Project uniqueName 4 32 ^[a-zA-Z0-9-]+$ Project displayName 4 48 ^[a-zA-Z0-9 _-]+$ Description 4 2048 Any text Environment uniqueName 4 32 ^[a-zA-Z0-9-]+$ Environment displayName 4 48 ^[a-zA-Z0-9 _-]+$ API key name 4 48 ^[a-zA-Z0-9-]+$ Domain name 3 255 Valid domain Last updated: January 2025Weekly Installs207Repositorynodeops-app/skillsGitHub Stars3First SeenFeb 8, 2026Security AuditsGen Agent Trust HubWarnSocketPassSnykWarnInstalled onpi109openclaw85gemini-cli47opencode47github-copilot46codex46

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量0
评分0.0 / 5.0
版本1.0.0
更新日期2026年3月18日
对比案例1 组

用户评分

0.0(0)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月18日
最后更新2026年3月18日