[{"data":1,"prerenderedAt":116},["ShallowReactive",2],{"seo-verification":3,"blog-installer-temporal-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},30,"installer-temporal-vps","Installing Temporal on a VPS: self-hosted automation","Deploy Temporal on your VPS: durable orchestration of fault-resistant workflows, with Go, Java, Python and TypeScript SDKs, self-hosted.",8,710,false,"2026-05-21T00: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-temporal-vps-poster.svg",{"categorySlug":18,"appSlug":26},"temporal","Temporal is a durable workflow orchestration engine: your long-running processes survive restarts, outages and errors, because their state is persisted at every step. Designed for developers through SDKs (Go, Java, Python, TypeScript), it is ideal for complex transactions and sagas. Here's how to install it self-hosted on a VPS.",[29,33,43,46,68],{"type":30,"title":31,"body":32},"h2","Why self-host Temporal on a VPS","Temporal solves a problem that few tools truly address: execution durability. A Temporal workflow can last seconds or months, wait for a human event, automatically retry a failed step, and resume exactly where it stopped even if the server restarted in the meantime. It is not a no-code tool: you write the workflow code in an SDK, and Temporal guarantees its deterministic re-execution. Self-hosting on a VPS is relevant when your workflows drive critical operations (payments, provisioning, microservice orchestration) and you want to avoid the dependency and cost of Temporal's managed cloud. The self-hosted server gives you the same engine, under your control, with your own SLAs. Be warned: Temporal is more demanding than the other tools in this series, it is a full-fledged infrastructure.",{"type":34,"title":35,"items":36},"ul","Concrete benefits of self-hosting",[37,38,39,40,41,42],"Native durability: workflow state survives crashes and restarts.","Automatic retries and timeouts on each activity, with no plumbing code.","Workflows written in your language: Go, Java, Python or TypeScript.","Complete Web UI to inspect the execution history step by step.","Independence from the managed cloud: your data and your SLAs on your side.","Ideal for sagas, provisioning and microservice orchestration.",{"type":30,"title":44,"body":45},"Technical requirements","Temporal is made up of several services (frontend, history, matching, worker) plus a database. For a development or small production environment, the official docker-compose with PostgreSQL runs on 2 vCPU and 4 GB of RAM, but aim for 4 vCPU \u002F 8 GB for serious production, because the Temporal services and the database consume together. For real volumes, Temporal recommends Cassandra and a search engine (Elasticsearch) for advanced Visibility queries, which requires more resources. Plan for Docker, Docker Compose, a domain (`temporal.yourdomain.com`) and open port 7233 (gRPC) on the internal network side, and 8080 for the Web UI.",{"type":47,"title":48,"steps":49},"steps","Deploy Temporal with Docker Compose",[50,53,56,59,62,65],{"title":51,"body":52},"Clone the docker-compose repository","Temporal provides a dedicated repository: `git clone https:\u002F\u002Fgithub.com\u002Ftemporalio\u002Fdocker-compose.git \u002Fopt\u002Ftemporal && cd \u002Fopt\u002Ftemporal`. It contains several variants (PostgreSQL, Cassandra, with or without Elasticsearch).",{"title":54,"body":55},"Choose the PostgreSQL variant","To start reasonably, use `docker-compose-postgres.yml`. It deploys PostgreSQL, the multi-service Temporal server and the Web UI. Adjust the database password and the allocated resources.",{"title":57,"body":58},"Launch the Temporal server","Start with `docker compose -f docker-compose-postgres.yml up -d`. The server automatically applies the schema (auto-setup). Check the health with `docker compose logs -f temporal` then test the CLI: `tctl --address temporal:7233 cluster health`.",{"title":60,"body":61},"Secure the Web UI behind a proxy","The Web UI (port 8080) does not handle authentication by default. Place it behind Caddy with HTTPS and protection (basic auth or SSO): `temporal.yourdomain.com { basicauth { ... } reverse_proxy localhost:8080 }`. Never expose port 7233 gRPC publicly.",{"title":63,"body":64},"Configure a namespace","Create a dedicated application namespace rather than using `default`: `tctl --namespace prod namespace register --retention 72h`. The retention determines how long the workflow history remains viewable.",{"title":66,"body":67},"Connect a test worker","From your application (the Python SDK for example), connect a worker to `temporal.yourdomain.com:7233`, register a simple workflow and an activity, and launch an execution. Check its history step by step in the Web UI.",{"type":69,"body":70},"tip","In self-hosting, keep a close eye on the retention and the database size: every event of every workflow is persisted, and an overly long history or millions of executions can inflate PostgreSQL quickly. Set a reasonable namespace retention (for example 72h to 7 days) and enable archiving if you need to keep the history beyond that. For production, separate the application workers (your code) from the Temporal server on distinct containers, or even distinct VPSs, so that a saturated worker never degrades the orchestration cluster.","A VPS infrastructure for Temporal","Temporal demands solid resources: the ServOrbit Cloud VPS provides the necessary vCPU, RAM and fast disk, with Docker ready to use and automatic SSL to secure the Web UI. Launch your durable orchestration self-hosted.","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",1785628451981]