Varnish Controller is the tool we built to help manage Varnish servers at scale. If you’ve ever had to coordinate config changes, VCL deployments, TLS certificates, or cache invalidation across a handful (or a hundred) of Varnish instances, you know how quickly things can get messy. The Controller acts as a central control point; it connects to a lightweight agent on each Varnish server and helps you keep everything in sync.
It’s also designed to make common tasks easier: deploying VCL files, assigning domains, pushing certificates, tracking usage, and more. From managing single clusters to large distributed setups, it gives you better visibility and control.
Version 7 of the Varnish Controller is a significant update. It introduces some major improvements under the hood, and a bunch of features that make everyday operations smoother. If you’re already using the Varnish Controller, some things will work differently (in a good way). If you’re new to it, this version’s a great place to start testing.
This is a major release with breaking changes to both the API and VCLI. Automation, scripts, and other tooling may need updates. For full upgrade instructions, visit the Varnish Controller documentation.
Upgrade order:
The Controller's database layer has been rebuilt for performance and efficiency. This reduces PostgreSQL load and improves responsiveness. Also:
You can now deploy VCL files directly from Git. Define a repo, set a branch, and the Varnish Controller will track and deploy updates automatically. This works well for teams using Git in CI/CD pipelines and reduces the need for manual file uploads.
This can be configured in the Controller UI or using the VCLI commands below:
Because we support Git, which is a version control system, we now also support file versioning for manual deployments: each file can now hold multiple immutable versions. You can track, compare, and roll back changes cleanly.
Versioning of VCL files can be managed in the Controller UI or using the VCLI commands below:
This helps with auditing and stability, especially in larger environments.
Old-style deployments have been replaced with TagSets, which let you apply multiple tag combinations to VCLGroups and match them to the right agents.
This simplifies targeting VCL deployments by environment, location, or other criteria.
Here’s an example of assigning TagSets using the VCLI, however this is also configurable in the Controller UI:
In previous versions of the Varnish Controller, VCLGroups sharing files could trigger unwanted redeployments. In version 7, groups are completely independent. This means you:
You can also enable track-latest
to always use the most recent file or Git commit. Here’s how you do this using a VCLI command:
Each deployment is logged, and rollback is supported as long as the group is not tracking latest.
Useful for quickly undoing changes or investigating what was deployed.
You can now create API tokens that stay valid for extended periods—ideal for automation and integration with other tools.
Long-Lived API Tokens can only be created using the VCLI. Here’s an example:
Tokens can also be assigned custom roles with specific permissions.
Varnish Controller 7 adds support for the ACME protocol, allowing automated generation and renewal of TLS certificates (e.g., with Let's Encrypt).
Here’s a VCLI example that creates an TLS certificate for the “example.com” domain name using the ACME protocol:
TLS certificates, both manual and ACME-issued, can also be configured in the Controller UI.
You can now append new domains to an existing VCLGroup without replacing the entire list.
Here’s how you can add a domain to a VCLGroup using a simple VCLI command, but this can of course also be managed in the Controller UI:
This simplifies ongoing updates, especially in multi-tenant setups.
Varnish Controller 7 is a practical upgrade focused on improving how you manage and automate multi-node Varnish environments. It brings:
If you're running Varnish Enterprise at scale or in production, this version helps make the day-to-day work easier, more predictable, and easier to integrate into modern workflows.
See the full Changelog. For full upgrade instructions, visit the Varnish Controller documentation.