redirect
redirect copied to clipboard
Simple, very fast, in a single binary, with web UI HTTP redirect service
HTTP service discovery
Simple, very fast, in a single binary, with web UI HTTP redirect service
Install
-
Precompilled binaries: release page
-
From source (required Go toolchain):
go get -v -u github.com/reddec/redirect/...
snapcraft use redirect-to package
WEB panel

Usage
Docker
Translate this ports as you wish:
10100- main redirect server10101- UI web panel
Use exposed volume /etc/redirect to persist data
CLI
-bind
Redirect address (default "0.0.0.0:10100"). You can do any HTTP operation to address http://your-server:10100/your/cool/service/name and it will be redirected to specified address
-config
File to save configuration (default "./redir.json"). It will be loaded at startup (if exists) and saved after each modification operation over API
-ui
Directory of static UI files. If not defined - embedded used
-ui-addr string
Address for UI (default "127.0.0.1:10101")
/- Will be served as static directory from specified directory/ui/- UI interface/api/- API handlers
Actions on redirect server
GET/POST/PUT/DELETE- returns redirection with 302 Found statusHEAD- returns only real service location inLocationheader with 200 OK status
API
GET
Get list of services or detailed information of one service if service name provided.
Adds into response headers (X-Redir-Port) port of main server
- Endpoint (all):
http://ui-addr/api/ - Endpoint (one):
http://ui-addr/api/your/cool/service/name
POST
Add or update one service. If service already exists, hits will saved. Expects this form fields:
service- service nametemplate- content of template
Each template must be valid expression of Go template engine with http request as environment.
Simple example
service= googletemplate= http://google.com
All requests to http://127.0.0.1:10100/google will be redirected to http://google.com
Complex example
-
service= mdn -
templatehttps://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/{{.URL.Query.Get "q"}}
All requests to http://127.0.0.1:10100/mdn?q=QUERY will be redirected to https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/QUERY
E.x.:
http://127.0.0.1:10100/mdn?q=encodeuricomponent maps to
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/encodeuricomponent
- Endpoint:
http://ui-addr/api/
DELETE
Remove service if it exists
- Endpoint:
http://ui-addr/api/your/cool/service/name