Deploy on Jio
Build on a persistent 4-vCPU VM and print its public URL.
Choose Large (4 vCPU, 8 GiB) in jio config. The deployment script remembers its VM in .local/jio-vm, fetches the requested Git revision, installs Rust, PostgreSQL, and nginx once, and checks the public endpoints. Later deploys reuse the published URLs and native caches, then build and restart only services changed since the last successful revision. It does not use Docker or publish an image.
./deploy/jio.shProgress and the complete endpoint list are written to stderr. The final stdout line contains only the landing URL, so it can be captured directly:
landing_url="$(./deploy/jio.sh)"
open "$landing_url"Remote build, migration, and restart logs stream live through the Jio SSH connection and appear in the GitHub Actions deploy step.
Pass an existing Large computer ID to select it for this and future deploys:
./deploy/jio.sh <vm-id>The script uses the current Git branch and its origin remote. Override either value when needed:
GIT_REPO=https://github.com/you/project.git GIT_REF=feature ./deploy/jio.shPushes to main run the included GitHub Actions workflow. GitHub only selects the persistent VM and invokes this script; the VM fetches the exact commit, compiles it locally, applies pending SQLx migrations when the API starts, and restarts the native services. Configure repository secrets JIO_API_KEY and JIO_SSH_KEY, plus bootstrap variables JIO_ENDPOINT, JIO_VM_ID, and JIO_HOST_KEY. The workflow keeps the current non-secret VM identity in the jio-state Git tag, recreates a deleted VM with the same deployment SSH key, and remembers its replacement automatically. A replacement VM installs its native toolchain once; later builds reuse it.
The computer keeps its native PostgreSQL data and OAuth signing keys across redeployments. Destroying the computer removes that state and gives the next deployment new public URLs.
Connect a client
Open the printed App URL, register, and select a project. Then follow Connect ChatGPT and Claude with the App URL plus /mcp.