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
- Click Add App → From GitHub
- Select a connected repository and branch
- Choose Web Service as the app type
- 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:
| Language | Frameworks |
|---|---|
| Python | Flask, FastAPI, Django |
| Node.js | Express, Next.js, Remix |
| Go | Any Go module |
| Java | Spring Boot, Maven, Gradle |
| Static | HTML, 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.