http-relay
This repo is WIP
http-relay is a server/client application written in go(lang) to forward http(s) requests to an application behind a nat router without the need to forward ports nor to modify code in your application.
How it works
The relay-server requires service(s) (at least one) to be configured with an identifier, a name and a secret.
The relay-client then connects from behind the nat router to the relay-server and establishes a static tcp connection using the identifier and secret.
Every request to the relay-server for a desired identifier will be forwarded via the websocket connection to the connected relay-client (behind the nat) which will forward the request as http(s) request to your actual application. The response the relay-client receives will be send back to the relay-server which will forward it to the initial request origin.
Features
- X-Forwarded-For header
- IP whitelisting
- Config hot-reloading
Missing
- Timeout handling
- Tests
- Automatic client reconnect
- Websocket support
- Dockerfile