Runtime & limits
Your app runs around the clock on dedicated compute. No cold starts, no request timeouts.
Apps run as long-lived processes, not serverless functions. Your process can run indefinitely, hold connections open, and do background work. There are no cold starts and no request timeouts.
Always on
On every plan, your app runs 24/7. It doesn't sleep between requests, and it restarts itself if it crashes. This is true on the free plan too.
CPU and memory by plan
| Plan | CPU | Memory |
|---|---|---|
| Hobby (free) | 0.25 vCPU (shared) | 512 MB |
| Pro | 1 vCPU | 1 GB |
| Scale | 2 vCPU | 4 GB |
See pricing for prices and per-plan app counts. If your app is bumping against its memory or CPU, the dashboard shows it live (see Logs & monitoring), and upgrading a plan raises the ceiling.
Network access
Every app has full outbound internet on every plan: LLM APIs, third-party services, package registries, anything reachable over HTTPS. Apps are isolated from each other and can't reach other tenants' apps. That isolation is enforced at the network layer, not left to your config.
Variables Dockhold injects
These are set for you in every app. Read them; don't define them.
PORT # the port your app must listen on, on 0.0.0.0
DATABASE_URL # set when the managed database add-on is on On top of those, you get any plain variables you set in the dashboard and any secrets you bound from the Vault. See Environment variables & secrets.