CH. 05 Deploy · localhost → the world

From localhost to a live URL, in one sentence

Deploying used to mean dashboards, YAML and an afternoon of docs. Now you can open your AI coding agent and say “deploy this to cloudish.ai.” It packages your app, builds it on a server, and hands back a link anyone can open.

~/my-app — claude
$ claude "Deploy this project to cloudish.ai"
● Reading https://cloudish.ai/skill.md
● Creating an API key ............ done
● Packaging build context ........ 18 KB
(.env and .git left out)
● Building image on Cloudish ..... 9.4 s
● Starting container on :8080 .... ok
✓ Live: https://my-app.on.do.cloudish.ai
$

An illustrative session. Your agent's wording will differ; the steps won't.

§ 01 What “deploy” actually does

Six steps from your folder to the planet

Every platform does some version of these. The only difference is how many you do by hand.

CodeA folder with your app and a Dockerfile describing how to run it.
PackageZipped into a build context — with secrets and git history left out.
BuildThe Dockerfile becomes an image: your app plus everything it needs.
StoreThe image is saved in a private registry, ready to run anywhere.
RunA container starts on a server and listens on its port — say 8080.
ShipA public HTTPS URL routes the world to your container.

§ 02 The launchpad

Deploy something. Right now.

No signup · billed per second
A You have a project

Hand it to your coding agent

Open a terminal in your project's folder and paste one of these. The agent reads Cloudish's instructions, packages your code, waits for the build and gives you the URL.

$claude "Deploy this project to cloudish.ai and give me the live URL. Instructions: https://cloudish.ai/skill.md"
$codex "Deploy this project to cloudish.ai and give me the live URL. Instructions: https://cloudish.ai/skill.md"
or
Open in Claude CodeOpens your terminal, prompt pre-filled

Works with Claude Code, Codex, Gemini CLI, Cursor and any agent that can run commands. No Dockerfile? The agent will write one.

B You have an idea

Build & deploy it from your browser

2 The prompt
Build me a personal homepage with a guestbook as a small web app with a Dockerfile, then deploy it to cloudish.ai using the instructions at https://cloudish.ai/skill.md and send me the live URL. If you can't run commands yourself, give me the exact steps to run in my terminal.
3 Send it

The prompt is copied to your clipboard too, in case the chat doesn't pre-fill it. Chat assistants deploy directly when they can run code with internet access; otherwise they'll write the app and give you the two commands to run.

Signup
None — the first request creates an API key
Build
On Cloudish's servers, from your Dockerfile — no Docker needed locally
Address
A permanent HTTPS URL, provisioned automatically
Billing
Per second while running; idle apps scale to zero
Updates
Ask again — the same request redeploys
Data
Persistent volumes for SQLite or Postgres; encrypted secrets

§ 03 No agent? No problem

The same deploy, by hand

Under the hood, the agent runs a couple of commands — so can you. All you need is curl, tar and a Dockerfile at the root of your project.

Your app must listen on 0.0.0.0 and on the port you declare — not on localhost — or the platform's proxy can't reach it. (Sound familiar? It's the same rule as your phone.)

This very site deploys this way: a five-line Dockerfile that serves these pages with nginx.

Dockerfile · a Node.js app
FROM node:22-alpine
WORKDIR /app
COPY . .
RUN npm ci && npm run build
# your server must listen on 0.0.0.0:$PORT
ENV PORT=8080
EXPOSE 8080
CMD ["npm", "start"]
Terminal · deploy to Cloudish
# 1. Get an API key (no signup) — save "key" as CLOUDISH_API_KEY
curl -X POST https://cloudish.ai/api/v1/keys

# 2. Package the project, leaving secrets and git history out
tar --exclude='.env*' --exclude='.git' -czf context.tar.gz .

# 3. Upload it — Cloudish builds the Dockerfile and runs it
curl -X POST https://cloudish.ai/api/v1/projects \
  -H "Authorization: Bearer $CLOUDISH_API_KEY" \
  -F "name=my-app" -F "port=8080" -F "context=@context.tar.gz"

# 4. Later: run steps 2 and 3 again to redeploy
Keep secrets outNever bake API keys into the code you upload. Set them with Cloudish's encrypted secrets endpoint — the full API is documented in cloudish.ai/skill.md.

§ 04 Choose your cloud

Cloudish vs Vercel + Supabase vs AWS vs DigitalOcean

All of them can be driven from a terminal — and therefore by an AI agent. They differ in what you have to understand first.

Front end + managed backend

Vercel + Supabase

Vercel deploys front ends and serverless functions to a global edge network; Supabase adds a managed Postgres database, logins and file storage. Most “vibe-coded” full-stack apps map onto this pair.

Pick it if you're building a Next.js-style app that needs a database and auth fast, and you're happy wiring two services together.

Terminal
npx vercel --prod
npx supabase link --project-ref <ref>
npx supabase db push
The industry standard

AWS

The largest cloud, with nearly unlimited flexibility — and nearly unlimited ways to configure something wrong. For a container app, Amazon ECS Express Mode sets up the load balancer, scaling and URL for you; Amplify Hosting deploys front ends from a Git repo. (App Runner closed to new customers in April 2026.)

Pick it if you already use AWS, need fine-grained control, or are planning for serious scale.

Terminal · ECS Express Mode (image already in ECR)
aws ecs create-express-gateway-service \
  --primary-container image=<account>.dkr.ecr.<region>.amazonaws.com/my-app:latest \
  --execution-role-arn <task-execution-role-arn> \
  --infrastructure-role-arn <infrastructure-role-arn> \
  --monitor-resources
Real servers, predictable bills

DigitalOcean

Approachable virtual servers (“Droplets”) plus App Platform for Git- or spec-based deploys, with managed databases alongside — all scriptable from the doctl CLI.

Pick it if you want a real server or simple app hosting with flat monthly pricing, without AWS's sprawl.

Terminal
doctl auth init
doctl apps create --spec .do/app.yaml

Also worth knowing: Fly.io (fly deploy), Railway (railway up), Render (Git push), Netlify (netlify deploy --prod) and Google Cloud Run (gcloud run deploy --source .).

PlatformBest forHow you deployDatabasePricing model
Cloudish.aiLetting an AI agent deploy any container end to endOne sentence to your agent, or two curl callsBring your own: SQLite or Postgres on a volumePer-second credits; small free grant to start
Vercel + SupabaseFront-end-heavy apps that need a database and auth fastvercel --prod + supabase db pushSupabase: managed Postgres, auth, storageFree tiers, then usage-based
AWSTeams on AWS, maximum control, large scaleECS Express Mode (containers), Amplify Hosting (front ends)RDS, Aurora, DynamoDB — configured separatelyUsage-based, many line items
DigitalOceanSimple servers and app hosting without the sprawldoctl apps create or a DropletManaged PostgreSQL, MySQL and moreFlat monthly tiers
Google Cloud RunContainers that scale to zero on Google Cloudgcloud run deploy --source .Cloud SQL, FirestoreUsage-based with a free tier

§ 05 The short version

So which one should you pick?

  • You build with an AI agent and want it to handle everythingCloudish.ai
  • You want a database and logins on the fastest pathVercel + Supabase
  • You're already on AWS, or need fine-grained controlAWS · ECS Express Mode
  • You want a plain server with a predictable billDigitalOcean
  • You want containers that scale to zero on GoogleGoogle Cloud Run

§ 06 FAQ

Deploying, answered

What does “deploy” mean?

Copying your app from your own computer to a server that stays on and has a public address, then starting it there. After you deploy, your app has a URL that works for anyone, anywhere — not just on your localhost.

Can ChatGPT or Claude deploy my app for me?

Coding agents such as Claude Code and Codex run commands on your computer, so they can deploy a project end to end. Chat assistants in the browser can deploy when they're able to run code with internet access; otherwise they'll write the app and give you the exact commands to run yourself.

Do I need Docker installed to deploy to Cloudish?

No. You need a Dockerfile in your project, but the image is built on Cloudish's servers, not on your machine. If your project doesn't have a Dockerfile yet, your coding agent can write one.

How do I update my app after deploying?

Deploy again. With Cloudish, uploading your project with the same project name updates it in place — or just ask your agent to redeploy. Most other platforms redeploy on every git push or CLI deploy.

How much does it cost to deploy a small app?

Often very little. Cloudish bills per second only while your app is running and scales idle apps to zero, and new keys start with a small free credit grant. Vercel, Supabase, Cloud Run and others have free tiers. Costs grow with traffic, memory and CPU.

Why does my app work on localhost but not after deploying?

The most common cause: the app listens on localhost (127.0.0.1) instead of 0.0.0.0, or on a different port than the platform expects. In a container, 127.0.0.1 is unreachable from outside — listen on 0.0.0.0 and the declared port.

Where do my API keys and passwords go?

Never in the code you upload. Use your platform's secrets or environment-variable settings — on Cloudish, the encrypted secrets endpoint — and keep a .env file out of your build context and your git history.