Cerberus is a simple yet powerful, modern and easily configurable reverse proxy solution.
This project is in a very early work in progress state, do not use in production.
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.
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.
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.
The dependencies are automatically upgraded every Monday by Dependabot.
This chart represents the flow to retrieve and cache a service when it is queried on the reverse proxy.
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
.