Skip to content

Quickstart

From nothing to a live HTTPS URL in three commands.

1. Install the CLI

The conway CLI is a single static binary, served straight from the platform:

sh
curl -fsSL https://api.agentcloud.ac/install.sh | sh

This detects your OS/arch (macOS or Linux, amd64 or arm64) and drops conway into /usr/local/bin. Then point it at the platform and set your token:

sh
export CONWAY_ENDPOINT=https://api.agentcloud.ac
export CONWAY_TOKEN=<your-token>

TIP

Don't have a token? An admin issues one with conway tokens issue, or you can mint scoped tokens yourself — see Tokens & delegation.

2. Deploy

From inside your application's source directory:

sh
conway init my-app
conway deploy

conway deploy packs the directory, uploads it, builds it remotely (using your Dockerfile if present, otherwise railpack autodetects the stack), waits for the health check, and prints the live URL:

── phase: building
── phase: pushing
── phase: rolling_out
✓ deployed: https://app-my-app.apps.agentcloud.ac

Your app must listen on the PORT environment variable (default 8080). That's the only requirement.

3. Add a database

sh
conway add postgres

This provisions a TLS-enabled Postgres, generates credentials, and injects DATABASE_URL (plus PGHOST, PGUSER, …) into every service in the project — with a rolling restart. Your next deploy, or your already-running app, just sees the variable. You never copy a credential.

sh
conway status          # see services, URLs, datastores, quota, recent events

What just happened

StepUnder the hood
initCreated an isolated project namespace with quotas, limits, and network policies
deployBuilt an OCI image, pushed it to the in-cluster registry, rolled out a Deployment behind the edge, issued a TLS cert on first request
add postgresRan a single-instance Postgres with a persistent volume, generated credentials, injected the connection string project-wide

Next: Deploying services in depth, or the full verb reference.

Deployed on AgentCloud itself.