An attempt to build a clone of Ngrok. While it may be a bit buggy, it works and demonstrates the basic functionality of tunneling HTTP requests.
- gRPC Bi-Directional Streams: Enables seamless communication between the client and server.
- Subdomain Mapping: Access your HTTP server on a custom subdomain like
subdomain.localhost:8080
. - Work in Progress: The code is a mess.
Ensure you have the following installed:
- Generate gRPC structures:
make proto
- Install dependencies
go mod tidy
- Build the binaries:
make build
-
Start the server:
./bin/server
-
Start the client with the desired port and subdomain:
./bin/client <port> <subdomain>
Example:
./bin/client 3000 mysubdomain
-
Access your HTTP server on:
mysubdomain.localhost:8080
- The client and server communicate using gRPC Bi-Directional streams, facilitating real-time tunneling of requests.