Registering a custom Orca license is quite straightforward, and involves modifying the YAML configuration file.
Here’s how you register the license on the various supported platforms.
If you installed Orca with the standard configuration by running docker run --rm -p 80:80 --name orca varnish/orca, you’ll have to change your docker run command and mount a configuration file and a license file:
docker run --rm -p 80:80 --name orca \
-v $(pwd)/config.yaml:/app/config.yaml:ro \
-v $(pwd)/license.lic:/app/license.lic:ro \
varnish/orca --config /app/config.yaml
This example command will mount config.yaml and license.lic from your current directory into the container in the /app directory. It will also ensure the /app/config.yaml file is loaded by Orca.
If you already loaded a custom configuration file, you can skip that step and continue editing your configuration file.
To register a custom license, you have to add the following content to your Orca config file:
license:
file: /app/license.lic
Assuming you mounted the license file, Orca will load the licese and use it to unlock the extra features.
If you’re running Orca with docker compose, make sure your docker-compose.yaml file has a volumes section that mounts the custom configuration file and the license file:
services:
orca:
image: varnish/orca
ports:
- "80:80"
volumes:
- ./config.yaml:/app/config.yaml:ro
- ./license.lic:/app/license.lic:ro
command: --config /app/config.yaml
Before running docker compose up, make sure the following lines are added to config.yaml:
license:
file: /app/license.lic
If you deployed Orca to a Kubernetes cluster using the Helm Chart, you can upload the license as a Kubernetes secret by running the following kubectl command:
kubectl create secret generic orca-license \
--from-file=./license.lic
And then simply add a license section to the orca of your values.yaml file and point it to the secret you just created:
orca:
license:
secret: orca-license
Re-deploy the Helm release and the secret containing the license should be mounted into the pod and used by Orca.
Alternatively, you could add a --set "orca.license.secret=orca-license" argument directly to your helm install command.
If you installed Orca on a Linux server using the DEB or RPM packages, you can edit the configuration file manually with the editor of your choice.
Add the following section to /etc/varnish-supervisor/default.yaml:
license:
file: /etc/varnish-supervisor/license.lic
Make sure /etc/varnish-supervisor/license.lic exists and contains the license, and restart the varnish-supervisor process with the following command:
sudo systemctl restart varnish-supervisor
Here’s an example of an Orca configuration file that has the license stored in /etc/varnish-supervisor/license.lic:
varnish:
http:
- port: 80
license:
file: /etc/varnish-supervisor/license.lic
virtual_registry:
registries:
- name: dockerhub
default: true
remotes:
- url: https://docker.io
- url: https://mirror.gcr.io
- name: quay
remotes:
- url: https://quay.io
- name: ghcr
remotes:
- url: https://ghcr.io
- name: k8s
remotes:
- url: https://registry.k8s.io
- name: npmjs
remotes:
- url: https://registry.npmjs.org
- name: go
remotes:
- url: https://proxy.golang.org
- name: github
remotes:
- url: https://github.com
- name: gitlab
remotes:
- url: https://gitlab.com
Orca uses Varnish Supervisor under the hood to manage the service. Varnish Supervisor logs to STDOUT.
Your STDOUT may contain the following log lines:
time=2025-11-03T10:00:36.058+01:00 level=INFO msg="License: Private registry cache enabled"
time=2025-11-03T10:00:36.058+01:00 level=INFO msg="License: Persistent cache enabled"
time=2025-11-03T10:00:36.058+01:00 level=INFO msg="License: OpenTelemetry tracing enabled"
time=2025-11-03T10:00:36.058+01:00 level=INFO msg="License: Custom registry VCL enabled"
time=2025-11-03T10:00:36.058+01:00 level=INFO msg="License: Git Mirror enabled"
time=2025-11-03T10:00:36.058+01:00 level=INFO msg="License: Expires 2026-10-09"
These logs lines mention the extra capabilities that are enabled, along with the expiration date of the license.
Extracting this information from Orca depends on the deployment platform that was used:
docker logs orca to display the license informationdocker compose setup you can run docker compose logs orca to display the license informationkubectl logs <pod> where <pod> refers to the name of the podjournalctl -u varnish-supervisor to display the license information