render-web-services
Render Web Services
This skill covers Web Service behavior on Render: how traffic reaches your process, how deploys go live, and how optional features (domains, disks, auto-deploy) interact. Use it alongside Blueprint and networking skills when wiring render.yaml or Dashboard settings.
When to Use
- Configuring or debugging port binding, PORT, or multi-port web services
- TLS/HTTPS expectations at the edge vs inside the container
- Health checks blocking or rolling back deploys
- Custom domains, DNS, and certificate provisioning
- Auto-deploy, CI-gated deploys, and PR preview generation
- Persistent disks and their impact on scaling and zero-downtime
- Deploy lifecycle: build, pre-deploy, swap, drain, rollback, shutdown delay
Deeper patterns live under references/ (health checks, domains, deploy phases).
Port Binding
- Listen on
0.0.0.0(all interfaces). Binding only tolocalhostor127.0.0.1prevents Render’s proxy from reaching your app. - Use the
PORTenvironment variable for the HTTP listen port. Render sets it for you; the default is often10000and you can change the configured value in the service Settings in the Dashboard. - Reserved ports (do not bind your application to these for normal traffic):
18012,18013,19099.
Multi-port Web Services
- Only one port receives public HTTP traffic: the port aligned with
PORT. - Additional open ports are reachable on Render’s private network only (not from the public internet through the same public URL pattern).
TLS and HTTPS
- TLS terminates at Render’s edge. The edge speaks HTTPS to clients; your process typically receives plain HTTP on
PORT. - HTTPS redirect for clients is handled by the platform; users hitting HTTP are redirected appropriately at the edge.
- Do not terminate TLS inside the app for the primary public listener unless you have a rare, explicit need—standard Web Services assume HTTP behind the proxy.
Health Checks
- Configure a path via
healthCheckPathin a Blueprint or the Health Check Path field in the Dashboard. - Render issues HTTP GET requests to that path. Responses must be
2xxor3xxfor success. - Failed health checks prevent a new deploy from going live (the deploy does not succeed in taking production traffic as expected).
- Render probes on a repeat interval with a per-request timeout; both are configurable in service settings (see Dashboard). Failed checks during rollout prevent the new revision from receiving traffic.
- Check frequency, timeouts, and tuning guidance in
references/health-check-patterns.md.
Custom Domains
- Point DNS with a CNAME to
[service-name].onrender.com(use your service’s hostname from the Dashboard). - Render automatically provisions and renews TLS certificates for verified domains.
- Apex (root) domains need provider-specific CNAME-like or flattened records where plain CNAME at
@is unsupported. - Wildcard domains (e.g.
*.example.com) are supported when configured and verified. - Multiple custom domains per service are supported; Blueprints can list them under the
domainsfield.
See references/custom-domains.md for Dashboard steps, verification, and troubleshooting.
Auto-Deploy and PR Previews
autoDeployTrigger(Blueprint) / auto-deploy settings control when production deploys run:commit— deploy on every push to the tracked branchchecksPass— deploy only when required Git checks passoff— manual deploys only (Dashboard, CLI, hooks)
- PR previews are configured under Blueprint
previews.generation(and related preview settings); generation behavior depends on repo integration and plan.
Persistent Disks
- Attach disks via the
diskfield in a Blueprint (or equivalent Dashboard storage settings). - A service with an attached persistent disk is single-instance only: horizontal scaling is not available in that configuration.
- Zero-downtime deploys are disabled when a persistent disk is attached—deploys follow a different rollout pattern.
- Disk size increases are allowed; decreases are not.
- The disk is not mounted during the build phase—only at runtime in the running service.
Deploy Lifecycle
Typical flow:
- Build — clone repo, run
buildCommand, produce the runnable artifact/image. - Pre-deploy command (optional) — runs in the new image before traffic switches; use for migrations. If it fails, the deploy is canceled.
- Deploy — new instances start; health checks must pass before traffic moves.
- Zero-downtime swap (when applicable) — traffic shifts to new instances; old instances drain in-flight work.
maxShutdownDelaySeconds(range 1–300, default 30) bounds how long old instances may continue handling requests during drain before shutdown.- Rollbacks — revert to a previous successful deploy from the Dashboard.
Full sequence, hooks, filters, and CLI notes: references/deploy-lifecycle.md.
Free Tier Notes
Free Web Services have separate limits: e.g. no custom domains on the free instance type, and services spin down after inactivity (cold starts on next request). Treat free-tier behavior as distinct from paid Web Service defaults when advising on domains, uptime, and scaling.
References
| Topic | File |
|---|---|
| Health check design, timeouts, pitfalls | references/health-check-patterns.md |
| Domains, DNS, TLS verification | references/custom-domains.md |
| Build, pre-deploy, drain, rollbacks, triggers | references/deploy-lifecycle.md |
Related Skills
- render-deploy — Blueprints, first-time deploy,
render.yamlstructure - render-docker — Docker-based Web Services and image/runtime details
- render-networking — Private network, internal URLs, multi-port private listeners
- render-scaling — Instance counts, plans, and scaling constraints (including disk interactions)
More from render-oss/skills
render-deploy
Deploy applications to Render by analyzing codebases, generating render.yaml Blueprints, and providing Dashboard deeplinks. Use when the user wants to deploy, host, publish, or set up their application on Render's cloud platform.
58render-debug
Debug failed Render deployments by analyzing logs, metrics, and database state. Identifies errors (missing env vars, port binding, OOM, etc.) and suggests fixes. Use when deployments fail, services won't start, or users mention errors, logs, or debugging.
46render-monitor
Monitor Render services in real-time. Check health, performance metrics, logs, and resource usage. Use when users want to check service status, view metrics, monitor performance, or verify deployments are healthy.
45render-workflows
Sets up, develops, tests, and deploys Render Workflows. Covers first-time scaffolding (via CLI or manual), SDK installation (Python or TypeScript), task patterns (retries, subtasks, fan-out), local development, Dashboard deployment, and troubleshooting. Use when a user wants to set up Render Workflows for the first time, scaffold a workflow service, add or modify workflow tasks, test workflows locally, or deploy workflows to Render.
34render-migrate-from-heroku
Migrate from Heroku to Render by reading local project files and generating equivalent Render services. Triggers: any mention of migrating from Heroku, moving off Heroku, Heroku to Render migration, or switching from Heroku. Reads Procfile, dependency files, and app config from the local repo. Optionally uses Heroku MCP to enrich with live config vars, add-on details, and dyno sizes. Uses Render MCP or Blueprint YAML to create services.
27render-networking
>-
13