transformable-container
Self-hosted deploy API for a single static site. PocketBase-backed with 3 simple skills for your AI Agent: deploy, list revisions, rollback.
What it does
transformable-container is a PocketBase-backed deploy API for a single static site. Upload a zip, get a revisions list, and rollback to any revision. You can delete revisions using the PocketBase Admin UI. An Nginx proxy can serve the active release from disk.
Docker & deployment
GitHub Actions publishes the image ghcr.io/transformable-app/transformable-container on latest and tags. Set SITE_DEPLOY_TOKEN and SITE_URL in .env (see the repo's .env.example). The container writes releases under the mounted site path and updates a current symlink to the active release.
API (3 routes)
| Method | Path | Description |
|---|---|---|
| POST | /api/site/deploy | Upload zip (multipart file, optional message); extract, flip current, return currentRevisionId, url, message. Bearer token required. |
| GET | /api/site/revisions?limit=20 | List current revision id and recent revisions. Bearer token required. |
| POST | /api/site/rollback | Body { "revisionId": "<id>" }; repoint current to that revision. Bearer token required. |
Skill for agents
The Docker image is the deploy-API solution that an agent (e.g. Cursor) can use: deploy zip, list revisions, rollback. The repo includes skills.md with API details and placeholders for PB_BASE_URL and SITE_DEPLOY_TOKEN. For local development, build in site-build/, then run ./scripts/deploy.sh.