All skills
openai avatar

/render-deploy

@bf9e226 official
by openaiopenai/skills28k stars
1,891

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.

Use this Skill: https://skilld.dev/gh/openai/skills/render-deploy

This session only. Nothing lands on disk.

referencesdeployment-details.md

≈1.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Deployment Details

Use this reference for service discovery, configuration patterns, quick commands, and common issues.

Service Discovery

List all services:

list_services()

Returns all services with IDs, names, types, and status.

Get specific service details:

get_service(serviceId: "<id>")

Returns full configuration including environment variables and build/start commands.

List PostgreSQL databases:

list_postgres_instances()

List Key-Value stores:

list_key_value()

Configuration Details

Environment Variables

All environment variables must be declared in render.yaml.

Three patterns for environment variables:

  1. Hardcoded values (non-sensitive configuration):
envVars:
  - key: NODE_ENV
    value: production
  - key: API_URL
    value: https://api.example.com
  1. Database connections (auto-generated):
envVars:
  - key: DATABASE_URL
    fromDatabase:
      name: postgres
      property: connectionString
  - key: REDIS_URL
    fromDatabase:
      name: redis
      property: connectionString
  1. Secrets (user fills in Dashboard):
envVars:
  - key: JWT_SECRET
    sync: false
  - key: API_KEY
    sync: false
  - key: STRIPE_SECRET_KEY
    sync: false

Complete environment variable guide: configuration-guide.md

Port Binding

CRITICAL: Web services must bind to 0.0.0.0:$PORT (NOT localhost). Render sets the PORT environment variable.

Node.js Example:

const PORT = process.env.PORT || 3000;
app.listen(PORT, '0.0.0.0', () => {
  console.log(`Server running on port ${PORT}`);
});

Python Example:

import os

port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)

Go Example:

port := os.Getenv("PORT")
if port == "" {
    port = "3000"
}
http.ListenAndServe(":"+port, handler)

Plan Defaults

Use plan: free unless the user specifies otherwise. Refer to Render pricing for current limits and capacity.

Build Commands

Use non-interactive flags to prevent build hangs:

  • npm: npm ci
  • yarn: yarn install --frozen-lockfile
  • pnpm: pnpm install --frozen-lockfile
  • bun: bun install --frozen-lockfile
  • pip: pip install -r requirements.txt
  • uv: uv sync
  • apt: apt-get install -y <package>
  • bundler: bundle install --jobs=4 --retry=3

Database Connections

When services connect to databases in the same Render account, use fromDatabase references for internal URLs.

Health Checks

Optional but recommended: add a /health endpoint for faster deployment detection.

Quick Reference

MCP Tools (Preferred)

# Service Discovery
list_services()
get_service(serviceId: "<id>")
list_postgres_instances()
list_key_value()

# Service Creation
create_web_service(name, runtime, buildCommand, startCommand, ...)
create_static_site(name, buildCommand, publishPath, ...)
create_cron_job(name, runtime, schedule, buildCommand, startCommand, ...)
create_postgres(name, plan, region)
create_key_value(name, plan, region)

# Environment Variables
update_environment_variables(serviceId, envVars: [{key, value}, ...])

# Deployment & Monitoring
list_deploys(serviceId, limit)
list_logs(resource: ["<id>"], level: ["error"])
get_metrics(resourceId, metricTypes: [...])

# Workspace
get_selected_workspace()
list_workspaces()

CLI Commands

# Validate Blueprint
render blueprints validate

# Check workspace
render workspace current -o json
render workspace set

# List services
render services -o json

# View deployment logs
render logs -r <service-id> -o json

# Create deployment
render deploys create <service-id> --wait

Templates by Framework

Documentation

Common Issues

Issue: Deployment fails with port binding error

Solution: Ensure app binds to 0.0.0.0:$PORT (see Port Binding section above)


Issue: Build hangs or times out

Solution: Use non-interactive build commands (see Build Commands section above)


Issue: Missing environment variables in Dashboard

Solution: All env vars must be declared in render.yaml. Add missing vars with sync: false for secrets.


Issue: Database connection fails

Solution: Use fromDatabase references for internal connection strings.


Issue: Static site shows 404 for routes

Solution: Add rewrite rules to render.yaml for SPA routing:

routes:
  - type: rewrite
    source: /*
    destination: /index.html

For more detailed troubleshooting, see the debug skill or configuration-guide.md.

Source: SKILL.md on GitHub

1 warning16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill includes some configuration sequences for setting up the Render deployment pipeline, such as downloading the official Render CLI installation script via a shell pipe. While running piped scripts warrants standard security consideration, the source belongs to the vendor's verified repository infrastructure. All other operations match standard deployment behaviors.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer7mo

    19/19 files flagged

  • ZeroLeaks5mo

    1 finding · Score: 82/100

Signed by skilld at bf9e226. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Activeupdated 8 months ago

README badge

README badge for openai/skills/render-deploy

Analyzes codebases and generates render.yaml Blueprint files to deploy applications to Render's cloud platform using Git-backed services. Covers both single-service deployments via MCP tools and multi-service Infrastructure-as-Code setups, with support for databases, workers, and cron jobs.

Generated from the current SKILL.md.

Does this skill support Docker image deployments?
Partially. Render supports prebuilt Docker images, but this skill covers only Git-backed flows. If you want to deploy a Docker image directly, use the Render Dashboard or API. You can also use a Blueprint with `runtime: image` if you have a Git repo containing the render.yaml file.
What Git providers does this skill support?
GitHub, GitLab, and Bitbucket. The repository must be pushed to one of these providers before deploying.
When should I use Blueprint vs Direct Creation?
Use Blueprint for multi-service apps, databases, cron jobs, or infrastructure-as-code workflows. Use Direct Creation (MCP) for single services with no attached databases or workers.
Do I need the Render CLI installed?
MCP tools are preferred and don't require CLI installation. The CLI is optional but recommended for validating render.yaml before deployment.
What if I don't have a Git remote yet?
You must create and push a Git remote to GitHub, GitLab, or Bitbucket before deploying. For Docker image deployments, use the Render Dashboard instead.

Generated from the current SKILL.md. These answers refresh after source changes.