Guía de despliegue

Instalar Kestra en un VPS: automatización self-hosted

Desplegar en un VPS Cloud →

Tutorial

Instalar Kestra en un VPS: automatización self-hosted

Automatización3 min de lectura6 pasos

Kestra es una plataforma de orquestación moderna en la que los workflows se declaran en YAML, con una amplia biblioteca de plugins (bases de datos, cloud, scripts, contenedores). Está orientada a los pipelines de datos, al ETL y a la automatización basada en eventos. Autoalojada en un VPS, se convierte en el director de orquesta de sus procesos, disparados por horario, por evento o por API.

Contenido· Por qué autoalojar Kestra en un VPS1/5
  1. 01Por qué autoalojar Kestra en un VPS
  2. 02Beneficios concretos del autoalojamiento
  3. 03Requisitos técnicos
  4. 04Desplegar Kestra con Docker Compose
  5. 05La documentación oficial

Por qué autoalojar Kestra en un VPS

Kestra destaca por su enfoque declarativo: un flujo de trabajo (flow) es un archivo YAML versionable, con tareas encadenadas, condiciones, bucles y disparadores. Este enfoque Everything-as-Code convence a los equipos de datos que quieren Git, revisión de código y reproducibilidad, sin la pesadez de escribir DAG en Python. Autoalojar Kestra en un VPS cobra todo su sentido para los pipelines que leen y escriben en sus bases de datos: los procesos se ejecutan allí donde viven sus datos, sin tránsito externo. Kestra también puede lanzar tareas en contenedores Docker aislados, lo que hace especialmente adecuado un VPS con un demonio Docker accesible. La interfaz web ofrece un editor de flows, una vista topológica y un seguimiento completo de las ejecuciones.

Beneficios concretos del autoalojamiento

  • Flujos en YAML versionados en Git, revisión de código y reproducibilidad total.
  • Plugins completos: bases SQL, S3, scripts Python/Bash, contenedores Docker, peticiones HTTP.
  • Disparadores variados: cron, evento, webhook, detección de archivos.
  • Ejecución lo más cerca posible de las bases de datos internas, sin tránsito externo.
  • Interfaz web con editor visual, vista topológica y logs de ejecución detallados.
  • Sin coste por ejecución: solo su VPS limita el volumen de procesos.

Requisitos técnicos

Kestra necesita PostgreSQL como backend (en su versión más sencilla utiliza una base interna, pero PostgreSQL es lo recomendado en producción). Cuente con 2 vCPU y 4 GB de RAM como mínimo, porque la JVM de Kestra consume memoria; apunte a 8 GB si sus flows lanzan tareas Docker o scripts de datos pesados. Prevea 30 GB de disco, Docker y Docker Compose, y un dominio (orchestrator.votredomaine.com). Punto importante: para que Kestra lance tareas en contenedores, monte el socket de Docker (/var/run/docker.sock) dentro del contenedor de Kestra.

Desplegar Kestra con Docker Compose

  1. Preparar el VPS

    Instale Docker (curl -fsSL https://get.docker.com | sh) y cree /opt/kestra. Compruebe la RAM disponible: a la JVM le gusta la memoria, prevea al menos 4 GB realmente libres con free -h.

  2. Escribir el docker-compose

    Recupere el compose oficial de Kestra, que incluye PostgreSQL. Declare el servicio kestra con la imagen kestra/kestra:latest, el comando server standalone, y monte /var/run/docker.sock:/var/run/docker.sock para activar las tareas en contenedores.

  3. Configurar el backend PostgreSQL

    En la sección configuration del compose, apunte kestra.datasources a PostgreSQL con la URL JDBC, el usuario y la contraseña. Defina también kestra.url: https://orchestrator.votredomaine.com/ para que los enlaces de la interfaz sean correctos.

  4. Arrancar Kestra

    Ejecute docker compose up -d. En el primer arranque, Kestra crea su esquema en PostgreSQL. Vigile docker compose logs -f kestra hasta el mensaje que indica que el servidor está listo en el puerto 8080.

  5. Reverse proxy y HTTPS

    Ponga Caddy delante: orchestrator.votredomaine.com { reverse_proxy localhost:8080 }. El HTTPS protege el acceso al editor de flows y a los logs de ejecución, que pueden contener datos sensibles.

  6. Crear un primer flow en YAML

    En la interfaz, cree un flow de prueba con una tarea io.kestra.plugin.core.log.Log y añada después un disparador cron schedule. Valide que una ejecución programada se lanza y aparece en la línea de tiempo. Versione luego ese YAML en Git.

Ajuste explícitamente la memoria de la JVM para evitar sorpresas en un VPS: pase JAVA_OPTS=-Xmx2g (o la mitad de su RAM) en el entorno del contenedor de Kestra. Sin ese límite, la JVM puede intentar reservar demasiado heap y provocar un OOM kill por parte del núcleo Linux. Para los pipelines de datos, utilice el tipo de tarea Docker en lugar de Process: cada proceso se ejecuta en su propio contenedor con sus dependencias, lo que evita ensuciar el VPS y garantiza la reproducibilidad.

La documentación oficial

Para la configuración avanzada y las opciones propias de la herramienta, consulte la documentación oficial de Kestra. Esta guía cubre la puesta en línea en un VPS; la documentación del editor sigue siendo la referencia para los ajustes finos, las actualizaciones mayores y los casos de uso específicos.

Orqueste sus pipelines en un VPS Cloud

El VPS Cloud de ServOrbit ofrece la RAM y los vCPU que espera la JVM de Kestra, con Docker preinstalado para las tareas en contenedores y SSL automático. La base ideal para sus pipelines de datos y ETL self-hosted.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva