skills/render-networking/SKILL.md
Connects Render services over the private network—internal DNS, service discovery, and cross-service communication. Use when the user needs to wire services together, resolve internal hostnames, troubleshoot connectivity between services, configure environment isolation, or understand which services can reach each other.
npx skillsauth add render-oss/skills render-networkingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Render’s private network lets services talk to each other without exposing traffic on the public internet. Use this skill when users need internal connectivity, discovery across scaled instances, or correct URL/port behavior for Blueprints and the Dashboard.
For step-by-step architecture examples and Blueprint patterns, see references/communication-patterns.md. For failure modes and fixes, see references/troubleshooting.md.
Private connectivity is available only when all of the following hold:
If either differs, private DNS and internal routing will not connect those services.
| Resource | Private inbound | Private outbound | Internal hostname | |----------|-----------------|------------------|-------------------| | Web Service | Yes (paid tiers; see Free tier below) | Yes | Yes | | Private Service | Yes | Yes | Yes | | Background Worker | No | Yes | No | | Cron Job | No | Yes | No | | Workflow Run | No | Yes | No | | Static Site | — | — | Not on private network | | Managed Postgres | Via internal URL (from allowed clients) | N/A (datastore) | Via internal URL | | Key Value | Via internal URL (from allowed clients) | N/A (datastore) | Via internal URL |
Free-tier Web Services: They may send private traffic to other services, but they cannot receive inbound private traffic. Plan upgrades or topology changes apply if a free web service must accept private connections.
Workers, crons, and workflow runs initiate outbound connections (e.g., to internal URLs or private service hostnames) but are not reachable by internal hostname for inbound calls.
http://service-name:port or https://... when TLS applies—do not assume a bare hostname alone is enough for every HTTP client.http://[internal-hostname]:[port]/path (adjust scheme/port per service).For services with multiple instances, Render exposes a discovery DNS name that resolves to all instance IPs for that service. The pattern is [hostname]-discovery (see Dashboard docs for the exact hostname shown for your service).
RENDER_DISCOVERY_SERVICE is set in environments where discovery applies; use it with the discovery hostname pattern for scripts and app code that need instance lists.See references/communication-patterns.md for discovery-oriented patterns.
PORT environment variable. Additional ports are for private network access only.When something fails to connect, verify the target is listening on the expected port and that the port is not reserved or blocked by misconfiguration.
On Professional and higher workspaces, you can configure per-environment rules so private traffic does not cross certain environment boundaries. If private calls work in one environment but not another, check workspace environment isolation settings before assuming DNS or app bugs.
Professional+ workspaces can use AWS PrivateLink to extend private connectivity to or from external AWS VPCs and approved endpoints. This is separate from default service-to-service private DNS; use it when the architecture requires private access to Render or from Render to specific AWS resources without the public internet.
Short summaries; full diagrams and Blueprint notes live in references/communication-patterns.md.
| Document | Purpose |
|----------|---------|
| references/communication-patterns.md | Gateway, worker→DB, mesh, URL construction, Blueprint fromService, discovery load balancing, private health checks |
| references/troubleshooting.md | DNS, ports, region/workspace, free tier, protocol, resolver, environment isolation |
PORT, and HTTP behaviorrender.yaml, fromService, and multi-service wiringdevelopment
Configures Render web services—port binding, TLS, health checks, custom domains, auto-deploy, PR previews, persistent disks, and deploy lifecycle. Use when the user needs to set up a web service, fix health check failures, add a custom domain, configure zero-downtime deploys, or troubleshoot port binding issues.
development
Deploys and configures static sites on Render's global CDN—build commands, publish paths, SPA routing, redirects, custom headers, and PR previews. Use when the user needs to deploy a static site, set up a React/Vue/Hugo/Gatsby frontend, configure SPA fallback routing, add redirect rules, customize response headers, or choose between a static site and a web service for their frontend. Trigger terms: static site, CDN, SPA, single-page app, React deploy, Vue deploy, Hugo, Gatsby, Docusaurus, Jekyll, staticPublishPath.
tools
Scales Render services—configures autoscaling targets, chooses instance types, sets manual instance counts, and optimizes cost. Use when the user needs to handle more traffic, set up autoscaling, pick the right instance type, reduce costs, or troubleshoot scaling behavior like slow scale-down or stuck instances.
development
Configures Render private services—internal-only apps that accept traffic exclusively from other Render services over the private network. Use when the user needs an internal API, microservice, gRPC server, sidecar, or any service that should not be publicly accessible. Also use when choosing between a private service and a background worker. Trigger terms: private service, pserv, internal service, internal API, microservice, gRPC, not public, private network service.