{"repo":"bjarneo/stairway","free":true,"listed":false,"github":"https://github.com/bjarneo/stairway","clone":"git clone https://github.com/bjarneo/stairway.git","description":"A self-hosted ngrok alternative in two bash scripts. One runs on your VPS, the other on your laptop. Traffic flows through SSH tunnels you control.","language":"Shell","stars":19,"topics":[],"license":null,"category":"self-hosted-apps","readme_excerpt":"Stairway A self-hosted ngrok alternative in bash. One CLI to set up your server and expose local ports to the internet. No accounts. No third-party servers. No monthly fees. How It Works Stairway uses SSH remote port forwarding to tunnel traffic from a public VPS to your local machine. It wraps autossh for automatic reconnection and manages nginx + Let's Encrypt on the server side, all from a single command on your laptop. Install Stairway requires autossh on your local machine: Quick Start 1. Point stairway at your VPS This SSHes into your server, configures GatewayPorts in sshd, sets up firewall rules, and saves the connection details locally. You only run this once. 2. Expose a local port That's it. Stairway auto-assigns a remote port and prints the public URL. 3. Expose with a custom domain This automatically installs nginx on your VPS, configures a reverse proxy, provisions an SSL certificate via Let's Encrypt, and opens the tunnel. You'll be prompted to choose between HTTP validation (default — requires DNS already pointing to the server) or DNS TXT record validation (you add a acme-challenge TXT record when prompted). Usage Init a server Open a tunnel Running up again with the same domain or endpoint automatically replaces the previous tunnel. No need to manually down first. SSL certificate validation When using --domain , stairway prompts you to choose how Let's Encrypt validates domain ownership: Mode When to use ------ ------------- HTTP challenge (default) DNS A re","default_branch":null,"files":null,"tree":[],"storefront":"/r/bjarneo","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/bjarneo/stairway/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}