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.

Self-hostedAI skillsMIT

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)

MethodPathDescription
POST/api/site/deployUpload zip (multipart file, optional message); extract, flip current, return currentRevisionId, url, message. Bearer token required.
GET/api/site/revisions?limit=20List current revision id and recent revisions. Bearer token required.
POST/api/site/rollbackBody { "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.