Introduction
Ghaymah is a cloud platform for deploying apps and attaching the services they need: managed S3 storage, persistent volumes, PostgreSQL, and secrets. You can drive it two ways:
- The
gyCLI — for humans. One command deploys, configures, and monitors. - The REST API — for automation. Every resource is a JSON API.
The CLI is designed around one idea:
Deploying should be a single command — not a configuration project.
Run gy deploy from any project directory and gy detects your language and framework,
generates a container for you, uploads it, and returns a live URL. No Dockerfile, YAML, or
UUIDs required. Then add storage, a database, or secrets as your app grows.
Deploy with the CLI
Section titled “Deploy with the CLI”gy deployUnder the hood, gy:
- Detects your project type — Node.js, Python, Go, Rust, static sites, or a custom
Dockerfile. - Generates a
Dockerfileif you don’t already have one. - Builds and packages a deployment artifact.
- Uploads and deploys to Ghaymah Cloud.
- Returns a public URL — and writes a
.gy.jsonconfig file for future commands.
Build on the REST API
Section titled “Build on the REST API”Every service is also a JSON API at https://api.cumin.dev:
curl -X POST https://api.cumin.dev/apps \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "project_id": "…", "name": "my-api", "image": "docker.io/nginx:latest", "ports": [{ "name": "web", "number": 80 }], "cpu": 256, "memory": 512, "instances": 1, "hibernated": false }'The same API covers S3 buckets and keys, volumes, managed PostgreSQL, and secrets. See the REST API overview for the full reference.
Design principles
Section titled “Design principles”- Friendly names over identifiers. You reference resources by name (
my-api), never by UUID. - Zero-config by default. Sensible defaults for every flag; opt in to more control.
- AI and script friendly. Every command emits structured
--jsonoutput on request. - Progressive disclosure.
gy deploy --wizardguides newcomers, while experts use one-liners. - One platform, two interfaces. The CLI and the REST API operate on the same resources.
What’s in the box
Section titled “What’s in the box”| Capability | CLI | REST API |
|---|---|---|
| Deploy an app | gy deploy |
POST /apps |
| Configure without redeploying | gy config |
PUT /apps |
| Stream logs | gy logs |
GET /logs/{id} |
| List & inspect resources | gy list, gy info |
GET /apps |
| Object storage | — | POST /s3/buckets, POST /s3/keys |
| Persistent volumes | — | POST /volumes |
| Managed PostgreSQL | — | POST /db/postgres |
| Secrets | — | POST /secrets, POST /secrets/pull |
| Expose localhost | gy tunnel start |
— |
| Manage accounts | gy login, gy whoami, … |
— |