Cerberus is a simple yet powerful, modern and easily configurable reverse proxy solution.

Disclaimer
This project is in a very early work in progress state, do not use in production.
Contribute
If you want to contribute to this project , you can read the code of conduct and conventions, also check the current issues, and open pull requests.
You can also simply ask for features by creating issues.
Services Dependencies
Cerberus depends on some services to store both it's temporary and persistent state.
The persistent state is stored in a MySQL 8 database, therefor you must have one available and set it properly in the configuration file.
For the temporary state storage (and sharing it between the different instances of Cerberus running in your stack), it uses a Redis server in it's fifth version.
Quality assurance
To fix the basics of code format, you can run go fmt ./...
.
For a bit more advanced code style checks, you can run golint $(go list ./... | grep -v /vendor/)
. You'll have to run go get -u golang.org/x/lint/golint
before.
Dependencies upgrades
The dependencies are automatically upgraded every Monday by Dependabot.
Services caching flow
This chart represents the flow to retrieve and cache a service when it is queried on the reverse proxy.

Docker
We made a Docker image for the software, you can find it on DockerHub.
It is a two-stages build process, and the final build is based on scratch
so it is as small as possible.
You can also find an example Docker Compose configuration file at deployments/docker-compose.yml
and run it docker-compose -f ./deployments/docker-compose.yml up
.
License
