关于 Purgatory (p7y)
Purgatory (p7y) 是面向团队及其 AI Agent 的可自托管 Docker 沙箱服务,可通过 Docker Compose 部署应用。每个沙箱有独立的 Docker daemon 和应用 URL,并可在空闲时休眠、收到请求时唤醒。
主要功能
- 01每个沙箱独立 Docker daemon
- 02通过 Docker Compose 部署
- 03应用公网 URL 和 TLS 端点
- 04空闲休眠并按请求唤醒
- 05限定沙箱范围的 Agent 令牌
适用场景
- 01为 Agent 提供隔离的应用部署环境
- 02通过独立 URL 发布团队应用
- 03保留数据并暂停空闲沙箱
MCP 相关
MCP 服务可供 Agent 操作 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 Agent 提供可自托管的沙盒:每个用户都有自己的 Docker,每个应用都有一个 URL,闲置的沙盒会休眠。
可以把它看作是为团队及其 Agent 启动的应用打造的可自托管 Vercel。目前通过 docker compose 部署;基于 Git 的构建已列入路线图。
从新建沙盒到拥有自己的 Docker 和应用的公开 URL,大约只需 10 秒;休眠中的沙盒也能在不到 10 秒内恢复。(在镜像已拉取的情况下测量:新服务上的首个沙盒还需要下载镜像。)
- 每个沙盒都有自己的 Docker 守护进程(可选配 Portainer UI)
- 每个应用都有一个公开 URL,Postgres、Redis 和 SSH 也有 TLS 地址
- 闲置时休眠,下次收到请求时唤醒;删除操作会将其归档,不会丢失任何内容
- **专为 Agent 打造:**令牌仅限访问单个沙盒,提供Agent 指南、MCP 服务和 Claude Code 插件(先运行
/plugin marketplace add p7y-dev/p7y,再运行/p7y:init为每个项目建立连接:Purgatory 会在*让你的 Agent 部署……*下方显示这行命令)
隐藏复杂性。保持简单。专注于重要的事。
Purgatory 抽象掉基础设施的复杂性和运维开销,提供直观的用户体验,让用户专注于工作和业务目标,而不必管理底层技术。
为何选择 Purgatory,以及它与其他方案的比较:与笔记本电脑、云 PaaS、共享 Docker 主机、Coolify 和每人一台虚拟机的比较 · 工作原理:组件(Docker-in-Docker、frp、Traefik、Sablier)、沙盒的生命周期以及请求的流转路径
脚本或 Agent 的使用体验相同
所有演示都是真实运行、实时录制的;点击任意一项即可观看。
可以通过 API 使用 curl,也可以由 Agent 通过 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 输出的密码以管理员身份登录,然后点击 新建沙箱。第一个沙箱需要一两分钟来拉取镜像;之后每个大约需要 10 秒。其应用会在专属的 http://<name>-….lvh.me 地址打开。
应用第一次打开需要好几秒? 在 Chrome 中,依次前往 设置 → 隐私和安全 → 安全性 → 使用安全 DNS:选择“使用当前服务提供商”时,每个新的
*.lvh.me名称都可能因解析器速度慢或过滤而等待。请关闭此选项,或选择 Cloudflare(1.1.1.1)等提供商。
要移除沙箱:先在界面中删除沙箱(每个沙箱都有独立的 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 适用于团队的应用和 Agent 部署:它们应托管在自己的服务器上,并通过 URL 访问,同时成本低廉。对于其他用途,更适合使用其他工具:
- 必须扩展规模并保持在线的生产环境 → 云 PaaS,或在自己的服务器上使用 Coolify / Dokploy
- 来自陌生人的不可信代码 → 使用 E2B 或 Docker Sandboxes 等 microVM 沙箱(Purgatory 支持 Kata 运行时之前)
- 在云 IDE 中编写代码 → Coder 或 GitHub Codespaces
- 通过 SDK 运行短脚本的 Agent → E2B 或 Daytona
更多信息请参阅对比指南。
文档
p7y-dev.github.io/p7y:教程、安装、配置、让你的 Agent 部署应用、MCP、API,以及供 Agent 使用的 llms-full.txt。
安全性: 安装了 sysbox 时,沙箱无需特权容器即可运行;未安装时则会回退到特权
dind,适合彼此信任的团队,不适合运行恶意代码。在共享服务器上,请安装 sysbox 并设置ALLOWED_RUNTIMES=sysbox(详情)。
可免费使用,也可用于商业用途,既可部署在自己的服务器上,也可为客户提供服务。如果你修改了它,并让他人通过网络使用,那么也必须向他们提供你修改后的源代码,并遵循相同的许可证(AGPL-3.0)。所有基于 Purgatory 构建的产品都必须在其“关于”页面和文档中注明 Based on Purgatory (p7y),标明已修改,且不得使用“Purgatory”或“p7y”名称(NOTICE)。0.10.3 及之前的版本以 Apache-2.0 许可证发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。