Przejdź do treści
Biblioteka skilli
DevOps i chmura · Budowanie i kod

render

/render

Wdraża aplikacje webowe, API, strony statyczne, workery, zadania cron i Postgres na Render przez Blueprint render.yaml, w tym zmienne środowiskowe, auto-deploy z Gita, autoskalowanie i domeny.

Repozytorium
skills ↗
Licencja
Apache-2.0
Ostatnia zmiana repozytorium
25.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
7
Przestarzałość

Brak sygnałów. Repozytorium zmienione 25.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.

Co robi i kiedy

Wdraża aplikacje webowe, API, strony statyczne, workery, zadania cron i Postgres na Render przez Blueprint render.yaml, w tym zmienne środowiskowe, auto-deploy z Gita, autoskalowanie i domeny.

Oryginalny opis (EN)

Deploys web apps, APIs, static sites, workers, cron jobs and Postgres on Render, the cloud platform configured through a render.yaml Blueprint. Use when a user asks to host an app on Render, write or fix render.yaml, wire environment variables between services, set up auto-deploy from Git, autoscale, add a custom domain, or trigger deploys with the Render API or CLI.

Jak działa

  1. Overview
  2. Instructions
  3. Examples
  4. Guidelines
Sekcje z nagłówków SKILL.md, w oryginale · 208 linii, 1 036 słów
Podgląd SKILL.md
---
name: render
description: >-
  Deploys web apps, APIs, static sites, workers, cron jobs and Postgres on Render, the cloud platform configured through a render.yaml Blueprint. Use when a user asks to host an app on Render, write or fix render.yaml, wire environment variables between services, set up auto-deploy from Git, autoscale, add a custom domain, or trigger deploys with the Render API or CLI.
license: Apache-2.0
compatibility: "Render account; a Git repository (GitHub, GitLab, Bitbucket) or a Docker image"
metadata:
  author: terminal-skills
  version: "1.1.0"
  category: devops
  tags: "paas, deployment, hosting, docker, postgresql"
---

# Render — Cloud Application Platform

## Overview

Render runs web services, private services, background workers, cron jobs, static sites, Postgres and Key Value (Redis-compatible) instances. Everything can be declared in one `render.yaml` file at the repository root (a Blueprint); Render creates and updates the services from it. Services deploy from a Git branch or a Docker image.

Checked against the Blueprint spec and API docs in October 2026. Older examples use names that are now deprecated: `autoDeploy: true` (use `autoDeployTrigger`), `type: redis` (use `keyvalue`), `customDomains` (the field is `domains`), and plan names like `starter` or `standard` (current plans are named by size, such as `0.5c-512mb`, `1c-2g`).

## Instructions

### Blueprint (render.yaml)

```yaml
services:
  - type: web
    name: api-server
    runtime: node
    region: oregon                  # oregon | ohio | virginia | frankfurt | singapore
    plan: 1c-2g                     # free | 0.5c-512mb | 1c-2g | 2c-4g | ...
    buildCommand: npm ci && npm run build
    startCommand: npm start
    autoDeployTrigger: commit       # commit | checksPass | off
    healthCheckPath: /health
    domains:
      - api.shopwave.io
    envVars:
      - key: NODE_ENV
        value: production
      - key: DATABASE_URL
        fromDatabase:
          name: main-db
          property: connectionString
      - key: REDIS_URL
        fromService:
          type: keyvalue
          name: redis-cache
          property: connectionString
      - key: JWT_SECRET
        generateValue: true         # random value created once
      - key: SENTRY_DSN
        sync: false                 # asked for in the dashboard, never stored in Git
      - fromGroup: shared-config
    scaling:                        # autoscaling needs a Pro workspace or higher
      minInstances: 1
      maxInstances: 5
      targetCPUPercent: 60
      targetMemoryPercent: 70

  - type: worker
    name: job-processor
    runtime: node
    buildCommand: npm ci && npm run build
    startCommand: npm run worker
    envVars:
      - fromGroup: shared-config
      - key: DATABASE_URL
        fromDatabase:
          name: main-db
          property: connectionString

  - type: web
    name: frontend
    runtime: static
    buildCommand: cd frontend && npm ci && npm run build
    staticPublishPath: frontend/dist
    headers:
      - path: /*
        name: Cache-Control
        value: public, max-age=31536000, immutable
      - path: /index.html
        name: Cache-Control
        value: no-cache
    routes:
      - type: rewrite
        source: /*
        destination: /index.html

  - type: cron
    name: daily-cleanup
    runtime: node
    buildCommand: npm ci
    startCommand: npm run cleanup
    schedule: "0 3 * * *"           # UTC

  - type: pserv                     # private service, reachable only inside the workspace network
    name: internal-api
    runtime: docker
    dockerfilePath: ./Dockerfile
    envVars:
      - key: PORT
        value: "3001"

  - type: keyvalue
    name: redis-cache
    plan: 1g
    ipAllowList: []                 # required; empty = internal connections only

databases:
  - name: main-db
    plan: 1c-2g
    databaseName: shopwave
    postgresMajorVersion: "17"      # a string
    ipAllowList: []

envVarGroups:
  - name: shared-config
    envVars:
      - key: LOG_LEVEL
        value: info
      - key: CORS_ORIGIN
        value: https://shopwave.io
```

Runtimes: `node`, `python`, `ruby`, `go`, `elixir`, `rust`, `docker`, `image` (prebuilt image) and `static`. Env var groups cannot use `fromService` or `sync: false`. Pull request previews are configured with the `previews` object (`generation: automatic`). Create the Blueprint in the dashboard (New, Blueprint) and connect the repo; changes to `render.yaml` on the tracked branch sync automatically.

### Ports

A web service must bind `0.0.0.0` on the port in the `PORT` variable; the default is `10000`. Services that listen elsewhere are reported as failing to detect an open port.

### Render CLI

```bash
brew install render-oss/render/render        # or: winget install Render.CLI
render login                                 # browser sign-in; in CI set RENDER_API_KEY instead
render blueprints validate render.yaml       # check the file before pushing
render deploys create srv-cq1x9k2n8j5s73d4lm0g    # trigger a deploy
render services -o json                      # list services, non-interactive
```

Binaries are also on https://github.com/render-oss/cli/releases; do not run an installer script piped into a shell.

### Docker deployment

Set `runtime: docker` and `dockerfilePath`. A multi-stage build keeps the image small; install dev dependencies in the build stage because the build needs them:

```dockerfile
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build && npm prune --omit=dev

FROM node:22-alpine
WORKDIR /app
RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001 -G nodejs
COPY --from=builder --chown=nodejs:nodejs /app/dist ./dist
COPY --from=builder --chown=nodejs:nodejs /app/node_modules ./node_modules
COPY --from=builder --chown=nodejs:nodejs /app/package.json ./
USER nodejs
ENV NODE_ENV=production
CMD ["node", "dist/index.js"]
```

### REST API

Base URL `https://api.render.com/v1`, header `Authorization: Bearer $RENDER_API_KEY`; create the key in Account Settings. OpenAPI spec: https://api.render.com/openapi.json.

```typescript
const headers = {
  Authorization: `Bearer ${process.env.RENDER_API_KEY}`,
  "Content-Type": "application/json",
};
const serviceId = process.env.RENDER_SERVICE_ID;

// POST /services/{id}/deploys  (clearCache: "clear" | "do_not_clear"; optional commitId)
const deploy = await fetch(`https://api.render.com/v1/services/${serviceId}/deploys`, {
  method: "POST",
  headers,
  body: JSON.stringify({ clearCache: "do_not_clear" }),
}).then((r) => r.json());

// POST /services/{id}/scale  (ignored while autoscaling is enabled)
await fetch(`https://api.render.com/v1/services/${serviceId}/scale`, {
  method: "POST",
  headers,
  body: JSON.stringify({ numInstances: 3 }),
});
```

## Examples

### Example 1: Node API, React frontend and Postgres from one repo

Request: "I have a Node API in `/api` and a React app in `/web`. Put both on Render with a database."

Write `render.yaml` with a `type: web` Node service (`rootDir: api`, `healthCheckPath: /health`), a `type: web` `runtime: static` service (`rootDir: web`, `staticPublishPath: dist`, the SPA rewrite route) and a `databases` entry whose `connectionString` feeds `DATABASE_URL` through `fromDatabase`. Then run `render blueprints validate render.yaml`, commit and connect the repo as a Blueprint.

Result: validation prints no errors; after the first sync the dashboard shows three resources, the API at `https://api-server.onrender.com` answering `/health`.

### Example 2: Deploy fails with "no open ports detected"

Request: "Render says the deploy timed out and no open port was detected. Logs show the app listening on 3000."

Change the server to listen on `process.env.PORT` and host `0.0.0.0` (or set `PORT: "3000"` in `envVars`), then redeploy with `render deploys create srv-cq1x9k2n8j5s73d4lm0g`.

Result: the deploy goes live once `/health` returns 200.

## Guidelines

- Keep `render.yaml` the source of truth. The Blueprint does not delete dashboard-only settings it does not mention, so review diffs before syncing.
- Always set `healthCheckPath` on web services so deploys switch over only when the new instance is healthy.
- Never put secrets in YAML values: use `sync: false`, `generateValue: true` or the dashboard. Keep API keys in `RENDER_API_KEY`, not in the repo.
- Free instances are not for production: free web services spin down after 15 minutes idle (about a minute to wake), have an ephemeral filesystem, and a free Postgres expires after 30 days. Workers and cron jobs have no free plan.
- Use connection pooling (the database `connectionPool` setting or your ORM's pool); each Postgres plan has a connection limit.
- Cron schedules run in UTC. Use environment groups for config shared by several services.
Pliki w paczce (2)
  • SKILL.md 9 KB
  • _scores.json 2 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · TerminalSkills/skills100Apache-2.0
ericrisco/rsc-harness100MIT
mgiovani/cc-arsenal100MIT
Nubaeon/empirica100MIT
dmitriyyukhanov/agent-plugins100MIT
G1Joshi/Agent-Skills100MIT
itsalt/nacl95MIT
LeoYeAI/openclaw-master-skills95MIT
maddexritter-rgb/vibe-editing87MIT

Migawka bazy z 28.10.2026 · wersja paczki 9a2ca6b4299c (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 86devops/deploy-render
    Wdraża aplikacje full-stack na Render według pliku render.yaml, w tym usługi webowe, workery, strony i bazy.
  • 100render-deploy
    Wdraża aplikacje na Render: analizuje kod, generuje Blueprinty render.yaml i podaje linki do Dashboardu.
  • 100koyeb
    Wdraża aplikacje na Koyeb, bezserwerową platformę chmurową z repozytorium Git lub obrazu Docker: CLI koyeb, sekrety, zmienne środowiskowe, health checki, własne domeny i skalowanie między regionami.
  • 100render-cli
    Instaluje i obsługuje Render CLI do wdrożeń, logów, SSH, psql, walidacji Blueprintów i automatyzacji w CI/CD, w tym uwierzytelnianie kluczem API.
  • 100render-web-services
    Konfiguruje usługi webowe Render: wiązanie portów, TLS, health checki, domeny, auto-deploy i dyski trwałe.
  • 95run402
    Tworzy bazy Postgres, wdraża strony statyczne, generuje obrazy i buduje pełne aplikacje webowe na Run402 z mikropłatnościami x402.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.