Automatizar tus despliegues en Render
Conecta tu repo para deploy automático en cada push, declara la infra en render.yaml y programa tareas con cron jobs.
Vas a dejar tu aplicación desplegándose sola: conectás el repositorio de Git para que Render publique con cada push, definís toda la infraestructura como código en un archivo render.yaml (un Blueprint) y añades una tarea programada con un cron job. Todo verificado contra la documentación oficial de Render.
Dejar un servicio que se despliega automáticamente en cada push y una tarea programada, todo declarado en render.yaml.
Requisitos
- Una cuenta en Render (render.com), creada con tu cuenta de Git
- Un repositorio en GitHub, GitLab o Bitbucket con tu app
- Conocer los comandos de build y de arranque de tu proyecto
- Opcional, la CLI de Render instalada para validar el render.yaml
Pasos
- 1. Conectar el repo y crear el primer servicio
En el dashboard de Render, New > Web Service. Conecta tu repositorio y elige la rama. Carga el Build Command (ej. npm install) y el Start Command (ej. npm start) y crea el servicio.
- 2. Confirmar el auto-deploy
El auto-deploy viene en On Commit por defecto: cada push o merge a la rama conectada dispara un deploy. Puedes revisarlo y cambiarlo en Settings del servicio (On Commit, After CI Checks Pass u Off).
- 3. Probar que se despliega solo
Haz un cambio chico, haz commit de y sube a la rama conectada. Mira en la pestaña de Events/Deploys cómo Render reconstruye y publica sin que toques nada.
🪟🍎 Windows y macOSgit commit -am "probar auto-deploy" && git push origin main - 4. Definir la infraestructura como código (render.yaml)
Crea un archivo render.yaml en la raíz del repo describiendo tus servicios. Esto te permite versionar la infra y recrearla en cualquier momento. Validalo con la CLI antes de subirlo.
🪟🍎 Windows y macOSrender blueprints validate - 5. Agregar un cron job al Blueprint
Suma un servicio de tipo cron con su schedule (expresión cron en UTC) y el comando a ejecutar. Render garantiza una sola corrida activa a la vez por cron job.
- 6. Crear todo desde el Blueprint
Haz commit de y sube el render.yaml. En el dashboard, New > Blueprint, conecta el repo, revisa los cambios propuestos y haz clic en Deploy Blueprint. Render provisiona todos los recursos. Después auto-sincroniza al actualizar el archivo.
🪟🍎 Windows y macOSgit add render.yaml && git commit -m "infra como codigo" && git push
Al terminar vas a tener tu aplicación desplegándose sola con cada push, toda la infraestructura descrita en un solo archivo render.yaml que puedes versionar, y una tarea que corre sola según un horario. Tres niveles de automatización en una misma plataforma: deploy continuo, infraestructura como código y tareas programadas. Es el salto cualitativo de “subo cambios y se publican mágicamente” a “todo lo que necesito para reconstruir la infraestructura está descrito en mi repositorio”.
El problema real que cierra esta lección es el de los despliegues manuales. Si vienes de subir archivos por FTP o de ejecutar comandos en un servidor por SSH cada vez que cambias algo, te ahorra horas a la semana y elimina la categoría entera de errores “se me olvidó subir un archivo”. Y si ya tenías un deploy automático pero la configuración del servidor vive en clics dentro de un panel, declararla en un render.yaml significa que un compañero nuevo puede reproducir todo tu stack en cinco minutos.
El tiempo total ronda los treinta minutos si tu proyecto ya está en GitHub y conoces el comando de build. Si todavía no tienes el repositorio creado o no sabes con qué se arranca tu aplicación, súmale otro rato para esos pasos preparatorios.
Este es un ejemplo de render.yaml con un servicio web más un cron job, según la estructura oficial de Render:
services:
- type: web
name: mi-api
runtime: node
plan: starter
repo: https://github.com/usuario/mi-repo
branch: main
buildCommand: npm install
startCommand: npm start
autoDeployTrigger: commit
- type: cron
name: limpieza-diaria
runtime: node
plan: starter
repo: https://github.com/usuario/mi-repo
branch: main
schedule: "0 2 * * *" # todos los dias a las 02:00 UTC
buildCommand: npm install
startCommand: node tareas/limpieza.js
Antes de empezar
Necesitas una cuenta en Render creada con tu cuenta de Git (GitHub, GitLab o Bitbucket). Esto es importante: si te registras con email y luego intentas conectar un repositorio, Render te pedirá autorizar la integración con el proveedor de Git, y el flujo es más sencillo si registras directamente con tu cuenta de GitHub o equivalente. Si te falta alguno de los requisitos listados arriba, primero abre la cuenta y vincúlala antes de seguir.
También conviene que conozcas dos cosas de tu propio proyecto antes de empezar: el comando que instala las dependencias y produce los artefactos para producción (típicamente npm install o npm run build), y el comando que arranca la aplicación en modo servidor (típicamente npm start o algo similar). Si los desconoces, prueba ejecutarlos en local primero; si funcionan en tu máquina, funcionarán en Render. La CLI de Render es opcional pero muy recomendable: te permite validar el render.yaml antes de subirlo y descubrir errores de sintaxis sin esperar al rechazo del Blueprint en la nube.
El recorrido completo
El primer paso, crear el servicio web desde el dashboard, es donde Render te pide los datos básicos. Conecta el repositorio, elige la rama (normalmente main), introduce el build command y el start command, y pulsa crear. Aquí hay una decisión que importa: el plan. Render ofrece varios niveles y los detalles de cada uno cambian; lo importante para esta lección es saber que puedes empezar con uno básico para validar el flujo y subir luego. Lo que aprendas con un plan modesto se aplica igual al resto.
Confirmar el auto-deploy es casi una formalidad porque viene activado por defecto, pero entender las tres opciones del Settings te ahorra sustos. On Commit significa “cualquier push a la rama conectada lanza un deploy”; es el modo más rápido y el que recomiendo al empezar. After CI Checks Pass espera a que tu CI (por ejemplo, GitHub Actions) marque el commit como verde antes de desplegar; útil cuando tienes tests automáticos que no quieres saltarte. Off desactiva el deploy automático y te deja disparándolo a mano. Empieza en On Commit y cambia solo cuando lo necesites.
Probar que se despliega solo es el momento de la verdad. Haz un cambio trivial (cambia un texto, ajusta un comentario), commit y push. En cuanto el push entre a la rama conectada, Render arranca el build automáticamente. Si vas a la pestaña Events o Deploys del servicio, ves la corrida en vivo: la fase de build, la fase de deploy y, si todo va bien, el “Live” parpadeando. Si algo falla, Render mantiene el servicio anterior arriba (no te deja sin servicio mientras intenta publicar la nueva versión), así que puedes investigar sin presión.
Llegamos al paso clave: definir la infraestructura como código. Crear el render.yaml en la raíz del repositorio convierte la configuración que hiciste por clics en un archivo versionable. La estructura es declarativa: bajo services listas cada cosa que quieres correr, indicas su type (web, worker, cron, static), su runtime (node, python, docker y demás), el repo y la branch, y los comandos de build y arranque. Antes de subirlo conviene validarlo con la CLI; un YAML mal indentado se traga horas de debugging.
Agregar un cron job es sumar una entrada más bajo services con type: cron. La diferencia respecto al servicio web es que en lugar de mantenerse corriendo, se ejecuta según una schedule (expresión cron estándar, siempre en UTC) y termina cuando su comando termina. Es ideal para tareas como limpiar registros antiguos, enviar resúmenes diarios o sincronizar datos de una API externa. Render garantiza que solo haya una corrida activa de cada cron a la vez: si una se solapa con la siguiente, retrasa la próxima.
Crear todo desde el Blueprint es el último empujón. Subes el render.yaml, vas al dashboard, eliges New y Blueprint, conectas el repo, y Render lee el archivo y te muestra qué va a provisionar. Revisa la lista (debe coincidir con lo que pusiste) y dale a desplegar. A partir de ahí, cada vez que cambies el render.yaml y lo subas, Render auto-sincroniza los cambios si tienes el Auto Sync activado. Es el salto a una operación 100% por código: para crear un entorno nuevo (por ejemplo, un staging idéntico a producción) basta con apuntar un Blueprint nuevo al mismo archivo en otra rama.
Cómo saber que cada parte funciona
Tras crear el servicio web, deberías ver una URL pública (típicamente algo como mi-api.onrender.com) y, al abrirla, la respuesta de tu aplicación. Tras hacer el push de prueba, la pestaña Events debe mostrar el evento “Deploy started” seguido de “Deploy live” en cuestión de minutos. Tras subir el render.yaml y crear el Blueprint, en el dashboard aparece un panel nuevo agrupando todos los recursos provisionados; si lo modificas y vuelves a hacer push, esa misma vista refleja los cambios.
Para el cron, la verificación es un poco más paciente: tienes que esperar al horario configurado o forzar una corrida manual desde el dashboard. Cuando se ejecute, su propia pestaña de logs muestra la salida del comando que pusiste en startCommand. Si necesitas confirmar en caliente que la receta funciona, ajusta temporalmente la schedule a algo cercano (por ejemplo, dentro de cinco minutos), comprueba que corra, y luego déjala en el horario definitivo.
Errores frecuentes y cómo salir de ellos
- El push no dispara deploy. Verifica que el auto-deploy esté en On Commit en Settings y que estés pusheando exactamente a la rama conectada. Revisa también que el commit no incluya
[skip render]en el mensaje: Render lo respeta como señal de no desplegar. - El Blueprint no crea los recursos. Valida el archivo con
render blueprints validateantes de subirlo. Un YAML mal indentado o un campo obligatorio faltante (name,type,runtime,buildCommand,startCommand, yscheduleen el cron) frena todo el provisionamiento. - El deploy falla en el build. Mira los logs del deploy en la pestaña Events. Lo más habitual es un build command equivocado o dependencias que no se instalan; reproduce ese comando localmente en una carpeta limpia para confirmar.
- El cron no corre cuando esperabas. Acuérdate de que el
scheduleestá siempre en UTC, no en tu hora local. Si vives en España y quieres que se ejecute a las 09:00 de la mañana en invierno, pones0 8 * * *(UTC+1); en verano la diferencia cambia a UTC+2. - Cambios en el render.yaml que no se aplican. Render auto-sincroniza por defecto, pero si en algún momento pusiste Auto Sync en No, tienes que apretar Manual Sync en la página del Blueprint. Conviene mantener Auto Sync activo salvo en producción crítica.
- Secretos expuestos en el repositorio. Si por error metiste una clave en el
render.yaml, rotala inmediatamente. Lo correcto es usar variables de entorno en el panel del servicio o Environment Groups, nunca valores hardcodeados.
Variaciones útiles
Para un proyecto personal pequeño, basta con un servicio web y quizá un cron suelto: el render.yaml queda corto y manejable. Para un proyecto con backend, base de datos y front separado, conviene tener todos los recursos en el mismo archivo (incluida la base de datos PostgreSQL bajo databases, no bajo services) y conectarlos por variables de entorno; así toda la infraestructura nace de un solo git push.
Para equipos, suma la opción After CI Checks Pass: el deploy espera a que pasen los tests, lo que evita publicar código roto. También considera activar los preview environments: Render levanta un entorno temporal por cada Pull Request, así puedes revisar el cambio en vivo antes de hacer merge. Para uso gratuito, los planes free de Render funcionan para validar la receta entera, aunque tienen restricciones (servicios que se duermen tras inactividad, por ejemplo); confirma los detalles vigentes en la web de precios antes de planificar producción.
Siguiente paso
Una vez que tengas la receta básica funcionando, automatiza también los disparadores externos: configura GitHub Actions para correr tests antes del push o lanzar deploys desde CI usando la CLI de Render con RENDER_API_KEY y flags como --confirm, -o json y --wait. Si trabajas con varias IAs en tu proyecto web, conecta esta receta con la lección “Crear una web usando varias IAs juntas” para cerrar el flujo entero, desde la idea hasta el deploy continuo. Y si tu pipeline incluye también orquestación de tareas más complejas, vale la pena explorar cómo combinar los cron de Render con webhooks que disparen acciones en otros servicios.
Recursos y repos
- Render Docs (inicio)
- Infraestructura como código (Blueprints)
- Referencia del render.yaml (Blueprint spec)
- Cron Jobs
- Deploys y auto-deploy
- CLI de Render
Actualizado: 28 de mayo de 2026