jpskill.com
🛠️ 開発・MCP コミュニティ

porter

Porterは、AWS、GCP、Azure上でHerokuのような手軽さを実現し、開発者が自身のクラウド環境にKubernetesクラスタを構築、git pushで簡単にアプリをデプロイできるように支援するSkill。

📜 元の英語説明(参考)

Expert guidance for Porter, the platform that provides a Heroku-like experience on your own AWS, GCP, or Azure account. Helps developers deploy applications on managed Kubernetes clusters provisioned in their own cloud accounts, with the simplicity of `git push` deployment and the control of owning your infrastructure.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Porterは、AWS、GCP、Azure上でHerokuのような手軽さを実現し、開発者が自身のクラウド環境にKubernetesクラスタを構築、git pushで簡単にアプリをデプロイできるように支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o porter.zip https://jpskill.com/download/15271.zip && unzip -o porter.zip && rm porter.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15271.zip -OutFile "$d\porter.zip"; Expand-Archive "$d\porter.zip" -DestinationPath $d -Force; ri "$d\porter.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して porter.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → porter フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Porter — あなたのクラウド上の PaaS

概要

Porter は、Heroku のような体験をあなた自身の AWS、GCP、または Azure アカウント上で提供するプラットフォームです。開発者が自身のクラウドアカウントでプロビジョニングされたマネージド Kubernetes クラスタに、git push デプロイのシンプルさと、インフラストラクチャを所有するコントロールをもって、アプリケーションをデプロイするのを支援します。

手順

はじめに

# Porter はあなたのクラウドアカウントに Kubernetes クラスタをプロビジョニングします
# 1. dashboard.porter.run でサインアップ
# 2. あなたの AWS/GCP/Azure アカウントを接続
# 3. Porter はマネージド EKS/GKE/AKS クラスタを作成
# 4. ダッシュボードまたは CLI を通してアプリをデプロイ

# Porter CLI をインストール
brew install porter-dev/porter/porter

# ログイン
porter auth login

# コンテキストを設定
porter config set-project --project <project-id>
porter config set-cluster --cluster <cluster-id>

アプリケーションのデプロイ

# porter.yaml — アプリケーションの設定
version: v2

apps:
  api:
    build:
      method: pack                 # pack (buildpacks) | docker | registry
      context: .
      builder: heroku/builder:22

    services:
      web:
        type: web
        port: 3000
        cpus: 0.5
        memory: 512Mi
        replicas:
          min: 2
          max: 10
        autoscaling:
          enabled: true
          targetCPU: 60
          targetMemory: 70
        health_check:
          enabled: true
          path: /health
        domains:
          - name: api.myapp.com

      worker:
        type: worker
        cpus: 1
        memory: 1Gi
        replicas:
          min: 1
          max: 5
        command: "node dist/worker.js"

      cron:
        type: job
        cpus: 0.25
        memory: 256Mi
        command: "node dist/cron/daily-report.js"
        schedule: "0 8 * * *"
        timeout: 300

    env:
      NODE_ENV: production
      # Porter ダッシュボードまたは CLI を通して管理されるシークレット
      DATABASE_URL:
        secret: true
      REDIS_URL:
        secret: true

    predeploy:
      - "npx prisma migrate deploy"

CLI デプロイ

# 現在のディレクトリからデプロイ
porter app update api

# 特定のサービスをデプロイ
porter app update api --service web

# 1 回限りのコマンドを実行 (Heroku run のように)
porter app run api -- npm run seed

# ログを表示
porter app logs api --service web --follow

# サービスをスケール
porter app update api --service web --replicas 5

# 環境変数を設定
porter app env set api DATABASE_URL=postgres://...
porter app env set api --secret API_KEY=sk-xxx

# アプリをリスト
porter app list

# アプリのステータスを取得
porter app get api

データベースアドオン

# マネージドデータベースをデプロイ (あなたのクラウドアカウントでプロビジョニング)
porter addon create postgresql \
  --name main-db \
  --version 16 \
  --plan db.t4g.medium \
  --storage 50

# Porter はあなたのクラウドアカウントに RDS/Cloud SQL/Azure Database をプロビジョニングします
# 接続文字列はリンクされたアプリに自動的に注入されます

porter addon create redis \
  --name cache \
  --version 7 \
  --plan cache.t4g.micro

# アドオンをアプリにリンク
porter app env set api DATABASE_URL=$(porter addon get main-db --connection-string)

プレビュー環境

# porter.yaml — プレビュー環境の設定
version: v2

previews:
  enabled: true
  # すべての PR は、分離されたデータベースを持つ独自の環境を取得します
  apps:
    api:
      build:
        method: pack
      services:
        web:
          type: web
          port: 3000
          cpus: 0.25
          memory: 256Mi
          replicas:
            min: 1
            max: 1
      predeploy:
        - "npx prisma migrate deploy"
        - "npx prisma db seed"

  addons:
    - type: postgresql
      name: preview-db
      plan: db.t4g.micro

GitHub Actions 連携

# .github/workflows/deploy.yml
name: Deploy to Porter
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Deploy to Porter
        uses: porter-dev/porter-cli-action@v0.1.0
        with:
          command: app update api
        env:
          PORTER_TOKEN: ${{ secrets.PORTER_TOKEN }}
          PORTER_PROJECT: ${{ secrets.PORTER_PROJECT }}
          PORTER_CLUSTER: ${{ secrets.PORTER_CLUSTER }}

例 1: マイクロサービスプロジェクトのための Porter のセットアップ

ユーザーリクエスト:

Node.js API と React フロントエンドを Docker で実行しています。監視/デプロイのために Porter をセットアップしてください。

エージェントは、# Porter provisions a Kubernetes cluster in YOUR cloud accou のようなパターンに基づいて必要な設定ファイルを作成し、既存の Docker セットアップとの連携をセットアップし、Node.js + React スタックに適切なデフォルトを設定し、すべてが動作していることを確認するための検証コマンドを提供します。

例 2: アプリケーションのデプロイに関する問題のトラブルシューティング

ユーザーリクエスト:

Porter はアプリケーションのデプロイでエラーを表示しています。ログは次のとおりです: [エラー出力]

エージェントはエラー出力を分析し、一般的な Porter の問題との相互参照によって根本原因を特定し、修正を適用 (設定の更新、リソース制限の調整、または構文の修正) し、適切なヘルスチェックで解決を確認します。

ガイドライン

  1. あなたのクラウド、Porter の UX — インフラストラクチャはあなたの AWS/GCP/Azure アカウントで実行されます。あなたはデータと請求を所有します
  2. porter.yaml を使用 — サービス、スケーリング、および環境変数をコードで定義します。ダッシュボードのみの設定は避けてください
  3. 移行のための Predeploypredeploy ステップでデータベース移行を実行します。新しいバージョンが公開される前に実行されます
  4. PR のためのプレビュー環境 — 各 PR はデータベースを含む分離されたリソースを取得します。レビュー担当者は実際のデプロイをテストします
  5. CPU ターゲットによるオートスケーリング — Web サービスに targetCPU: 60 を設定します。Porter は Kubernetes 上の HPA 設定を処理します
  6. CLI/ダッシュボード経由のシークレット — 機密性の高い値を secret: true でマークします。Kubernetes シークレットとして保存されます
  7. app run による 1 回限りのコマンド — データベースのシード、REPL アクセス、またはデバッグに使用します。th で実行されます

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Porter — PaaS on Your Own Cloud

Overview

Porter, the platform that provides a Heroku-like experience on your own AWS, GCP, or Azure account. Helps developers deploy applications on managed Kubernetes clusters provisioned in their own cloud accounts, with the simplicity of git push deployment and the control of owning your infrastructure.

Instructions

Getting Started

# Porter provisions a Kubernetes cluster in YOUR cloud account
# 1. Sign up at dashboard.porter.run
# 2. Connect your AWS/GCP/Azure account
# 3. Porter creates a managed EKS/GKE/AKS cluster
# 4. Deploy apps through the dashboard or CLI

# Install Porter CLI
brew install porter-dev/porter/porter

# Login
porter auth login

# Set context
porter config set-project --project <project-id>
porter config set-cluster --cluster <cluster-id>

Application Deployment

# porter.yaml — Application configuration
version: v2

apps:
  api:
    build:
      method: pack                 # pack (buildpacks) | docker | registry
      context: .
      builder: heroku/builder:22

    services:
      web:
        type: web
        port: 3000
        cpus: 0.5
        memory: 512Mi
        replicas:
          min: 2
          max: 10
        autoscaling:
          enabled: true
          targetCPU: 60
          targetMemory: 70
        health_check:
          enabled: true
          path: /health
        domains:
          - name: api.myapp.com

      worker:
        type: worker
        cpus: 1
        memory: 1Gi
        replicas:
          min: 1
          max: 5
        command: "node dist/worker.js"

      cron:
        type: job
        cpus: 0.25
        memory: 256Mi
        command: "node dist/cron/daily-report.js"
        schedule: "0 8 * * *"
        timeout: 300

    env:
      NODE_ENV: production
      # Secrets managed via Porter dashboard or CLI
      DATABASE_URL:
        secret: true
      REDIS_URL:
        secret: true

    predeploy:
      - "npx prisma migrate deploy"

CLI Deployment

# Deploy from current directory
porter app update api

# Deploy a specific service
porter app update api --service web

# Run a one-off command (like Heroku run)
porter app run api -- npm run seed

# View logs
porter app logs api --service web --follow

# Scale a service
porter app update api --service web --replicas 5

# Set environment variables
porter app env set api DATABASE_URL=postgres://...
porter app env set api --secret API_KEY=sk-xxx

# List apps
porter app list

# Get app status
porter app get api

Database Addons

# Deploy managed databases (provisioned in your cloud account)
porter addon create postgresql \
  --name main-db \
  --version 16 \
  --plan db.t4g.medium \
  --storage 50

# Porter provisions RDS/Cloud SQL/Azure Database in YOUR account
# Connection strings auto-injected into linked apps

porter addon create redis \
  --name cache \
  --version 7 \
  --plan cache.t4g.micro

# Link addon to app
porter app env set api DATABASE_URL=$(porter addon get main-db --connection-string)

Preview Environments

# porter.yaml — Preview environment configuration
version: v2

previews:
  enabled: true
  # Every PR gets its own environment with isolated database
  apps:
    api:
      build:
        method: pack
      services:
        web:
          type: web
          port: 3000
          cpus: 0.25
          memory: 256Mi
          replicas:
            min: 1
            max: 1
      predeploy:
        - "npx prisma migrate deploy"
        - "npx prisma db seed"

  addons:
    - type: postgresql
      name: preview-db
      plan: db.t4g.micro

GitHub Actions Integration

# .github/workflows/deploy.yml
name: Deploy to Porter
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Deploy to Porter
        uses: porter-dev/porter-cli-action@v0.1.0
        with:
          command: app update api
        env:
          PORTER_TOKEN: ${{ secrets.PORTER_TOKEN }}
          PORTER_PROJECT: ${{ secrets.PORTER_PROJECT }}
          PORTER_CLUSTER: ${{ secrets.PORTER_CLUSTER }}

Examples

Example 1: Setting up Porter for a microservices project

User request:

I have a Node.js API and a React frontend running in Docker. Set up Porter for monitoring/deployment.

The agent creates the necessary configuration files based on patterns like # Porter provisions a Kubernetes cluster in YOUR cloud accou, sets up the integration with the existing Docker setup, configures appropriate defaults for a Node.js + React stack, and provides verification commands to confirm everything is working.

Example 2: Troubleshooting application deployment issues

User request:

Porter is showing errors in our application deployment. Here are the logs: [error output]

The agent analyzes the error output, identifies the root cause by cross-referencing with common Porter issues, applies the fix (updating configuration, adjusting resource limits, or correcting syntax), and verifies the resolution with appropriate health checks.

Guidelines

  1. Your cloud, Porter's UX — Infrastructure runs in your AWS/GCP/Azure account; you own the data and the bill
  2. Use porter.yaml — Define services, scaling, and env vars in code; avoid dashboard-only configuration
  3. Predeploy for migrations — Run database migrations in the predeploy step; they execute before the new version goes live
  4. Preview environments for PRs — Each PR gets isolated resources including databases; reviewers test real deployments
  5. Autoscaling with CPU targets — Set targetCPU: 60 for web services; Porter handles HPA configuration on Kubernetes
  6. Secrets through CLI/dashboard — Mark sensitive values with secret: true; they're stored as Kubernetes secrets
  7. One-off commands with app run — Use for database seeding, REPL access, or debugging; runs in the same environment as your app
  8. Monitor cloud costs — Porter creates real cloud resources (EKS, RDS, EC2); monitor your cloud bill directly