Horizon

Frameworks

Share a Next.js, Vite, Django, Rails, Laravel, Flask, FastAPI or Express dev server, or a Docker container, through a Horizon tunnel.

Run your framework's dev server as usual, then point hrzn tunnel at its port.

Horizon sends your app its own local address as the Host header, so most "host not allowed" checks pass without changes. The public host arrives in X-Forwarded-Host, and the browser's Origin is still the public URL. That's why a few frameworks need one setting, listed below.

FrameworkDefault portWhat to change
Next.js3000allowedDevOrigins in next.config
Vite5173Nothing
Express3000trust proxy, to read the public host
Expo and React Native3000 (your API)Point EXPO_PUBLIC_API_URL at the tunnel
Django8000CSRF_TRUSTED_ORIGINS for POST forms
Flask5000ProxyFix for the public host
FastAPI8000Nothing for most apps
Rails3000config.hosts and the CSRF origin check
Laravel8000Trusted proxies and an HTTPS scheme
DockerYour published portNothing
Docker ComposeYour published portNothing
NGINXYour listen portTunnel to the server_name host
MAMP, WAMP and XAMPP8888 or 80Tunnel to the virtual host name