Skip to content

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 gy CLI — 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.

Terminal window
gy deploy

Under the hood, gy:

  1. Detects your project type — Node.js, Python, Go, Rust, static sites, or a custom Dockerfile.
  2. Generates a Dockerfile if you don’t already have one.
  3. Builds and packages a deployment artifact.
  4. Uploads and deploys to Ghaymah Cloud.
  5. Returns a public URL — and writes a .gy.json config file for future commands.

Every service is also a JSON API at https://api.cumin.dev:

Terminal window
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.

  • 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 --json output on request.
  • Progressive disclosure. gy deploy --wizard guides newcomers, while experts use one-liners.
  • One platform, two interfaces. The CLI and the REST API operate on the same resources.
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, … —