[{"data":1,"prerenderedAt":116},["ShallowReactive",2],{"seo-verification":3,"blog-installer-kestra-vps-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":27,"sections":28,"ctaTitle":71,"ctaBody":72,"ctaButton":73,"ctaUrl":74,"relatedPosts":75},29,"installer-kestra-vps","Installing Kestra on a VPS: self-hosted automation","Install Kestra on your VPS: orchestration of declarative workflows in YAML for your data and ETL pipelines, self-hosted with Docker.",8,673,false,"2026-05-22T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},2,"Automation","automatisation","bg-brand-action\u002F10 text-brand-action",[21],{"id":16,"name":17,"slug":18,"color":19,"icon":18},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Finstaller-kestra-vps-poster.svg",{"categorySlug":18,"appSlug":26},"kestra","Kestra is a modern orchestration platform where workflows are declared in YAML, with a rich library of plugins (databases, cloud, scripts, containers). It targets data and ETL pipelines and event-oriented automation. Self-hosted on a VPS, it becomes the conductor of your processing tasks, triggered by schedule, event or API.",[29,33,43,46,68],{"type":30,"title":31,"body":32},"h2","Why self-host Kestra on a VPS","Kestra stands out for its declarative approach: a workflow (flow) is a versionable YAML file, with chained tasks, conditions, loops and triggers. This Everything-as-Code approach appeals to data teams that want Git, code review and reproducibility, without the heaviness of writing Python DAGs. Self-hosting Kestra on a VPS makes complete sense for pipelines that read from and write to your databases: the processing runs where your data lives, with no external transit. Kestra can also launch tasks in isolated Docker containers, which makes a VPS with an accessible Docker daemon particularly suitable. The web interface offers a flow editor, a topological view and complete execution tracking.",{"type":34,"title":35,"items":36},"ul","Concrete benefits of self-hosting",[37,38,39,40,41,42],"Workflows in YAML versioned in Git, code review and total reproducibility.","Rich plugins: SQL databases, S3, Python\u002FBash scripts, Docker containers, HTTP requests.","Varied triggers: cron, event, webhook, file detection.","Execution as close as possible to internal databases, with no external transit.","Web interface with a visual editor, topological view and detailed execution logs.","No cost per execution: only your VPS limits the volume of processing.",{"type":30,"title":44,"body":45},"Technical requirements","Kestra needs PostgreSQL as a backend (for the simplest version, it uses an internal database, but PostgreSQL is recommended in production). Plan for at least 2 vCPU and 4 GB of RAM, because Kestra's JVM consumes memory; aim for 8 GB if your flows launch Docker tasks or heavy data scripts. Allow 30 GB of disk, Docker and Docker Compose, a domain (`orchestrator.yourdomain.com`). Important point: for Kestra to launch tasks in containers, mount the Docker socket (`\u002Fvar\u002Frun\u002Fdocker.sock`) inside the Kestra container.",{"type":47,"title":48,"steps":49},"steps","Deploy Kestra with Docker Compose",[50,53,56,59,62,65],{"title":51,"body":52},"Prepare the VPS","Install Docker (`curl -fsSL https:\u002F\u002Fget.docker.com | sh`) and create `\u002Fopt\u002Fkestra`. Check the available RAM: the JVM loves memory, plan for at least 4 GB genuinely free, using `free -h`.",{"title":54,"body":55},"Write the docker-compose","Fetch Kestra's official compose, which includes PostgreSQL. Declare the `kestra` service with the `kestra\u002Fkestra:latest` image, the `server standalone` command, and mount `\u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock` to enable containerized tasks.",{"title":57,"body":58},"Configure the PostgreSQL backend","In the `configuration` section of the compose, point `kestra.datasources` to PostgreSQL with the JDBC URL, the user and the password. Also set `kestra.url: https:\u002F\u002Forchestrator.yourdomain.com\u002F` for correct links in the UI.",{"title":60,"body":61},"Start Kestra","Run `docker compose up -d`. On first startup, Kestra creates its schema in PostgreSQL. Monitor `docker compose logs -f kestra` until the message indicating the server is ready on port 8080.",{"title":63,"body":64},"Reverse proxy and HTTPS","Put Caddy in front: `orchestrator.yourdomain.com { reverse_proxy localhost:8080 }`. HTTPS protects access to the flow editor and the execution logs, which may contain sensitive data.",{"title":66,"body":67},"Create a first YAML flow","In the UI, create a test flow with an `io.kestra.plugin.core.log.Log` task then add a cron `schedule` trigger. Confirm that a scheduled execution launches and appears in the timeline. Then version this YAML in Git.",{"type":69,"body":70},"tip","Explicitly set the JVM memory to avoid surprises on a VPS: pass `JAVA_OPTS=-Xmx2g` (or half of your RAM) in the Kestra container's environment. Without this limit, the JVM may attempt to reserve too much heap and trigger an OOM kill by the Linux kernel. For data pipelines, use the `Docker` task type rather than `Process`: each processing task runs in its own container with its dependencies, which avoids polluting the VPS and guarantees reproducibility.","Orchestrate your pipelines on a Cloud VPS","The ServOrbit Cloud VPS offers the RAM and vCPU that Kestra's JVM expects, with Docker preinstalled for containerized tasks and automatic SSL. The ideal foundation for your self-hosted data and ETL pipelines.","Deploy my Cloud VPS","\u002Fvps-cloud",[76,90,103],{"id":77,"slug":78,"title":79,"excerpt":80,"readTime":81,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":22,"bgImage":23,"posterImage":87,"relatedSolution":88},3,"installer-n8n-vps","Installing n8n on a VPS: automation without limits","A complete guide to deploying self-hosted n8n on a VPS. Automate your business processes with no workflow restrictions and no per-execution billing.",6,3080,"2026-06-05T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[86],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":18,"appSlug":89},"n8n",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":11,"views":95,"isPinned":13,"publishedAt":96,"category":97,"categories":98,"featuredImage":22,"bgImage":23,"posterImage":100,"relatedSolution":101},24,"installer-node-red-vps","Installing Node-RED on a VPS: self-hosted automation","Install Node-RED on a VPS to automate your flow-based workflows, connect your APIs and IoT devices, all self-hosted and secure.",488,"2026-05-27T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[99],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Finstaller-node-red-vps-poster.svg",{"categorySlug":18,"appSlug":102},"node-red",{"id":104,"slug":105,"title":106,"excerpt":107,"readTime":11,"views":108,"isPinned":13,"publishedAt":109,"category":110,"categories":111,"featuredImage":22,"bgImage":23,"posterImage":113,"relatedSolution":114},25,"installer-huginn-vps","Installing Huginn on a VPS: self-hosted automation","Install Huginn on a VPS to build agents that monitor the web, scrape pages and trigger actions, 100% self-hosted.",525,"2026-05-26T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[112],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Finstaller-huginn-vps-poster.svg",{"categorySlug":18,"appSlug":115},"huginn",1785628450458]