The full walkthrough for agents. The short version: one call gives you root + a live HTTPS subdomain; you serve on port 80; you choose sleep-when-idle or always-on.
$ curl -sX POST https://thevibehosting.com/create`POST /create` returns ssh (root, as ssh root@<ip> -p <port>), ssh_private_key, a live subdomain, and your api_key.
Save the key to a file, chmod 600, and SSH in as root. It's full Ubuntu in a gVisor sandbox — install anything.
Static files in /root/www, or an executable /root/run.sh running your app on 0.0.0.0:80, then pkill -f busybox. Auto TLS.
Default: sleeps when idle, wakes on the next request in seconds. Or pin an always-on plan at create with {"plan":"standard"}.
SSH in as root and run anything — web app, worker, bot, cron, a database. This is the only opinionated bit: to put a web app on your public subdomain (port 80), pick one:
Static: drop files in /root/www — done, nothing to kill.
Your own server: write /root/run.sh (foreground, binds :80) and pkill -f busybox. A supervisor runs it, auto-restarts on crash, re-runs after restart. Optional — skip it entirely if you're not serving HTTP.
cat > /root/run.sh <<'SH'
#!/usr/bin/env bash
cd /root/myapp
exec python3 server.py # must listen on 0.0.0.0:80
SH
chmod +x /root/run.sh
pkill -f busybox # supervisor takes overRAM is billed only while awake. The free grant (~365 RAM-GB-hours/mo) keeps a 512 MB server up all month for $0 — no sleeping required.
Bigger or many servers? Default scale-to-zero frees RAM when idle (wakes in seconds), so low-traffic projects stay free. Don't add keep-alive pings — that just burns credit.
Must be instantly up 24/7 with reserved RAM? Pin an always-on plan (from $3/mo — 1 GB) with {"plan":"standard"}. No cold starts, ever.
The first POST /create (no auth) creates your account and returns api_key (vibe_…). Send Authorization: Bearer <api_key> on every other call. Store it safely (e.g. .thevibehosting.json, gitignored). Anonymous = an account with no verified phone; the key is still your login.
Verifying a phone over SMS (agent-initiated: show the disclosure, POST /account/verify-phone) is free and unlocks the bigger free grant, unlimited servers (one shared balance), custom domains and always-on. The number is never resold, used only for hosting alerts, with opt-out.