Skip to Content
Documentation
ApplicationsApplication types

Application types

Choose the type that matches your process. The language is a separate choice from the way the application receives traffic and stays running.

TypeUse it forNetworking
Web serviceAPIs, server-rendered sites and HTTP backendsHTTP container port and public routing
Static siteBuilt frontend files or plain HTML/CSS/JSPublic HTTP serving of a publish directory
Background workerContinuous queue consumers and background processingNo public HTTP endpoint
TCP/UDP serviceDatabases and other non-HTTP processesPrivate service ports; external publishing is optional

Web service

The process must keep running and listen on the configured Container port. It should bind to an interface accessible to container networking, commonly 0.0.0.0. A successful build cannot fix a port mismatch or a process that exits immediately.

Static site

A source build produces files to publish, or a plain HTML/CSS/JS source already contains them. Choose the Publish directory containing index.html; it is relative to the application’s source directory.

For a client-side router, enable Single-page app routing. A server-rendered application that needs a running backend belongs under Web service. See the static-site tutorial.

Background worker

The command remains running while waiting for or processing work. A one-off script that immediately exits does not match this workload shape. Use logs and deployment state to verify work rather than expecting a public website.

TCP/UDP service

Use a Docker image or source with an explicit start command. Add service ports in the runtime step. Ports stay private unless you enable external publishing. Read Private networking and TCP/UDP services before exposing a database or stateful service.

Choose a source

  • Git repository: build source from connected GitHub or a public Git URL.
  • Docker image: run a packaged image, optionally with a granted private registry credential.
  • ZIP archive: upload source code or ready-to-serve static files.

Git and ZIP builds need an amd64 server. ARM servers can run compatible prebuilt Docker images. The dashboard supports Go and TCP/UDP service configuration; MCP deployments currently support fewer options.

Names and descriptions

Use a stable, recognizable application name. It cannot be renamed after creation. The description can change without triggering a deployment. Keep secrets and customer records out of both fields.

Last updated on