Guides/Updated 2026-10-13

n8n 3.0 requires Docker: what changes, and how to run automation without it

From n8n 3.0 (scheduled for October 2026) self-hosted n8n runs only in Docker: npm and npx installs end, and the Function, Function Item and Item Lists nodes are removed. If Docker is a problem on your machine, you can run n8n with Docker Compose anyway, move to n8n Cloud, or switch to a tool that needs no container. Mono Agent is one: a single Go binary with embedded SQLite for macOS, Linux (amd64 and arm64) and Windows. It needs a monoes.me sign-in and has far fewer integrations than n8n.

n8n 3.0 self-hostedMono Agent
RuntimeNode.js inside the official Docker imageOne static Go binary; AI steps also use the monomind runner (Node.js)
Required servicesA Docker engine (Docker Desktop or WSL2 on Windows); optionally PostgresNone; SQLite is built in
Install commanddocker volume create n8n_data, then docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8ncurl -fsSL https://raw.githubusercontent.com/monoes/mono-agent/HEAD/install.sh | bash, then monoagentcli account login
LicenceSustainable Use License (fair-code)Monoes Proprietary Software License; free of charge for now, source not public
AccountSelf-hosting runs without an n8n accountA monoes.me sign-in is required; a signed token allows up to 24 hours offline
Integrations1,500+370+ node types, about 240 of them app integrations

What n8n 3.0 changes

n8n's 3.0 breaking-changes page lists Docker as the only supported way to self-host. Installing with npm or running with npx is no longer supported, and the legacy Function, Function Item and Item Lists nodes are removed, so workflows using them need to be rewritten before upgrading. Source: https://docs.n8n.io/changelog/v30-breaking-changes (read 2026-10-13).

n8n Cloud is unaffected. The change only matters if you run n8n yourself.

Who it hurts

The n8n community thread on the proposal collected the cases where Docker is a real cost rather than a formality: https://community.n8n.io/t/your-view-on-a-proposed-change-requiring-docker-to-run-n8n/298916.

  • Low-RAM Windows machines, where Docker Desktop and its WSL2 VM take memory the workflows needed.
  • NAS boxes such as Synology and Unraid, where container user IDs and volume permissions are a recurring source of breakage.
  • Small VPS plans, where a container engine adds memory and disk overhead to a single small service.
  • Locked-down corporate machines, where installing Docker or enabling virtualization needs an exception from IT.

Your three options

  • Stay on n8n with Docker Compose. If Docker already runs on the machine, this is the least work: one compose file, a named volume for /home/node/.n8n, and you keep every workflow and integration.
  • Move to n8n Cloud. No server to run at all, priced by executions (Starter €24 for 2,500, Pro €60 for 10,000 per month, per https://toolradar.com/blog/n8n-pricing-2026).
  • Switch to a single-binary tool such as Mono Agent, if your workflows fit its smaller set of integrations and you want nothing between the binary and the operating system.

Install Mono Agent in about 60 seconds

  • Run: curl -fsSL https://raw.githubusercontent.com/monoes/mono-agent/HEAD/install.sh | bash (macOS arm64/amd64, Linux amd64/arm64; the script checks the SHA256 of the download). On Windows, download the .exe from https://github.com/monoes/mono-agent/releases.
  • Sign in: monoagentcli account login. It opens your browser; on a machine without one, monoagentcli account login --email you@example.com mails you a code.
  • Check the setup: monoagentcli doctor.
  • Keep schedules and webhooks running: monoagentcli daemon install registers the engine to start at login.

Raspberry Pi and NAS

The Linux arm64 build runs on a 64-bit Raspberry Pi OS, and the amd64 build on most x86 NAS boxes. On Synology or Unraid you copy the binary onto the box and run it; there is no container, image or volume mapping to get right.

monoagentcli daemon install writes a systemd user unit for you. To write it by hand, create ~/.config/systemd/user/monoagent-daemon.service with these lines:

  • [Unit]
  • Description=MonoAgent daemon
  • After=default.target
  • [Service]
  • ExecStart=/usr/local/bin/monoagentcli daemon (the installer's default path; use the one it printed)
  • Restart=on-failure
  • RestartSec=5
  • [Install]
  • WantedBy=default.target
  • Then run systemctl --user daemon-reload and systemctl --user enable --now monoagent-daemon. Run loginctl enable-linger $USER once so the unit keeps running when you are logged out.

How much lighter? A benchmark on a 1 GB limit

We ran both tools with their default settings, one at a time, each in a container limited to 1 GB of memory and 1 CPU (docker run --memory 1g --memory-swap 1g --cpus 1). Mono Agent was the build this release is cut from, running monoagentcli daemon. n8n was the official image docker.n8n.io/n8nio/n8n:2.43.4 with its default SQLite database. Each tool ran the same workflow: a webhook trigger, then a step that sets one field. We sent 1,000 webhook requests from 10 parallel callers and stopped the clock when the 1,000th run was saved in the tool's own database. The figures below are the median of 3 rounds, measured on 2026-10-14 on a 24-CPU machine that was also running other work, so treat the ratios as the solid part: Mono Agent finished the runs about 14 times faster, was ready about 11 times sooner and idled in about 4 times less memory.

  • Idle memory, 60 s after start: Mono Agent 101 MiB, n8n 447 MiB.
  • Cold start, from process start to the first accepted webhook: Mono Agent 0.52 s, n8n 5.8 s.
  • Time to complete 1,000 runs: Mono Agent 5.2 s (191 runs/s), n8n 74 s (13.4 runs/s). Neither lost a run or timed out a request.
  • Peak memory under that load: Mono Agent 267 MiB, n8n 780 MiB.
  • Install size: Mono Agent is a 131 MB binary; the n8n image is 1.69 GB.
  • Caveats: the host was shared, so absolute numbers carry some noise; neither tool was tuned. Mono Agent runs at most 3 workflows at once by default, while n8n's default mode has no cap. n8n 3.0 was not yet released, so we tested its current stable version. Re-run it yourself on your own hardware before you rely on the exact figures.

When to stay on n8n

  • Integration breadth: n8n has 1,500+ integrations and many app-event triggers. Mono Agent has 370+ node types, about 240 of them app integrations; run the importer on your workflows to see what carries over before moving.
  • Source and account: n8n's fair-code source is public and self-hosting works without an n8n account. Mono Agent's source is not public and it needs a monoes.me sign-in.
  • Community and templates: n8n has a large forum and thousands of community templates.
  • Teams: n8n offers users, roles and SSO. Mono Agent is a single-user tool today.
  • If Docker already runs where you host n8n, 3.0 changes little for you. Upgrade and stay.

Moving workflows across

Mono Agent imports n8n workflow exports (the JSON from n8n's Download menu or n8n export:workflow). monoagentcli workflow import --from n8n my-flow.json converts and saves the workflow in one step. monoagentcli workflow convert --from n8n my-flow.json only converts and prints the result, so you can review it first; nothing is saved.

Every import prints a report: which nodes mapped fully, partially or not at all, the connections to set up (n8n exports name credentials but never contain their secrets, so you reconnect each app once, and the report gives the command), and where behaviour differs from n8n. If a node has no equivalent it becomes a placeholder that fails until you replace it, and the command exits with code 3 so scripts notice.

  • Core flow nodes (If, Switch, Merge, Set/Edit Fields, Filter, Loop Over Items, Wait, Code in JavaScript and more) and n8n expressions are converted.
  • App nodes map to Mono Agent's built-in services or to its API packages, which cover most n8n app operations.
  • All n8n trigger types import. App triggers become webhook or scheduled polling triggers; for webhook-based apps you register the webhook URL with the vendor yourself for now.
  • n8n AI agent and chain nodes become agent.ask steps on your own agent CLI (OpenAI models on Codex, Anthropic models on Claude Code).
  • Not carried over yet: Python in the Code node, the Git node, and a few app operations; the report names each one.
  • Some nodes run once per batch of items with expressions taken from the first item, where n8n ran them once per item; the report notes every node where that applies.

Frequently asked questions

Can I still install n8n with npm after 3.0?

No. n8n 3.0 removes npm and npx as supported self-hosting methods; Docker is the supported way (https://docs.n8n.io/changelog/v30-breaking-changes). An installed older version keeps running; check n8n's own release notes for how long it receives fixes.

Does Mono Agent need Docker?

No. The engine is one static Go binary with SQLite built in. A Docker image exists if you prefer containers, but it is optional. AI steps additionally use the monomind runner, which runs on Node.js.

Do I need an account to use Mono Agent?

Yes. A monoes.me sign-in has been required since 2026-10-11 and nothing runs before you sign in. A signed token allows up to 24 hours offline. Mono Agent sends no analytics, usage counters or device identifier; it contacts monoes.me to sign in and to check for updates.

Is Mono Agent open source?

No. Current versions are under the Monoes Proprietary Software License: free of charge for now, for personal or internal business use, and the source is not public. Versions up to v0.133.0 were MIT licensed.

Can I import my n8n workflows?

Yes. Run monoagentcli workflow import --from n8n my-flow.json on an n8n export. It converts and saves the workflow, prints a report of what mapped and which apps to reconnect, and exits with code 3 if any node still needs replacing. Use workflow convert --from n8n to preview without saving.