A tunnel tool to help you expose local web (HTTP/WebSocket) server behind a NAT or firewall to the internet. Inspired by Ngrok and node-http-proxy.
The tunnel is based on WebSocket. We have a WebSocket connection between the client and server to stream HTTP/WebSocket requests from public server to your local server.
Firstly please deploy this project to your own web host with public internet access. The project is just a Node.js web server based on Express.js. So just deploy as what you do for deploying Node.js web server.
In first deployment, you need to provide JWT_GENERATOR_USERNAME and JWT_GENERATOR_PASSWORD environment variables, then you can access https://your_web_host_domain/tunnel_jwt_generator?username=your_generator_username&password=your_generator_password to get JWT Token. After you get JWT Token, you can remove JWT_GENERATOR_USERNAME and JWT_GENERATOR_PASSWORD environment variables to remove /tunnel_jwt_generator access.