Purgatory (p7y) について
Purgatory (p7y) は、チームや AI エージェント向けのセルフホスト型 Docker サンドボックスサービスです。Docker Compose でアプリをデプロイでき、各サンドボックスに専用の Docker デーモンと URL が割り当てられ、アイドル時は休止します。
主な機能
- 01サンドボックスごとの専用 Docker デーモン
- 02Docker Compose によるデプロイ
- 03アプリの公開 URL と TLS エンドポイント
- 04アイドル時の休止とリクエスト時の再開
- 05サンドボックス単位のエージェントトークン
活用シーン
- 01エージェント用の分離されたデプロイ環境
- 02チームアプリを個別 URL で公開
- 03データを保持したままアイドル環境を休止
MCP 対応
MCP サーバーを通じてエージェントが Purgatory のサンドボックスを操作できます。README では HTTP 上の JSON-RPC によるツール呼び出しも説明されています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{purgatory_host}/mcpclaude mcp add --transport http csakaszamok-p7y https://{purgatory_host}/mcp{"mcpServers":{"csakaszamok-p7y":{"type":"http","url":"https://{purgatory_host}/mcp"}}}Cursor で開く{"servers":{"csakaszamok-p7y":{"type":"http","url":"https://{purgatory_host}/mcp"}}}VS Code で開く{"mcpServers":{"csakaszamok-p7y":{"type":"http","url":"https://{purgatory_host}/mcp"}}}{"mcpServers":{"csakaszamok-p7y":{"serverUrl":"https://{purgatory_host}/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://{purgatory_host}/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 の エージェントにデプロイさせるには… の下に表示される行を使います)
複雑さを隠し、シンプルさを保つ。大切なことに集中できます。
Purgatory はインフラストラクチャの複雑さや運用上の負担を取り除き、直感的なユーザー体験を提供します。基盤技術の管理ではなく、ユーザーが自分の作業やビジネス目標に集中できるようにします。
Purgatory を選ぶ理由と他との比較:ノート PC、クラウド PaaS、共有 Docker ホスト、Coolify、各自専用の VM との比較 · 仕組み:各コンポーネント(Docker-in-Docker、frp、Traefik、Sablier)、サンドボックスのライフサイクル、リクエストの経路
スクリプトからでもエージェントからでも同じように使えます
すべて実際の実行をリアルタイムで記録しています。クリックすると再生できます。
API経由で curl を使う方法、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 つのサーバーを複数のクライアントで再利用できます。