createos について
CreateOS Platform Skillsは、CreateOSでクラウドプロジェクトやワークロードを管理・デプロイするためのスキルです。複数のデプロイ方法、環境、ドメイン、運用ツールを扱い、MCPから直接操作できます。
主な機能
- 01GitHub、Dockerイメージ、ファイルからプロジェクトを作成
- 02デプロイの実行と状態確認
- 03環境と変数の管理
- 04ドメイン設定とDNS検証
- 05ログ、メトリクス、セキュリティスキャンの確認
活用シーン
- 01接続済みのGitHubリポジトリからAPIをデプロイ
- 02Gitを使わずファイルをアップロードして試作をデプロイ
- 03ステージング環境と本番環境を分けて設定
MCP 対応
MCPに接続したエージェントが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 エージェント、API、バックエンド、ボット、MCP サーバー、フロントエンド、Webhook、ワーカーなど。
⚠️ 重要:認証
AI エージェント(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 エージェント向けクイックスタート
ファイルを直接デプロイ(最速)
// 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 は、シンプルな静的サイトから複雑なマルチエージェント AI システムまで、あらゆるワークロードをすばやくデプロイできるように設計されたクラウドデプロイプラットフォームです。次の機能を提供します。
- 3 つのデプロイ方法:GitHub の自動デプロイ、Docker イメージ、ファイルの直接アップロード
- 複数環境のサポート:本番、ステージング、開発環境を分離された設定で利用
- 組み込みの CI/CD:git push 時にビルドとデプロイを自動実行
- カスタムドメイン:SSL/TLS と DNS 検証を含む
- リアルタイム分析:リクエストのメトリクス、エラー追跡、パフォーマンス監視
- セキュリティスキャン:デプロイの脆弱性を検出
対象ユーザー
| ユーザーの種類 | 主な用途 |
|---|---|
| AI/ML エンジニア | エージェント、MCP サーバー、RAG パイプライン、LLM サービスのデプロイ |
| バックエンド開発者 | API、マイクロサービス、Webhook、ワーカーのデプロイ |
| フロントエンド開発者 | 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- DNS を検証しますUpdateDomainEnvironment- ドメインを環境に割り当てます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})
制限事項:
- 1 回のアップロードで最大 100 ファイル
- 大規模なプロジェクトには ZIP を使用してください
スキル:デプロイのライフサイクル
┌─────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐
│ queued │ → │ building │ → │ deploying │ → │ deployed │
└─────────┘ └──────────┘ └───────────┘ └──────────┘
│ │
↓ ↓
┌────────┐ ┌──────────┐
│ failed │ │ sleeping │
└────────┘ └──────────┘
| 状態 | 説明 | 利用可能な操作 |
|---|---|---|
queued | ビルド枠の空きを待機中 | キャンセル |
building | ビルド中 | キャンセル、ログの表示 |
deploying | インフラストラクチャに反映中 | 待機 |
deployed | 公開され、トラフィックを処理中 | 環境への割り当て |
failed | ビルドまたはデプロイのエラー | 再試行、ログの表示 |
sleeping | アイドルタイムアウト(コスト削減) | 起動 |
スキル:デプロイの操作
| 操作 | ツール | 備考 |
|---|---|---|
| 一覧表示 | ListDeployments(project_id, limit?, offset?) | 1 ページ最大 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(1 分あたりのリクエスト数)
- 成功率
- アクセス数の多いパス
- エラーの多いパス
スキル:個別のメトリクス
| メトリクス | ツール | 返される内容 |
|---|---|---|
| リクエスト総数 | 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 エージェントのデプロイ
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"})
パターン:マルチエージェントシステム
┌─────────────────────────────────────────────────┐
│ 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 installよりnpm ciを使用します
信頼性
- 自動プロモートは慎重に有効にする — まずステージング環境でテストします
- 以前のデプロイを保持する — 迅速なロールバックを有効にします
- ヘルスチェックを使用する —
portがアプリのリッスンポートと一致していることを確認します - スリープ中のデプロイに対処する — 起動するか、キープアライブを設定します
組織化
- アプリを使用する — 関連するプロジェクトを論理的にグループ化します
- 命名規則を設ける —
{app}-{service}-{env}のパターンを使用します - 環境を文書化する — 各環境に明確な説明を付けます
- 未使用のものを整理する — 古いプロジェクトやデプロイを削除します
トラブルシューティングとエッジケース
よくあるエラー
| エラー | 診断 | 解決策 |
|---|---|---|
| ビルド失敗 | GetBuildLogs | コードエラーを修正し、依存関係を確認します |
| ランタイムクラッシュ | GetDeploymentLogs | 起動時のエラーや不足している環境変数を確認します |
| ヘルスチェック失敗 | アプリがポートで応答していない | port の設定がアプリのポートと一致していることを確認します |
| 502 Bad Gateway | デプロイ後にアプリがクラッシュした | ログを確認し、OOM の場合はメモリを増やします |
| ドメインの保留中 | DNS が反映されていない | 24~48 時間待ち、CNAME レコードを確認します |
| クォータ超過 | GetQuotas | プランをアップグレードするか、未使用のものを削除します |
| デプロイがスリープ中 | アイドルタイムアウト | WakeupDeployment を実行するか、キープアライブを追加します |
エッジケース
高負荷のシナリオ:
- 環境ごとのレプリカは最大 3 つです
- さらに高いスケールが必要な場合は、外部ロードバランサーを検討します
- RPM を監視し、リソースを調整します
モノレポプロジェクト:
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月