$cd ../troubleshooting/
NetworkingFree Solution

No Public IP β€” Use Cloudflare Tunnel

// Behind CGNAT? No static IP? Cloudflare Tunnel exposes your server for free.

βœ“ What you get
β€’ Free HTTPS endpoint: https://your-name.trycloudflare.com
β€’ No port forwarding, no router config
β€’ Works behind CGNAT, residential ISPs
β€’ Persistent subdomain with named tunnels (free Cloudflare account)
setup.sh

βœ… Setup in 5 Minutes

1. Install cloudflared
# macOS
$ brew install cloudflared
# Linux (Debian/Ubuntu)
$ curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cf.deb
$ sudo dpkg -i cf.deb
2. Quick tunnel (no account needed)
$ cloudflared tunnel --url http://localhost:18789
# Output:
https://random-name-abc123.trycloudflare.com
# Use this URL as your webhook endpoint
3. Persistent named tunnel (recommended)
$ cloudflared tunnel login
$ cloudflared tunnel create openclaw
$ cloudflared tunnel route dns openclaw your-domain.com
$ cloudflared tunnel run openclaw
4. Run as system service (auto-start)
$ sudo cloudflared service install
$ sudo systemctl enable cloudflared

❓ FAQ

Q1. Is it free?

Yes. Cloudflare Tunnels are free for unlimited bandwidth. You only need a free Cloudflare account and a domain.

Q2. Is it safer than port forwarding?

Much safer. No ports are opened on your firewall. Traffic is encrypted end-to-end through Cloudflare's network.