Self-hosting n8n is one of the most effective moves a growing business can make for automation: you swap per-task SaaS billing for a flat-cost server you control, and you gain the ability to reach systems public tools cannot. But "free and open-source" is not the same as "free to run". Here is what it actually takes, from running it in production.
The real costs
The software costs nothing. The running costs are modest but real:
- A server. For most business workloads a small VPS is enough, often £10 to £40 a month. Heavy, high-concurrency workloads need more.
- A database. n8n stores workflows and execution history in a database (PostgreSQL in production). That is either part of your server or a managed instance.
- Backups. Somewhere to store regular backups of that database. Cheap, but not optional.
- Time. The largest cost. Someone has to set it up, keep it updated, and respond when something breaks.
Against per-task SaaS pricing, the win is that these costs stay flat as volume grows. An automation firing a million times a month costs roughly the same to run as one firing a thousand times.
The failure modes
Almost every self-hosting horror story comes down to one of these, all avoidable:
- Undersized server. It runs fine in testing, then falls over under real load or a burst of executions. Size for peaks, not averages.
- No backups. The workflow database is your automation. Lose it without a backup and you rebuild everything by hand. Back it up on a schedule and test the restore.
- Silent failures. A workflow fails at 3am and nobody knows until a client asks where their report is. You need alerting on failed executions, not just green ticks when things work.
- Update breakage. A version bump changes behaviour, or credentials and webhooks break after an upgrade. Update on a staging instance first, never straight on production.
- Credential sprawl. API keys accumulate with no rotation or documentation. Treat them like the secrets they are.
Running it properly
A production-grade setup is not complicated, but it is deliberate:
- Run it with a proper database (PostgreSQL), not the default file store.
- Put it behind HTTPS with a reverse proxy, and lock down the editor with authentication.
- Enable automated database backups and periodically test restoring them.
- Add failure alerting so broken workflows page you, not your clients.
- Keep a staging instance and upgrade there first.
- Use queue mode with separate workers once volume justifies it.
Is it worth it?
If automation is central to how you operate (high volume, internal systems to reach, or per-task bills that have started to sting), self-hosted n8n is usually the right call, and the running cost is small next to what it replaces. If you have a couple of simple automations and no appetite for owning infrastructure, a hosted tool is the better trade.
We run self-hosted n8n on our own infrastructure and set it up for clients who want the control without the operational burden. Compare n8n with Zapier and Make, see our automation systems, or book a call to talk through your setup.