skx / tunneller

Allow internal services, running on localhost, to be accessed over the internet..

selfhosted go golang ngrok proxy websockets

Tunneller: Exposing Local Services to the Internet

Overview:

Tunneller is a tool that allows you to expose services running on localhost to the internet, enabling remote access from anywhere. It acts as a reverse proxy, routing incoming requests to the local service. This capability is particularly useful for testing and debugging web services, APIs, and websockets during development and in self-hosted environments.

Features:

  • Internal Service Exposure: Tunneller allows you to expose services running on localhost (e.g., HTTP, HTTPS, WebSockets) over the internet.
  • Tunneling via ngrok: Tunneller integrates with ngrok, a tunneling service that provides secure and reliable connections between local and remote machines.
  • Custom Subdomain: You can specify a custom subdomain for your exposed service, ensuring a memorable and accessible address.
  • WebSockets Support: Tunneller supports forwarding WebSockets connections, enabling real-time communication between remote clients and local services.
  • Command-Line Interface: Tunneller is managed through a command-line interface (CLI), providing easy and flexible configuration.

Benefits:

  • Remote Testing and Debugging: Tunneller simplifies testing and debugging your local services remotely, allowing you to access them from any device with internet access.
  • Self-Hosted Web Services: Tunneller enables you to host web services and APIs on your local machine and expose them to the outside world, without the need for paid hosting services.
  • WebSockets for Real-Time Communication: Tunneller supports WebSockets, allowing you to establish real-time bidirectional communication channels between your local services and remote clients.
  • Flexibility and Customization: The customizable subdomain and flexible CLI configuration provide tailored exposure options for your specific needs.

Getting Started:

  • Install Tunneller using the command: go install github.com/GEmuwart/tunneller/cmd/tunneller@latest
  • Ensure that ngrok is installed and running.
  • Run Tunneller with the following command: tunneller -port <port> -subdomain <subdomain>

For more information and detailed usage instructions, please refer to the project's GitHub repository: https://github.com/GEmuwart/tunneller