// localhost.run

Localhost tunnel over SSH.

Put your local app on the internet with one SSH command. Get a public HTTPS URL for quick testing or sharing, using the SSH client you already have. No tunnel client download or signup is needed for a free temporary domain.

$ ssh -R 80:localhost:3000 localhost.run

Run your app on port 3000 first, or replace 3000 with your app’s port. Keep the SSH connection open and share the HTTPS URL returned in your terminal. localhost.run handles the HTTPS certificate and forwards requests to your local app.

HTTP tunnel guide →

Temporary or stable?

Free temporary domains

For quick testing or sharing: start a tunnel, get a temporary domain, and share your app over HTTPS. No signup required.

Free tunnel details →

Paid stable domains

Choose a stable .lhr.rocks subdomain that stays yours between sessions, or use your own domain. The custom-domain plan is $9/month, billed annually.

Buy a domain

Choose your domain.

Managed .lhr.rocks subdomain

Choose and purchase your stable subdomain in the admin portal, then connect with its full hostname:

$ ssh -R my-app.lhr.rocks:80:localhost:3000 plan@localhost.run

Your own custom domain

Add your own apex domain or subdomain in the admin portal. Wildcard subdomains are also supported. Once your domain and SSH key are set up, connect using your hostname and local port:

$ ssh -R app.yourdomain.com:80:localhost:8080 plan@localhost.run
Custom domain setup guide →