Get tailored recommendations for your tech stack —Take the Assessment →
Navigation

Web Services

A web service is a long-running app deployed from your GitHub repository. Think APIs, web apps, dashboards — anything that listens on a port and serves requests.

Deploy a web service

1. Connect GitHub

From your project, go to Settings → GitHub and click Connect GitHub. Authorize Container Duck and select which repositories to grant access to.

You can connect multiple GitHub accounts or organizations to a single project.

2. Deploy

  1. Click Add App → From GitHub
  2. Select a connected repository and branch
  3. Choose Web Service as the app type
  4. Click Deploy

Container Duck detects your language and builds your app automatically. No Dockerfile needed (though you can use one if you prefer).

Supported languages

Most common stacks are detected automatically:

LanguageFrameworks
PythonFlask, FastAPI, Django
Node.jsExpress, Next.js, Remix
GoAny Go module
JavaSpring Boot, Maven, Gradle
StaticHTML, React, Vue builds

Configuration

Environment variables

Set env vars from the app's Settings page. These are securely injected into your running app.

Port

Your app should listen on the PORT environment variable (default: 8080). Container Duck sets this automatically.

Procfile

For custom start commands, add a Procfile to your repo root:

web: python -m uvicorn main:app --host 0.0.0.0 --port $PORT

Health check

Set a custom health check path (e.g., /healthz) in the deploy settings. Container Duck uses this to know when your app is ready to receive traffic.

Auto-deploy

When enabled (on by default), pushing to your configured branch triggers a build and deployment automatically. No manual steps.

Toggle auto-deploy from the app's settings page.

Scaling

Web services support auto-scaling:

  • Scale to zero — Idle apps scale down automatically, freeing resources
  • Wake on request — When someone visits the URL, the app spins up automatically
  • Configurable — Set minimum (0) and maximum (up to 10) instances from the app's scaling settings

This is especially useful for development and staging environments where apps don't need to run 24/7.

Build logs

Monitor build progress in real-time from the app detail page — dependency installation, compilation, and deployment status.