mcpField
C
createos

createos

github.com/nodeops-appクラウド・DevOps21.7k 回インストール5 週間前に更新
リポジトリ

createos について

CreateOS Platform Skillsは、CreateOSでクラウドプロジェクトやワークロードを管理・デプロイするためのスキルです。複数のデプロイ方法、環境、ドメイン、運用ツールを扱い、MCPから直接操作できます。

主な機能

  1. 01GitHub、Dockerイメージ、ファイルからプロジェクトを作成
  2. 02デプロイの実行と状態確認
  3. 03環境と変数の管理
  4. 04ドメイン設定とDNS検証
  5. 05ログ、メトリクス、セキュリティスキャンの確認

活用シーン

  1. 01接続済みのGitHubリポジトリからAPIをデプロイ
  2. 02Gitを使わずファイルをアップロードして試作をデプロイ
  3. 03ステージング環境と本番環境を分けて設定

MCP 対応

MCPに接続したエージェントがCreateOSのツールを使い、プロジェクト、デプロイ、環境、ドメインなどを管理するためのスキルです。READMEによると、認証はMCPが自動で処理します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nodeops-app/skills --skill createos

インストール後、Claude Code で/createosを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config/
config.json
references/
api-reference.md
deployment-patterns.md
scripts/
createos.py
deploy.sh
quick-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"
})

目次

  1. はじめに
  2. コアスキルの概要
  3. プロジェクト管理スキル
  4. デプロイスキル
  5. 環境管理スキル
  6. ドメインとルーティングのスキル
  7. GitHub 連携スキル
  8. 分析と監視のスキル
  9. セキュリティスキル
  10. 組織スキル(アプリ)
  11. API キー管理スキル
  12. 一般的なデプロイパターン
  13. ベストプラクティス
  14. トラブルシューティングと特殊なケース
  15. 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、メモリ、レプリカのスケーリング

プロジェクト管理スキル

スキル:プロジェクトの作成

ビルドおよび実行時の設定をすべて指定して、新しいプロジェクトを作成します。

プロジェクトタイプ
タイプ説明最適な用途
vcsGitHub に接続されたリポジトリCI/CD を備えた本番アプリ
imageDocker コンテナのデプロイビルド済みイメージ、複雑な依存関係
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"
    }
  }
})
スキル:リソース管理
リソース最小値最大値単位影響
CPU200500ミリコア値が大きいほど処理が速くなります
メモリ5001024MB値が大きいほどメモリ内に保持できるデータが増えます
レプリカ13インスタンス値が大きいほど可用性が高くなります
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"
})

フロー:

  1. ユーザーが CreateOS で「Connect GitHub」をクリックします
  2. 認可のために GitHub にリダイレクトされます
  3. GitHub が code と installationId を付けてリダイレクトします
  4. 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 の数
RPMGetProjectEnvironmentAnalyticsRPMRPM のピーク値と平均値
成功率GetProjectEnvironmentAnalyticsSuccessPercentage(2xx + 3xx) / 合計
時系列GetProjectEnvironmentAnalyticsRequestsOverTime時間ごとのステータス別リクエスト数
上位パスGetProjectEnvironmentAnalyticsTopHitPathsアクセス数上位 10 件
エラーパスGetProjectEnvironmentAnalyticsTopErrorPathsエラーが発生しやすい上位 10 件
内訳GetEnvAnalyticsReqDistributionステータスコード別の内訳
スキル:パフォーマンスのモニタリング

問題の特定:

  1. SuccessPercentage を確認します。低下している場合は問題を示しています
  2. TopErrorPaths を確認して、問題のあるエンドポイントを特定します
  3. RequestsOverTime を分析して、トラフィックのパターンを把握します
  4. 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"
})

ベストプラクティス

セキュリティ
  1. シークレットをハードコードしない — 機密データにはすべて runEnvs を使用します
  2. セキュリティスキャンを有効にする — 脆弱性を早期に検出します
  3. API キーをローテーションする — 適切な有効期限を設定します
  4. 環境を分離する — 環境ごとに異なるシークレットを使用します
パフォーマンス
  1. リソースを適切なサイズにする — 小さく始め、メトリクスに基づいてスケールします
  2. 可用性のためにレプリカを使用する — 本番環境では最低 2 つを使用します
  3. 分析を監視する — エラー率の急上昇に対するアラートを設定します
  4. ビルドを最適化する — npm install より npm ci を使用します
信頼性
  1. 自動プロモートは慎重に有効にする — まずステージング環境でテストします
  2. 以前のデプロイを保持する — 迅速なロールバックを有効にします
  3. ヘルスチェックを使用する — port がアプリのリッスンポートと一致していることを確認します
  4. スリープ中のデプロイに対処する — 起動するか、キープアライブを設定します
組織化
  1. アプリを使用する — 関連するプロジェクトを論理的にグループ化します
  2. 命名規則を設ける — {app}-{service}-{env} のパターンを使用します
  3. 環境を文書化する — 各環境に明確な説明を付けます
  4. 未使用のものを整理する — 古いプロジェクトやデプロイを削除します

トラブルシューティングとエッジケース

よくあるエラー
エラー診断解決策
ビルド失敗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
命名規則
フィールド最小最大パターン
プロジェクトの uniqueName432^[a-zA-Z0-9-]+$
プロジェクトの displayName448^[a-zA-Z0-9 _-]+$
説明42048任意のテキスト
環境の uniqueName432^[a-zA-Z0-9-]+$
環境の displayName448^[a-zA-Z0-9 _-]+$
API キー名448^[a-zA-Z0-9-]+$
ドメイン名3255有効なドメイン

関連項目

ユーザーが新規に始めるのではなく、既存のプロジェクトを別のクラウドプラットフォームから移行する場合は、一般的な 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月

コメント