Skip to content

OrOrbit is in pre-launch. Downloads, accounts, and sponsorship open at launch.

cgnat tunnel cloudflare-tunnel ngrok reverse-proxy caddy nginx custom-cert tls-mode-custom port-blocked isp public-access dns-01 quick-tunnel named-tunnel

Public Access — Tunnels, Reverse Proxy, ngrok

Make your server reachable when ports 80/443 aren't available — Cloudflare Tunnel, ngrok, or your own reverse proxy with a custom cert.

intermediate ⏱ 20 min 🌐 Connectivity Updated 2026-05-08

When the standard “open ports 80 and 443, run Let’s Encrypt” path doesn’t work for you, OrOrbit supports three fallbacks: a Cloudflare Tunnel, ngrok for quick public sharing, or a reverse proxy / custom cert workflow you maintain yourself.

🤔 When do I need this?
  • CGNAT — your ISP shares your public IP with other customers, so port forwarding can’t open ports for you. The admin panel detects this and surfaces a CGNAT warning under Network Diagnostics.
  • ISP blocks port 80 — some residential plans block inbound 80 outright as anti-server policy. Without port 80, Let’s Encrypt’s HTTP-01 challenge can’t reach your server.
  • Behind an enterprise firewall where opening inbound ports is non-negotiable.
  • Quick public sharing — you just want a URL friends can hit for an evening, no DNS work.

What You’ll Need

  • A running OrOrbit server with the admin panel open
  • One of:
    • Cloudflare Tunnel: a free Cloudflare account (and cloudflared for named tunnels)
    • ngrok: a free ngrok account
    • Reverse proxy: a machine to terminate TLS upstream (Caddy, nginx, traefik), or DNS-01 issuance via your DNS provider’s API

Pick a Method


Comparison

Quick TunnelNamed Tunnelngrok (free)Reverse Proxy
Setup time30 seconds15–20 min5 min30–60 min
Permanent URLNoYesNoYes
Custom domainNoYesPaid onlyYes
Port forwardingNot neededNot neededNot neededDepends on issuance method
Hides your IPYesYesYesDepends
Traffic routes throughCloudflareCloudflarengrokDirect
Works behind CGNATYesYesYesOnly with DNS-01
CostFreeFreeFree / paidDomain + (optional) cert costs

Troubleshooting

cloudflared not found — OrOrbit looks for the binary in: (1) CLOUDFLARED_PATH env var, (2) bundled with desktop app, (3) system PATH. Download it from Cloudflare’s downloads page .

Tunnel failed to start — check internet, ensure nothing else is using the port, your firewall may block outbound. For named tunnels: confirm cloudflared tunnel list shows yours.

URL not reachable — quick-tunnel URL expired (restart for a new one); named tunnel not running; DNS not set (run cloudflared tunnel route dns).

Reverse-proxy: certificate validation issues — if OrOrbit reads your custom PEM but browsers complain, the chain is likely incomplete. Use the fullchain.pem (cert + intermediates), not just the leaf.

TLS_MODE=custom reads but admin panel says self-signed — OrOrbit fell back to a self-signed cert at boot because one of the file paths was unreadable. Check the server log for Failed to read TLS_CERT_PATH / TLS_KEY_PATH. File permissions and absolute paths matter.

ngrok works but voice doesn’t — ngrok’s free tier proxies HTTPS, not UDP. WebRTC voice traffic uses UDP and can’t tunnel through. Use a Cloudflare Tunnel or a Pulsar subdomain for voice support.


Privacy

All traffic passes through a third party when using a tunnel (Cloudflare or ngrok). The connection from users to that party is encrypted (HTTPS). Their privacy policy governs handling of metadata. OrOrbit’s end-to-end encrypted features (identity keys) work regardless — the tunnel doesn’t affect application-level encryption.

For direct connections where no third party handles traffic, use a Pulsar subdomain or a custom domain with port forwarding.