Skip to content
cloudhost
Languages

Write in any language. We run it.

Push a Django, FastAPI, Go or Laravel app as it is. No build file to write, no SDK to add. We detect the language from the project's files, build it and run it on instances.

Bring the language you use

A project with no package.json is recognised from its files: requirements.txt or pyproject.toml, go.mod, composer.json, pom.xml, Gemfile, Cargo.toml.

  • Python

    Django, FastAPI and Flask. Bytecode is compiled in the build, so the app starts fast.

  • Go

    We build the binary. Under 0.2 seconds to the first answer.

  • PHP

    Laravel and Symfony, with the dependencies composer.json names.

  • Java

    Spring Boot and any Maven or Gradle project.

  • Ruby

    Rails and any app with a Gemfile.

  • Rust

    A Cargo project, built on our servers.

  • .NET

    ASP.NET Core web apps.

  • JavaScript and TypeScript

    Functions and Next.js or Astro apps, as always.

From code to instances

The same path as every app and function: main is production and every other branch gets a preview of its own.

  1. Push

    With git push, the CLI, or a connected repository.

    git push cloudhost main
  2. Detect and build

    The language, version, install and start commands come from your files, and the build log shows them.

    detected python; start: uvicorn main:app
  3. Instances start

    The new version's first instance starts at once, and the old version answers until it is ready.

    cloudhost instances my-api
  4. Autoscale

    More load adds instances; idle time brings them down to the minimum, even zero.

    cloudhost instances set my-api --min 0 --max 5

What you get

  • No build file

    No Dockerfile, no config file. The start command comes from your framework; if needed, a web: line in a Procfile sets it.

  • Instances, sized for you

    Each instance is a copy of your program with its own vCPU and memory. Pick small, medium or large, separately for production and previews.

  • Autoscale down to zero

    Set the minimum and maximum instances. With 0, nothing stays on after 5 idle minutes, and the next request waits for a short cold start.

  • SQL database and cache, no password

    DATABASE_URL and CACHE_URL are set and hold no secret. The platform checks on every connection that the instance belongs to that app. Any driver works.

  • HTTPS out

    Your program calls any public API over HTTPS. Common HTTP clients pick up the settings by themselves. Internal network addresses are blocked.

  • Logs and the instance list

    Every line on stdout and stderr is a log line, with the instance's id. See the running instances and why each one stopped in the dashboard, the CLI and MCP.

  • Deploys with no wait

    No request waits for the new version's cold start. Traffic moves once the first new instance is ready.

  • Previews and rollback

    As for any app or function: a preview per branch, rollback with no rebuild, custom domains, secrets and alerts.

  • Walled off and checked

    The app's folder is read-only and only /tmp can be written. Each instance has its own resource limits, and every build's image is checked for vulnerabilities before release.

Answer on PORT. We do the rest.

Your program accepts requests on the port in PORT and writes logs to standard output. Keep data in the project's database, cache or bucket.

import os
import psycopg
from fastapi import FastAPI

app = FastAPI()


@app.get("/orders")
def orders():
    # DATABASE_URL holds no password: the platform checks who is calling
    with psycopg.connect(os.environ["DATABASE_URL"]) as db:
        return db.execute("select id, total from orders limit 10").fetchall()

Instance sizes

vCPUMemory
Small0.25512 MB
Medium12 GB
Large48 GB

Only while it runs

Each instance is billed for its vCPU and memory, per second, from when it is ready until it stops. An instance that is off costs nothing, and a failed start is not billed. It comes out of the month's credit first, then the wallet.

Questions

Push your project as it is

One command, in any language.

Sign-up is by invite for now. If you have a code, create your account.

Sign up withEmail codeSMS code