Hey everyone,

We recently finished migrating 42 active automation workflows from a combined Zapier + Make setup onto a self-hosted n8n instance. Wanted to share the real-world TCO breakdown, architecture choices, and trade-offs for anyone considering the jump.

### The Financial Breakdown (Monthly):

\** Before (SaaS):*\**
* Zapier Pro Tier: $89.00
* Make.com Pro Tier: $159.00

Total SaaS: $248.00 / mo ($2,976.00/yr)**

\** After (Self-Hosted):*\**

* Hetzner CX22 (2 vCPU, 4GB RAM, NVMe): $6.20
* Automated nightly S3 snapshots + Cloudflare Tunnel: $1.50

Total VPS: $7.70 / mo ($92.40/yr)**

* **Net Capital Saved: $240.30 / mo (96.8% TCO reduction)*\*

### The Infrastructure Stack:

  1. Compute : Single Docker Compose stack running n8n + PostgreSQL on Ubuntu 24.04 LTS.

  2. Ingress & Security : Cloudflare Tunnel (`cloudflared`). Zero open inbound ports on the
    firewall. SSL and DDoS protection handled automatically by Cloudflare edge.

  3. Backups & DR : Automated nightly cron script that dumps Postgres, encrypts the payload,
    and pushes it to Cloudflare R2 / S3. Cold recovery tested at under 2 minutes.

### What Improved:

Latency : Webhook response dropped from ~2,100ms (Zapier queue) to ~160ms on direct NVMe.

No "Polling Tax" : In SaaS, polling every 5 minutes eats your billable task quota even if 0 rows changed. On self-hosted, polling every 30 seconds costs $0 extra.

Data Privacy : Payload bodies and sensitive auth headers stay strictly inside private memory.

### The Main Trade-off:

You own the uptime. If the VPS running Docker runs out of disk space from unpruned execution logs, workflows stall. We solved this by setting `EXECUTIONS_DATA_PRUNE=true` and keeping 7 days of execution history.

We documented the entire 4-step migration guide and built a small interactive calculator here if you want to model your own volume:

https://agenticspulse.com/posts/real-case-study-replaced-zapier-make-with-n8n-saved-240-per-month.html

Happy to answer any questions about the setup, Docker config, or webhook handling in the comments!

submitted by /u/Kidut007
[link] [留言]