Contents
Quickstart
Get a service live on Ratel in under a minute.
- Create your account — register a free Sandbox workspace; no credit card required.
- Pick a path:
- Static site — upload a zip or folder with
index.htmlfrom Resources → Upload a static site (fastest). - GitHub app — connect a repo from the dashboard; Nixpacks autodetects Python and Node.js.
- Static site — upload a zip or folder with
- Deploy — you get a free HTTPS URL at
https://[name]-[hash].up.getratel.comimmediately. - Optional: add your own domain — see Custom domains below.
CLI & MCP — deploy from your terminal
The ratel CLI is a single compiled binary that deploys static sites and backends, and runs as an
MCP server so Cursor and Claude Desktop can deploy for you. Download it from
Dashboard → Downloads.
- Install — macOS/Linux:
curl -fsSL https://github.com/techmaster25/Ratel/releases/latest/download/install.sh | sh. Windows:irm https://github.com/techmaster25/Ratel/releases/latest/download/install.ps1 | iex. - Get a token — generate a signed
ratel_live_…key on Dashboard → API Tokens (shown once). - Log in —
ratel login, then paste the key (or setRATEL_API_KEY). - Deploy a static site in seconds —
ratel deploy --static ./dist. - Deploy a backend — from the project root,
ratel deploy --port 8080 --env KEY=VALUE; Nixpacks auto-detects Node/Go/Rust/Python/Dockerfile, builds it, and streams status until the URL is live. - List your apps —
ratel list.
Connect your AI editor (MCP)
Add this to Cursor (~/.cursor/mcp.json) or Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"ratel": {
"command": "ratel",
"args": ["mcp"],
"env": { "RATEL_API_KEY": "ratel_live_xxxxxxxx" }
}
}
}
The agent gets nine tools, all bound to your account: ratel_deploy_static_site,
ratel_deploy_backend_software, ratel_list_account_applications,
ratel_application_status, ratel_deployment_logs, ratel_delete_application,
ratel_provision_database, ratel_list_databases, and ratel_add_custom_domain.
Manage from the terminal
Beyond deploying: ratel status <app>, ratel logs <app> -f,
ratel open <app>, ratel delete <app>, managed databases
(ratel db create mydb --engine postgres), custom domains
(ratel domain add example.com), and a ratel.json project file (ratel init).
Add --json to any read command to script it. Full guide:
Docs/CLI.md.
Static websites
Perfect for marketing pages, portfolios, and exported HTML sites (no server code required).
- Go to Dashboard → Resources → Upload a static site.
- Enter a site name and upload a zip file (recommended) or choose the folder that contains your
index.html. - Click Upload & deploy. Your site is live on a
*.up.getratel.comURL within seconds. - To use
www.yourdomain.com, add a custom domain in the next section and attach it to this site.
Tip: Upload the contents of your build folder (where index.html lives),
not the whole project. Zip dist/, out/, or build/ — images and fonts are included automatically.
Framework guides
Ratel works with any stack that produces a runnable server or a static index.html.
No special config required — pick the path that matches your project.
PHP / WordPress / cPanel-style sites
Upload a zip of your site (must include index.html or index.php at the root).
For PHP that needs a server, zip the project and run ratel deploy from the folder — Nixpacks detects PHP automatically.
React, Vite, Vue, Svelte (static export)
- Run
npm run buildlocally. - Upload the
dist/folder as a zip from Resources → Upload a static site, or runratel deploy --static ./dist.
Next.js
- Static export — set
output: 'export'innext.config.js, runnpm run build, upload theout/folder as a static site. - Full-stack (API routes, SSR) — connect GitHub or run
ratel deployfrom the project root. Nixpacks builds and runsnext starton port 8080. Add aratel.jsonwith"port": 8080if needed.
Node / Express APIs
Push to GitHub or ratel deploy --port 8080. Set PORT=8080 in env if your app reads process.env.PORT.
React Native / Expo
Mobile apps are distributed via app stores, not web hosting. For an Expo web build, run npx expo export --platform web
and upload the output folder as a static site. Backend APIs can be deployed with ratel deploy like any Node project.
Databases for your app
Create Postgres from Resources → Databases, via MCP provision_database,
or ratel db create mydb --engine postgres. Connection strings are shown once — add them as environment variables on your backend deploy.
Custom domains (GoDaddy & others)
Keep DNS at your registrar (GoDaddy, Namecheap, Cloudflare, Google Domains, …). You only add a few records — no nameserver change.
- Deploy a site or app first.
- In Resources → Point your domain here, enter your domain (e.g.
mybusiness.com). - Copy the DNS table Ratel shows you into your registrar's DNS panel.
Minimum records for your website to load
These two rows are what send visitors to Ratel:
Type Name/Host Value A @ 199.127.63.73 CNAME www mybusiness.com
Replace mybusiness.com with your actual domain. At GoDaddy: My Products → DNS → Add Record.
Use @ in the Name field for the A record (means “the root domain”). TTL can stay at default (600 seconds or 1 hour).
Ratel also shows TXT/MX/DKIM/DMARC rows if you want business email on the same domain — add those only if you need email.
After DNS propagates (usually 5–30 minutes), click Verify DNS, then Attach the domain to your site. HTTPS is issued automatically on first visit.
MCP servers
Ratel hosts remote Model Context Protocol servers over HTTPS and speaks both MCP wire transports, so Cursor, Claude Code, Claude Desktop and the MCP Inspector all connect with no glue code:
- Streamable HTTP (recommended) —
POST /mcp/{server}. One JSON-RPC request per call; the reply isapplication/jsonor an SSE stream, and anMcp-Session-Idheader keeps your session sticky. - HTTP + SSE (legacy) —
GET /mcp/{server}/sseopens the event stream (the first event tells your client where toPOSTmessages).
HTTP-native MCP servers (FastMCP, the TypeScript SDK, …) run as ordinary containers and are reached over the transports above. Authenticate with a Bearer token from your workspace. Every workload runs under hardened cgroups with TLS everywhere and per-tenant isolation.
Connect your AI agent
Point any client at https://api.getratel.com/mcp/<your-server> and pass your token. Replace
my-server and rtl_YOUR_TOKEN below.
Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"my-server": {
"url": "https://api.getratel.com/mcp/my-server",
"headers": { "Authorization": "Bearer rtl_YOUR_TOKEN" }
}
}
}
Claude Code — one command
claude mcp add --transport http my-server \ https://api.getratel.com/mcp/my-server \ --header "Authorization: Bearer rtl_YOUR_TOKEN"
Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://api.getratel.com/mcp/my-server",
"--header", "Authorization: Bearer rtl_YOUR_TOKEN"
]
}
}
}
After saving, restart the client (or run claude mcp list in Claude Code) and
your server's tools appear automatically. Same URL works for every client — pick the snippet that matches yours.
Backends
Deploy Python and Node.js backends with Git push-to-deploy. Every open pull request spins up a per-PR preview deployment, and containers run unprivileged with all Linux capabilities dropped, hard memory caps, and CPU quotas.
Databases
Provision managed PostgreSQL, MySQL, and MariaDB directly from your dashboard. Each database runs in its own hardened container bound to a host-mounted persistent volume scoped to your workspace, reachable only on your private tenant network — never exposed to the public internet — with freshly generated credentials. PostgreSQL databases are backed up daily as logical dumps to per-tenant object storage; the last backup time is shown on your dashboard and restores are operator-assisted.
Business email
Send from your own domain through a DKIM-signed smart-host relay that protects your sender reputation, with inbound mail routed to your inbox. Ratel configures your DNS holistically (MX / SPF / DKIM / DMARC) under one table and mints per-workspace DKIM keys.
API reference
Authenticate API requests with a Bearer token from your workspace.
POST /proxy/{path}— authenticated reverse-proxy to your tenant compute. Streamstext/event-streamfor SSE. Consumption is metered automatically.GET /healthz— service health probe.POST /webhooks/github— Git-to-deploy webhook (signature-verified).POST /webhooks/stripe— billing events (signature-verified).
Admin-root workspaces bypass metering and billing entirely — useful for platform operations and development.
Billing & plans
Start on the free Sandbox tier and upgrade to Professional ($12/mo) or Enterprise ($45/mo) at any time. Manage your subscription — upgrade, downgrade, or cancel — from the dashboard via the secure Stripe Customer Portal. See Refund Policy and full pricing.
Status
The platform is operated on hardened, dedicated infrastructure with a 99.9% uptime SLA for paid plans. For live incident updates and scheduled-maintenance notices, watch the in-product banner or contact support@getratel.com.