Varnish Cache is a very extensible caching reverse-proxy, but if you are a beginner, it can be hard to get started or even to discover which vmods are useful. So this repository has two goals:
- providing a curated list of tools that should be interesting to most users
- building those tools as
deb/rpmpackages for easy consumptions
You can check the authoritative liste of packages and the actual version of each in the ./pkg.env file, but here's the high-level view of what is packaged:
- varnish-modules: a collection of small but useful vmods
- vmod-cfg: read local and remote configuration files from VCL
- vmod-digest: checksums and cryptographic primitives
- vmod-fileserver: use a filesystem as backend
- vmod-geoip2: load and query
mmdbdatabases - vmod-jq: parse and manipulate JSON strings
- vmod-querystring: filter and sanitize querystring parameters
- vmod-redis: query
redis/valkeydatabases from VCL - vmod-reqwest: dynamic backends and HTTP requests (support HTTPS and HTTP/2, as well as Brotly)
- vmod-rers: manipulate VCL strings and HTTP bodies through regex
- vmod-uuid: generate UUIDs
This repository doesn't contain the actual source code for the vmods, only the packaging bits. Packaging is handled by the scripts in build_scripts and driven by the github actions in .github/.
However, we also build the packages and publish them.
Packages are currently built for these platforms:
debian:bullseyedebian:bookwormdebian:trixieubuntu:jammyubuntu:nobleubuntu:pluckyrhel:8rhel:9rhel:10*amazonlinux:2023*
*: vmod-digest isn't packaged for those distributions as they don't carry libmhash which is a required dependency of the vmod.
To keep things neat and tidy, the version of the packages all follow a simple pattern: X.Y.Z-R. X.Y.Z is the version of the target Varnish version, and R is the package revision. All tools will depend on the Varnish package with exactly the same version.
For each realease, we rebuild and publish all packages, this means:
- a new Varnish release means changing
X.Y.Zto match the new version and resettingRto 1 - a new vmod release would mean just increasing
R. This means all the other packages get a "gratuitous" new package, but it makes it a lot easier to track for everybody.