mcpField
A
app-platform-designer

app-platform-designer

github.com/digitalocean-labsクラウド・DevOps3890 回インストール3 日前に更新
リポジトリ

app-platform-designer について

自然言語の要件や既存リポジトリから DigitalOcean App Platform の設定を作成するスキルです。アプリを設計・デプロイする開発者向けに、アプリ仕様、デプロイテンプレート、環境変数例を生成し、構成選択と検証を支援します。

主な機能

  1. 01要件からアプリ仕様を生成
  2. 02リポジトリを分析して設定を作成
  3. 03Deploy to DO テンプレートを作成
  4. 04複数環境のアプリを設計
  5. 05サービスとデータベースの構成要素を選択
  6. 06doctl で仕様を検証

活用シーン

  1. 01アプリの説明から App Platform の構成を計画
  2. 02既存リポジトリのアプリ仕様を作成
  3. 03公開 GitHub リポジトリにデプロイボタンを追加
  4. 04複数環境向けのアプリ設定を設計

インストール

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

$npx skills add https://github.com/digitalocean-labs/do-app-platform-skills --skill app-platform-designer

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

同梱ファイル

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

README.md
reference/
architecture-patterns.md
component-types.md
database-configuration.md
deploy-to-do-button.md
environment-variables.md

詳細

App Platform Designer スキル

自然言語による説明を、本番環境に対応した App Platform 仕様に変換します。

主な質問:「[説明]を実現するものを作りたいです。App Platform のアーキテクチャはどうするべきですか?」

生成するもの:

  • .do/app.yaml — App Platform 仕様
  • .do/deploy.template.yaml — Deploy to DO ボタン(公開リポジトリ向け)
  • .env.example — 環境変数テンプレート

すばやく判断する

What do you need?
├── Design new app from description → Workflow 1
├── Analyze repo and create spec → Workflow 2
├── Add Deploy to DO button → Workflow 3
└── Multi-environment setup → Workflow 4

ワークフロー 1:自然言語からアプリ仕様へ

トリガー:「[説明]を実現する Web アプリが必要です」

  1. 要件を収集します:

    • アプリは何をしますか?
    • 言語/フレームワークは何ですか?
    • データベースは必要ですか?
    • バックグラウンド処理は必要ですか?
  2. コンポーネントに分解します:

    • HTTP に対応するもの → services
    • バックグラウンドプロセッサー → workers
    • 単発/スケジュール実行 → jobs
    • 静的フロントエンド → static_sites
    • データストア → databases
  3. ヘルスチェック、環境変数、ルーティングを含む仕様を生成します

  4. 検証します: doctl apps spec validate .do/app.yaml

詳しいガイド: architecture-patterns.md を参照してください


ワークフロー 2:リポジトリを分析してアプリ仕様を作成

トリガー:「このリポジトリのアプリ仕様を作成してください」

Check for:
├── Dockerfile → Use dockerfile build
├── package.json → Node.js app
├── requirements.txt / pyproject.toml → Python app
├── go.mod → Go app
├── Multiple directories with above → Monorepo

詳しいガイド: component-types.md を参照してください


ワークフロー 3:Deploy to DO ボタン

トリガー:「Deploy to DigitalOcean ボタンを追加してください」

要件: 公開 GitHub リポジトリ

  1. .do/deploy.template.yaml を作成します(仕様を spec: キーで囲み、git: ブロックを使用します)
  2. README にボタンを追加します
[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/OWNER/REPO/tree/BRANCH)

詳しいガイド: deploy-to-do-button.md を参照してください


推奨するデフォルト設定

項目デフォルト理由
インスタンスサイズapps-s-1vcpu-1gb適切な開始設定
インスタンス数1最小構成から開始
データベース開発用データベースコスト効率に優れています
キャッシュValkey(Redis ではない)Redis は EOL です
ビルドDockerfile があれば使用より細かく制御できます
ヘルスチェック/health または /healthz業界標準
プッシュ時にデプロイtrueGitOps ワークフロー
リージョンnyc適切なデフォルト
ソース形式git: ブロックdeploy.template.yaml に必須

コンポーネントの概要

種類用途例
servicesHTTP ワークロードAPI、Web アプリ
workersバックグラウンド処理キューコンシューマー、内部 API
jobs単発/スケジュール実行マイグレーション、レポート
static_sitesフロントエンド/ドキュメントReact、Vue、マーケティングサイト
databasesデータストレージPostgreSQL、Valkey

詳しいガイド: component-types.md を参照してください


パターンの選択

What are you building?
├── Simple app (1 service)? → Pattern 1
├── Frontend + API? → Pattern 2
├── Need background processing? → Pattern 3
├── Monorepo? → Pattern 4
└── Complex SaaS? → Pattern 5

パターンの詳細: architecture-patterns.md を参照してください


クイックスタート:単一サービス+DB

name: my-app
region: nyc

services:
  - name: web
    git:
      repo_clone_url: https://github.com/owner/repo.git
      branch: main
    http_port: 8080
    instance_size_slug: apps-s-1vcpu-1gb
    health_check:
      http_path: /health
    envs:
      - key: DATABASE_URL
        scope: RUN_TIME
        value: ${db.DATABASE_URL}

databases:
  - name: db
    engine: PG
    production: false

クイックスタート:API+フロントエンド

name: fullstack-app
region: nyc

services:
  - name: api
    git:
      repo_clone_url: https://github.com/owner/repo.git
      branch: main
    source_dir: /api
    http_port: 8080
    health_check:
      http_path: /health
    envs:
      - key: DATABASE_URL
        scope: RUN_TIME
        value: ${db.DATABASE_URL}

static_sites:
  - name: frontend
    git:
      repo_clone_url: https://github.com/owner/repo.git
      branch: main
    source_dir: /frontend
    build_command: npm run build
    output_dir: dist
    envs:
      - key: VITE_API_URL
        scope: BUILD_TIME
        value: /api

databases:
  - name: db
    engine: PG
    production: false

ingress:
  rules:
    - match:
        path:
          prefix: /api
      component:
        name: api
    - match:
        path:
          prefix: /
      component:
        name: frontend

環境に依存しない設計

すべてのコードは、ローカル開発、Docker Compose、App Platform のすべてで動作する必要があります。

原則実装
$PORT にバインドするprocess.env.PORT || 3000
パブリックサービスingress.rules に記載
内部サービスingress に含めず、${name.PRIVATE_URL} を使用
値をハードコードしないデフォルト値を持つ環境変数を使用
// Portable port binding
const port = process.env.PORT || 3000
server.listen({ port, host: '0.0.0.0' })

データベースのクイックリファレンス

エンジンスラッグ開発用 DB?備考
PostgreSQLPGはい推奨
ValkeyVALKEYはいRedis の代わりに使用
MySQLMYSQLいいえマネージドのみ
MongoDBMONGODBいいえマネージドのみ

詳しいガイド: database-configuration.md を参照してください


環境変数クイックリファレンス

スコープ用途
RUN_TIMEシークレット、DB URL
BUILD_TIME公開 API URL、機能フラグ
RUN_AND_BUILD_TIMENPM トークン、共有設定
プレースホルダー解決される値
${db.DATABASE_URL}データベース接続文字列
${service.PRIVATE_URL}内部サービス URL
${service.PUBLIC_URL}公開サービス URL

完全なガイド: environment-variables.md を参照してください。


イングレス(ルーティング)

ingress:
  rules:
    - match:
        path:
          prefix: /api
      component:
        name: api
    - match:
        path:
          prefix: /
      component:
        name: frontend

高度なルーティングについて: networking skill を参照してください。


検証

doctl apps spec validate .do/app.yaml
doctl apps spec validate .do/deploy.template.yaml
エラー修正方法
invalid component name小文字とハイフンのみを使用してください
unknown instance sizeinstance-sizes.yaml を確認してください
invalid database referenceデータベース名が一致することを確認してください
routes is deprecatedingress.rules を使用してください

インスタンスサイズ

スラッグCPURAM料金用途
apps-s-1vcpu-0.5gb1 共有512 MiB$5/moワーカー、ジョブ
apps-s-1vcpu-1gb1 共有1 GiB$12/moデフォルト
apps-d-1vcpu-2gb1 専有2 GiB$39/mo本番環境

全一覧: shared/instance-sizes.yaml を参照してください。


リファレンスファイル


共有リファレンス


他のスキルとの連携

  • → deployment:生成したアプリ仕様を GitHub Actions でデプロイ
  • → devcontainers:本番環境と同等のローカル開発環境を作成
  • → postgres:高度なデータベース設定
  • → networking:カスタムドメイン、CORS、VPC
  • → migration:他のプラットフォームから移行

コメント