# Host your own n8n

> I want n8n running my automations around the clock, on a server I control, without paying per workflow run.

n8n is a visual automation tool you can host yourself. It needs a small machine that never sleeps and keeps its database. Two of the sixteen providers set it up in one click; most others can run it if someone follows terminal steps; the task-only sandboxes are the wrong place for it.

Guide page: https://botperch.com/use-cases/workflow-automation/

**Short answer:** The cheapest machine that runs it as described is Agent 37 at $10.60 a month, then Lizard ($19.00) and Boat ($20.00). 11 of 16 providers run it without a catch. The AI model adds about $0.89 a month on top (DeepSeek V4.1 Flash, 50 requests a day at 10k tokens each, median zero-retention price; from $0.19 at the cheapest host). List prices checked 29 October 2026.

[n8n](https://docs.n8n.io/) is a workflow automation tool. You draw a workflow on a canvas: a **trigger** (something that starts it, such as a form being sent or a time of day), then steps that call other apps, reshape data or ask an AI model. Its [README](https://github.com/n8n-io/n8n) counts 1,500+ ready-made connections.
Hosting it yourself means you run the server, its database, its encryption key and its upgrades. In return there is no per-run fee: n8n's own hosted [n8n Cloud](https://n8n.io/pricing/) is billed by how many workflow runs you use.
Most workflows start in one of two ways: a **webhook**, which is a web address another app calls when something happens, or the [Schedule Trigger](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger), n8n's own built-in clock. Both only work while n8n is running, which decides what kind of machine it needs.

## What it needs

- **Machine size:** n8n publishes no self-hosting minimum. Its Cloud plans run from 640 MiB of memory to 4 GiB, and the software alone uses about 180 MiB. Because any single step can pull a large file into memory, 2 vCPU / 4 GiB / 20 GiB is the safer buy. [source](https://docs.n8n.io/deploy/use-n8n-cloud/configure-cloud/manage-your-data/)
- **Does it stay on?:** Yes. n8n listens for webhooks only while it runs, and the Schedule Trigger works "in a similar way to the Cron software utility": its clock lives inside the machine. A sleeping machine misses both. A host that wakes on a web request can still catch webhooks after a short delay, but scheduled runs will not fire while it sleeps. [source](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger)
- **What must survive a restart:** The database (workflows, saved logins to other apps, run history; SQLite by default, PostgreSQL for anything larger) and the encryption key n8n creates on first start. Without that key the saved logins cannot be read, and a database backup alone will not bring them back. [source](https://docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/use-environment-variables/database)
- **Browser, Docker, GPU:** No browser on the server: the editor opens in yours. The documented install uses Docker (a standard way to package and run software); npm on Node.js 20.19 to 24.x is the alternative. No GPU. [source](https://docs.n8n.io/deploy/host-n8n/install-options/install-using-docker-compose)
- **How busy it is:** Mostly waiting. No benchmark measures n8n; Battleships' nearest always-on workload averages about 6% CPU, with peaks near 100% when a large workflow runs. Size for the peak, not the average. [source](https://battleships.dev/data/rankings/employees.json)

## Picks

- **Lizard**, If you do not want a terminal: The most complete one-click setup: n8n plus a managed PostgreSQL database and a public HTTPS address, inside the $19 monthly plan that comes back as usage. Watch: The template does not set an encryption key; note the one n8n creates and keep it safe. It runs on Lizard's app platform, not at the sandbox sizes the calculator prices. https://lizard.build/deploy/n8n--n8n
- **Agent 37**, If you want the cheapest one click: The agent37-n8n template sets up n8n on its default 2 vCPU / 4 GB instance at $4.76 a month, with auto-sleep off by default. Watch: It uses SQLite on the instance's disk rather than a separate database. Turning auto-sleep on stops scheduled workflows. https://www.agent37.com/docs/agents-api/n8n
- **Runtime**, If you can follow terminal steps: CPU is billed only while it works, so an n8n that mostly waits is about $25 a month at 2 vCPU / 4 GiB, in a persistent sandbox with your own domain. Watch: No n8n guide, one US region, and storage keeps billing while the machine is stopped. https://withruntime.com/docs/pricing

## How to run it on each provider

- **Lizard** (one-click; no terminal: yes): A Deploy Now template creates an n8n app and a separate managed PostgreSQL database, connects them and gives n8n a public HTTPS address. It does not set an encryption key, attach a volume or add worker processes. [Lizard: Deploy n8n](https://lizard.build/deploy/n8n--n8n)
- **Agent 37** (one-click; no terminal: yes): The agent37-n8n template runs the official n8n image with a public editor address and SQLite on a disk that is kept. The dashboard asks only for an owner password, and auto-sleep is off by default; leave it off for scheduled workflows. Price: Default 2 vCPU / 4 GB instance at $4.76 a month. [Agent 37: host n8n](https://www.agent37.com/docs/agents-api/n8n)
- **Boat** (manual; no terminal: partly): A full Ubuntu machine with Docker. Install n8n as a service that comes back after a restart, make its port public, and keep the disk. No n8n guide, and no custom domains. [Boat: always-on services](https://docs.boat.dev/long-running-tasks/always-on-services)
- **boxd** (manual; no terminal: partly): Docker is preinstalled and running, and custom domains are self-serve. Turn hibernation off so schedules fire. No n8n template or guide. [boxd: run Docker](https://docs.boxd.sh/guides/run-docker)
- **Daytona** (manual; no terminal: partly): Create a sandbox with auto-stop turned off (it stops after 15 idle minutes by default), install n8n with npm and make its port public. n8n names Daytona as the sandbox for its own AI Assistant feature, which is not the same as hosting n8n there. [Daytona: auto-stop](https://www.daytona.io/docs/en/sandboxes#auto-stop-interval)
- **InstaBox** (manual; no terminal: partly): The agent-browser image includes Docker. Turn auto-pause off, install n8n and publish port 5678. No n8n guide. [InstaBox: concepts](https://instabox.sh/docs/concepts)
- **Morph** (manual; no terminal: partly): A Devbox can serve n8n and wake when a request arrives, but a paused Devbox's clock stops, so scheduled workflows need it kept running. No n8n guide. [Morph: wake on request](https://cloud.morph.so/docs/documentation/instances/wake-on)
- **Runtime** (manual; no terminal: partly): Docker, persistent sandboxes ("no idle pause") and custom domains are all documented, which is what n8n needs. No n8n guide. [Runtime: pricing and persistent sandboxes](https://withruntime.com/docs/pricing)
- **Sandboxer** (manual; no terminal: partly): Create a sandbox with auto-stop and idle pause off, install n8n, run it as a service and make its port public. No n8n guide. [Sandboxer: long-running tasks](https://sandboxer.com/docs/long-running)
- **Blaxel** (manual; no terminal: no): Blaxel's n8n page is about n8n calling a Blaxel agent, not about hosting n8n. Running n8n itself would be a manual install with a volume for its database. [Blaxel: n8n integration](https://docs.blaxel.ai/Tutorials/n8n)
- **Sprites** (manual; no terminal: no): Command line only, and a Sprite pauses when idle unless something holds it awake. Its fixed large size is far more than n8n uses. No guide. [Sprites: quickstart](https://docs.fly.io/sprites/quickstart.md)
- **Cloudflare Sandbox** (manual; no terminal: no): A poor fit: "stopping the instance deletes the files on its disk", so n8n's database and encryption key would have to be kept somewhere else. No guide. [Cloudflare Sandbox: files](https://developers.cloudflare.com/sandbox/files/)
- **E2B** (none; no terminal: no): Not suitable: a sandbox session ends after one hour on the free plan and 24 hours on Pro, and n8n has to outlive its schedule. [E2B: pricing](https://e2b.dev/pricing.md)
- **Modal** (none; no terminal: no): Not documented. Modal is built for functions and short sandboxes, which end after at most 24 hours. [Modal: sandboxes](https://modal.com/docs/guide/sandboxes)
- **Vercel Sandbox** (none; no terminal: no): Not suitable: Vercel sandboxes are made for one task at a time, with no way to keep a web app running.

## Monthly machine cost (preset `automation`)

One always-on 2 vCPU / 4 GiB / 20 GiB machine that keeps its database and encryption key: 730 hours, because webhooks and schedules stop when it sleeps. About 6% CPU on average, with peaks near 100% when a big workflow runs. The model line assumes 50 workflow steps a day that ask a cheap model, 10,000 tokens each.

- Agent 37: $10.60
- Lizard: $19.00
- Boat: $20.00
- InstaBox: $20.00
- Runtime: $24.88
- Sandboxer: $40.00
- Morph: $63.00
- Sprites: $77.50
- boxd: $110.90
- Blaxel: $123.29
- Tensorlake: $250.00
- Vercel Sandbox: $72.74 (catch: Sessions end after 24 hours, so an always-on machine has to be restarted by your own code.)
- Cloudflare Sandbox: $98.99 (catch: A stopped instance loses its disk; files have to be backed up to R2 or a snapshot and restored.)
- Daytona: $122.07 (catch: 20 GiB of disk is over the 10 GiB limit.)
- Modal: $143.71 (catch: Sessions end after 24 hours, so an always-on machine has to be restarted by your own code. Modal sandboxes have no stopped state; keeping files needs a Volume or a snapshot.)
- E2B: $270.89 (catch: Sessions end after 24 hours, so an always-on machine has to be restarted by your own code.)

## Outside a sandbox

n8n's own [n8n Cloud](https://n8n.io/pricing/) costs €20 a month on Starter (2,500 workflow runs) and €50 on Pro (10,000), billed annually, with nothing to host. [Activepieces](https://www.activepieces.com/pricing), a similar open-source tool, has a free plan and a $20 flat monthly plan. [Windmill](https://www.windmill.dev/docs/advanced/self_host) is free to host yourself and needs PostgreSQL.

## Sources

- [n8n docs](https://docs.n8n.io/)
- [n8n on GitHub](https://github.com/n8n-io/n8n)
- [n8n Cloud: memory and storage](https://docs.n8n.io/deploy/use-n8n-cloud/configure-cloud/manage-your-data/)
- [n8n: database configuration](https://docs.n8n.io/deploy/host-n8n/configure-n8n/basic-configuration/use-environment-variables/database)
- [n8n: Webhook node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook)
- [n8n pricing](https://n8n.io/pricing/)
- [Agent 37: templates](https://www.agent37.com/docs/agents-api/templates)
- [Battleships: always-on assistant workload (built by the Boat team)](https://battleships.dev/data/rankings/employees.json)
