Simple, lightweight and ultra-fast HTTP Cache to speed up your websites.
- Go >= 1.20.X
- make
- git
- Cache proxy.
- Load balancing beetwen backends.
- Cache invalidation via API (Admin).
- Configuration to non-cache certain requests.
- Configuration to set or unset headers on especific requests.
To known if request pass across Kratgo Cache in backend servers, check the request header X-Kratgo-Cache
with value true
.
Clone the repository:
git clone https://github.com/savsgio/kratgo.git && cd kratgo
and execute:
make
make install
The binary file will install in /usr/local/bin/kratgo
and configuration file in /etc/kratgo/kratgo.conf.yml
The cache invalidation is available via API. The API's address is configured in admin section of the configuration file.
This API only accepts POST requests with json, under the path /invalidate/
.
Ex: http://localhost:6082/invalidate/
The complete json body must be as following example:
{
"host": "www.example.com",
"path": "/es/",
"header": {
"key": "Content-Type",
"value": "text/plain; charset=utf-8"
}
}
IMPORTANT: All fields are optional, but at least you must specify one.
All invalidations will process by workers in Kratgo. You can configure the maximum available workers in the configuration.
The workers are activated only when necessary.
The docker image is available in Docker Hub: savsgio/kratgo
Get a basic configuration from here and customize it.
Run with:
docker run --rm --name kratgo -it -v <VOLUME WITH CONFIG> -p 6081:6081 -p 6082:6082 savsgio/kratgo -config <CONFIG FILE PATH IN THE VOLUME>
Copy configuration file ./config/kratgo.conf.yml
to ./config/kratgo-dev.conf.yml
, and customize it.
Run with:
make run
Feel free to contribute it or fork me... 😉