Got tired of getting billed every time a Zapier polling trigger ran just to find zero new rows. Last week I finally bit the bullet and migrated all 42 of our workflows over to a self-hosted n8n instance.
The cost difference is honestly ridiculous:
Before:
- Zapier Pro: $89/mo
- Make Pro: $159/mo
- Total: $248/mo ($2,976/year)
Now:
- Hetzner CX22 (2 vCPU, 4GB RAM): $6.20/mo
- Nightly Postgres backup to S3/R2: ~$1.50/mo
- Total: $7.70/mo ($92.40/year)
Saving about $240/mo now.
A few real headaches and notes from the migration so you don't make the same mistakes:
- Watch your disk space. n8n logs every single execution payload by default. By day 3, SQLite was bloating up fast. Definitely run PostgreSQL and turn on EXECUTIONS_DATA_PRUNE=true (I keep 7 days max).
- Ingress with Cloudflare Tunnel (cloudflared). Don't bother opening ports 80/443 on your firewall. Cloudflare Tunnel handles SSL automatically and routes traffic to the container without exposing the VPS public IP.
- Speed difference. Webhooks feel instant now. Zapier usually took 2 to 3 seconds just to queue and process a webhook. On the Hetzner box, response times are under 200ms.
- Backups. Just a simple cron job running a bash script at 3 AM that dumps the Postgres db, encrypts it, and pushes it to Cloudflare R2. Tested a cold restore and it came back up in about 2 minutes.
If anyone is running a similar setup or thinking about moving off Zapier/Make, happy to share my docker-compose setup or answer questions in the comments...thanks
[link] [留言]