Purgatory (p7y) について
Purgatory (p7y) は、チームや AI エージェントが隔離された Docker サンドボックスでアプリをデプロイするためのセルフホスト型プラットフォームです。各サンドボックスに独自の Docker daemon とアプリ URL が割り当てられ、アイドル時の休止とリクエスト時の再起動に対応します。
主な機能
- 01隔離された Docker サンドボックスの作成
- 02Docker Compose によるアプリのデプロイ
- 03アプリへの公開 URL の割り当て
- 04アイドル時の休止とリクエスト時の再起動
- 05削除時のサンドボックスのアーカイブ
活用シーン
- 01エージェントのアプリデプロイ用に独立環境を用意
- 02専用 URL でチームのアプリを公開
- 03チーム所有のサーバーでアプリ用サンドボックスを運用
MCP 対応
MCP サーバーを通じて、エージェントはサンドボックスの作成・管理、アプリのデプロイ、ファイルや URL へのアクセスを行えます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://p7y.{domain}/mcpclaude mcp add --transport http p7y-dev-p7y https://p7y.{domain}/mcp{"mcpServers":{"p7y-dev-p7y":{"type":"http","url":"https://p7y.{domain}/mcp"}}}Cursor で開く{"servers":{"p7y-dev-p7y":{"type":"http","url":"https://p7y.{domain}/mcp"}}}VS Code で開く{"mcpServers":{"p7y-dev-p7y":{"type":"http","url":"https://p7y.{domain}/mcp"}}}{"mcpServers":{"p7y-dev-p7y":{"serverUrl":"https://p7y.{domain}/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://p7y.{domain}/mcp認証が必要ツール
詳細
Purgatory (p7y)
メモ
1.0 より前の初期段階です。 動作し、テストも実施しています(変更のたびに CI を実行し、変更履歴付きでリリースしています)が、まだ粗削りな部分があり、マイナーバージョン間で互換性を損なう変更が入る可能性があります。
チームとその AI エージェント向けのセルフホスト可能なサンドボックスです。各自が専用の Docker を利用でき、すべてのアプリに URL が割り当てられ、アイドル状態のサンドボックスはスリープします。
チームやエージェントが立ち上げるアプリ向けの、セルフホスト可能な Vercel と考えてください。現在は docker compose でデプロイします。Git ベースのビルドはロードマップに含まれています。
新しいサンドボックスを作成して、自分専用の Docker とアプリの公開 URL を利用できるまで約10秒です。スリープ中のサンドボックスも10秒未満で復帰します。(すでにイメージがプルされている場合の計測です。新しいサーバーで最初のサンドボックスを作成するときは、イメージのダウンロードも必要です。)
- 各サンドボックスに専用の Docker デーモン(必要なら Portainer UI も利用できます)
- すべてのアプリに公開 URLを割り当て、Postgres、Redis、SSH には TLS アドレスを提供
- アイドル状態になるとスリープし、次のリクエストで復帰します。削除するとアーカイブされるため、何も失われません
- エージェント向けに設計: 1つのサンドボックスに限定したトークン、エージェントガイド、MCP サーバー、Claude Code プラグイン(
/plugin marketplace add p7y-dev/p7yを実行し、続けて/p7y:initを実行すると、各プロジェクトが接続されます。Purgatory に表示される*Let your agent deploy…*の下の行を使用します)
Purgatory を選ぶ理由と、他の選択肢との比較:ノート PC、クラウド PaaS、共有 Docker ホスト、Coolify、全員に VM を割り当てる方法との比較 · 仕組み:コンポーネント(Docker-in-Docker、frp、Traefik、Sablier)、サンドボックスのライフサイクル、リクエストの経路
スクリプトやエージェントからも同じように使えます
すべて実際の実行をリアルタイムで収録しています。クリックすると再生されます。
curl でAPIを利用する方法、エージェントがMCP サーバー経由で利用する方法、そして MCP サーバーを手動で利用する方法(HTTP 上の JSON-RPC なので、curl からでもツールを呼び出せます)を紹介しています。
ノートパソコンで試す
Docker Desktop、または Linux 上の Docker Engine と compose プラグインを使用し、ポート 80 と 443 が空いている環境で実行します(Windows の場合は Git Bash または WSL で実行してください)。
mkdir p7y && cd p7y
curl -fsSLO https://github.com/p7y-dev/p7y/releases/latest/download/docker-compose.yml
curl -fsSL https://github.com/p7y-dev/p7y/releases/latest/download/setup.sh | bash # prints the admin password
docker compose up -d
http://p7y.lvh.me を開き(lvh.me とそのすべてのサブドメインは 127.0.0.1 を指すため、DNS の設定は不要です)、setup.sh に表示されたパスワードで管理者としてサインインし、New sandbox を押します。最初のサンドボックスはイメージの取得に 1、2 分かかりますが、その後は約 10 秒で起動します。アプリは専用の http://<name>-….lvh.me アドレスで開きます。
初回にアプリを開くのに何秒もかかりますか? Chrome で、設定 → プライバシーとセキュリティ → セキュリティ → セキュア DNS を使用する を確認してください。「現在のサービスプロバイダ」を選んでいると、新しい
*.lvh.meの名前を解決する際に、応答が遅い、またはフィルタリングするリゾルバーを待つことがあります。これをオフにするか、Cloudflare(1.1.1.1)などのプロバイダを選択してください。
削除するには、まず UI でサンドボックスを削除してください(それぞれ独立した compose プロジェクトなので、次の手順を実行しても起動したままになります)。次に、p7y ディレクトリで docker compose down -v を実行し、ディレクトリを削除します。
インストール
Docker Engine と compose プラグインを備えた Linux ホストでは、クローンは不要です(先にホストを確認してください)。
mkdir p7y && cd p7y
curl -fsSLO https://github.com/p7y-dev/p7y/releases/latest/download/docker-compose.yml
curl -fsSL https://github.com/p7y-dev/p7y/releases/latest/download/setup.sh | bash -s -- dev.example.com # .env with your domain and random secrets
docker compose up -d
その後、http://p7y.<HOST_DOMAIN>(デフォルトでは http://p7y.lvh.me)でサインインします。
別のものを使う場合
Purgatory は、チームのアプリやエージェントのデプロイを、自分のサーバー上で低コストに URL からアクセスできる状態にしておくためのものです。ほかの用途には、次のツールがより適しています。
- スケールと稼働継続が必須の本番環境 → クラウド PaaS、または自分のサーバー上の Coolify / Dokploy
- 見知らぬ人の信頼できないコード → E2B などの microVM サンドボックス、または Docker Sandboxes(Purgatory に Kata ランタイムが導入されるまで)
- クラウド IDE でのコーディング → Coder または GitHub Codespaces
- SDK から短いスクリプトを実行するエージェント → E2B または Daytona
詳しくは比較をご覧ください。
ドキュメント
p7y-dev.github.io/p7y:チュートリアル、インストール、設定、エージェントにデプロイさせる、MCP、API、およびエージェント向けの llms-full.txt。
セキュリティ: sysbox がインストールされている場合、サンドボックスは特権コンテナなしで実行されます。インストールされていない場合は特権付きの
dindにフォールバックします。これは互いを信頼するチームには適していますが、悪意のあるコードには適していません。共有サーバーでは sysbox をインストールし、ALLOWED_RUNTIMES=sysboxを設定してください(詳細)。
貢献 · セキュリティ上の問題 · AGPL-3.0
自分のサーバー上でも、顧客向けでも、商用を含め無料で利用できます。変更を加え、ネットワーク経由で人々に使ってもらう場合は、同じライセンスのもと、変更したソースコードも提供する必要があります(AGPL-3.0)。Purgatory を基盤に構築されたすべての製品は、その旨を About ページとドキュメントに Based on Purgatory (p7y) と記載し、変更済みであることを明示し、「Purgatory」または「p7y」という名前を使用しません(NOTICE)。0.10.3 までのバージョンは Apache-2.0 のもとでリリースされました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。