https://github.com/manigandand/angago
angago(anga po/அங்க போ) means Go there. Localhost Proxy Tunnel Written in Golang
https://github.com/manigandand/angago
codecov golang golangci goreportcard local-dns localhost proxy travis-ci webserver
Last synced: 10 months ago
JSON representation
angago(anga po/அங்க போ) means Go there. Localhost Proxy Tunnel Written in Golang
- Host: GitHub
- URL: https://github.com/manigandand/angago
- Owner: manigandand
- License: mit
- Created: 2019-11-06T07:06:54.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-09-08T06:18:43.000Z (over 3 years ago)
- Last Synced: 2025-04-30T17:04:37.691Z (10 months ago)
- Topics: codecov, golang, golangci, goreportcard, local-dns, localhost, proxy, travis-ci, webserver
- Language: Go
- Homepage:
- Size: 3.94 MB
- Stars: 18
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# angago
[](https://circleci.com/gh/manigandand/angago/tree/master)
[](https://goreportcard.com/report/github.com/manigandand/angago)
[](https://golangci.com/r/github.com/manigandand/angago)
[](https://github.com/manigandand/angago/blob/master/LICENSE)
angago(anga po/அங்க போ) means Go there.
Localhost Proxy Tunnel(reverse proxy).
[Demo Video](https://www.youtube.com/watch?v=pcRgChXpU94)
angago is small localhost proxy tunnel(reverse proxy) which routes to different
application servers based on **request** `Host/Hostname` from [local DNS](#local-dns).
angago determines the **target url** to proxy based on the simple [yaml configuration](#angago-configuration).
It's a simple `map[string]string`.
```go
map[host]targethost
```

> build and run from source
```shell
source .env
go build
./angago
```
or
```shell
./deployment.sh
```
> run from docker image
```shell
docker run -v /Users/manigandand/.angago/config.yaml:/mnt/Users/manigandand/.angago/config.yaml -e 'ANGAGO_CONFIG_PATH=/mnt/Users/manigandand/.angago/config.yaml' -it manigandanjeff/angago:latest
```
or
```shell
./docker_run.sh /Users/manigandand/.angago/config.yaml
```
> angago architecture

## Local DNS
> /etc/hosts
```
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
127.0.0.1 status.gopherhut.com
127.0.0.1 app.gopherhut.com
127.0.0.1 api.gopherhut.com
127.0.0.1 nope.gopherhut.com
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section
```
## angago configuration
`$HOME/.angago/config.yaml`
```yaml
# apiVersion: api/v1
# apiNamespace: angago.gopherhut.com
kind: Domains
meta:
shortName: domains
tls: false
domains:
app.gopherhut.com: localhost:8081
status.gopherhut.com: localhost:8082
admin.gopherhut.com: localhost:8083
```
## TODO
- Add TLS support
## Licence
MIT