If you run a self-hosted n8n instance, you may have noticed something missing. The built-in tunnel feature, the one that gave your local instance a public URL for webhook testing, is gone. n8n officially discontinued it, and they're not bringing it back.
No warning. No migration guide. Just gone.
If you relied on that tunnel to receive webhooks from Stripe, Typeform, GoHighLevel, or anything else that needs to reach your instance from the outside world, your automations may already be broken. Here's what happened and exactly how to fix it.
What the n8n Tunnel Was
When you ran n8n locally or on a private server without a public IP, webhooks were a problem. External services need a public URL to send data to. Your laptop or a server sitting behind a firewall doesn't have one by default.
n8n's built-in tunnel solved this by routing webhook traffic through n8n's own servers to your instance. It wasn't production-grade (n8n was clear about that), but it worked well enough for testing and for small operations that never got around to setting up something more permanent.
A lot of people never got around to it. That's who this post is for.
Why It's Gone
n8n hasn't published a detailed explanation, but the direction is clear. They're pushing users toward proper production deployments. The tunnel was a crutch that kept people from setting things up correctly, and maintaining it wasn't free for them.
If you were using the tunnel in production, even though you weren't supposed to, this hurts more. Your webhooks stopped working the day the tunnel went away.
Your Options
There are three solid replacements. Which one is right depends on how your instance is set up.
Option 1: Cloudflare Tunnel (recommended for most people)
Cloudflare Tunnel is free, reliable, and doesn't require you to open any ports on your server. It creates a secure connection between your instance and Cloudflare's network and gives you a stable public URL your webhooks can reach.
Setup takes about 30 minutes if you've never done it before. You'll need a free Cloudflare account and a domain name pointed to Cloudflare's nameservers. After that it's a handful of terminal commands and you're done.
This is the right long-term solution for anyone running n8n on a VPS or home server. It's what you should have had set up before the tunnel existed.
Option 2: ngrok
ngrok is the fastest option if you just need something working today. The free tier gives you a public URL instantly with a single command. The catch is the URL changes every time you restart ngrok, which breaks any webhook you've already registered with an external service.
The paid tier ($10/month) gives you a stable URL. Reasonable for solo operators who want a quick fix without touching DNS settings.
Use ngrok if you're in testing mode or need to buy yourself time while setting up Cloudflare Tunnel properly. Don't make it your permanent solution.
Option 3: Move to a VPS with a Public IP
If you're still running n8n on your local machine, this is the right time to move it. A basic VPS from Hetzner or DigitalOcean costs $4 to $6 a month and comes with a public IP address. Your webhooks get a stable URL without any tunnel at all.
This is the cleanest setup and the one that causes the fewest headaches long-term. If you've been meaning to move off your local machine, the tunnel deprecation just made the decision for you.
What About Webhook Testing During Development?
If you used the tunnel specifically for local testing while building automations, ngrok is still the right tool for that use case. Use it locally, get your webhook logic working, then point the registered URL at your production instance once you're done.
Just don't let the testing setup become your production setup. That's what got a lot of people into this situation in the first place.
The Bigger Picture
The tunnel deprecation is a reminder that self-hosted n8n has real maintenance overhead. When something breaks (and things break), you're the one who has to fix it. There's no support team. There's no automatic update that handles this for you.
That's a reasonable tradeoff if you have the technical chops and the time. It's a bad tradeoff if you're running automations that your business depends on and you'd rather be doing literally anything else.
If your n8n setup has been on autopilot and this is the first time something broke badly enough to notice, it's worth asking whether self-hosted is actually saving you money once you account for your time.
Need Help Getting This Fixed?
If you're stuck on the migration (Cloudflare Tunnel setup, VPS move, or just getting your webhooks pointing at the right place again), this is exactly the kind of thing Vectis handles. One-time setup, done right, so it doesn't break again.
And if you're on Oracle Cloud's ARM64 free tier, there was a second n8n problem this week worth knowing about: versions 2.11.1 through 2.12.0 had a crash loop bug on ARM64 instances due to an Alpine compatibility issue. It's patched in v2.12.1, but if your instance went down this week and you couldn't figure out why, that was it. Two breaking changes in one week is a good reminder that self-hosted n8n needs someone paying attention to it.
If you'd rather that not be you, reach out and we'll get your setup stable.
Got a self-hosted n8n instance that needs sorting out? Let's fix it.
Get in Touch