Docs / Compute

Web Services

BreachFix Cloud web services host dynamic apps and APIs — Express, Django, FastAPI, Gin, and anything that speaks HTTP. Connect a Git repository or upload source; the platform builds and deploys on every push or on demand. Dockerfiles are supported when you need full control over the runtime image.

Every web service gets a default public URL at {serviceId}.breachfix.com with platform TLS. Add custom domains when you are ready to use your own hostname.

Need an app that is not reachable from the public internet? Create a private service instead — same deploy pipeline, no public route.

Your web service must bind its HTTP server to host 0.0.0.0 inside the container. Use the PORT environment variable — see port binding below.

Creating a web service

  1. Register or sign in, then open the dashboard.
  2. Connect GitHub under Integrations — see Connect GitHub.
  3. Click + New → Web Service, pick repository and branch, and fill in build/start commands.
  4. Choose an instance plan and click Create Web Service.

Alternative deploy paths: source upload, Dockerfile, or deploy hooks.

Service creation fields

FieldDescription
NameIdentifies the service in the dashboard. Default hostname uses the service ID.
RegionPlacement label for your cluster. Services in the same workspace share an isolated Docker network.
BranchGit branch to build and deploy from.
Build commandShell command to compile or install — e.g. npm install && npm run build.
Start commandStarts the server — e.g. npm start. Omit when using a Dockerfile CMD.
Health check pathHTTP path probed before zero-downtime swap (default /health). Must return 2xx or 3xx.
Instance planCPU and memory limits. See instance plans doc.

Port binding

The gateway forwards inbound HTTP and WebSocket traffic to the port in the PORT environment variable (default 8080). Bind to 0.0.0.0, not 127.0.0.1.

const express = require('express')
const app = express()
const port = Number(process.env.PORT || 8080)

app.get('/', (req, res) => res.send('Hello from BreachFix Cloud'))
app.listen(port, '0.0.0.0', () => console.log(`Listening on ${port}`))

If the health check cannot reach your app on PORT, the deploy fails and the previous instance stays up. Check logs and troubleshooting.

Platform environment

On every deploy, BreachFix Cloud merges platform defaults, linked env groups, and service variables. User variables override defaults. See Environment variables.

VariablePurpose
BASE_URLPublic URL for OAuth callbacks and links
BREACHFIX_CLOUD_SERVICE_IDStable service identifier
BREACHFIX_CLOUD_PUBLIC_URLControl plane origin (dashboard, API)
PORTHTTP port the gateway forwards to

Connecting to your service

Public traffic reaches your service at its default or custom domain. Sibling services in the same workspace can reach it by container hostname lc-{serviceId} on PORT. See Workspace private network.

Related guides