Customer-managed ZeroQuarry runner for private-network and private-source security scans
10K+
The ZeroQuarry Private Runner executes authorized security scans from a customer-controlled Docker host while ZeroQuarry SaaS remains the control plane. It connects outbound over HTTPS, so private networks do not need to expose an inbound runner endpoint.
The image supports:
This image requires an active ZeroQuarry Enterprise subscription or another written commercial agreement. It is not a standalone scanner.
In ZeroQuarry, an account administrator creates a private runner pool under Account → Private Runners, selects Add runner, and copies the generated command. The enrollment token works once and expires after 24 hours.
A generated command has this shape:
docker run -d --restart on-failure:5 \
--name zeroquarry-runner \
--volume zq-runner-state:/var/lib/zeroquarry \
--env ZEROQUARRY_ACCEPT_EULA=yes \
--env ZEROQUARRY_CONTROL_PLANE_URL=https://api.zeroquarry.com \
--env ZEROQUARRY_ENROLLMENT_TOKEN='<one-time-token>' \
--env ZEROQUARRY_RUNNER_NAME='Production VPC runner' \
zeroquarry/worker:latest
Use the command shown in your account rather than reusing the placeholder above. The Docker volume stores the enrolled worker identity. Preserve it when updating or recreating the container; deleting it requires a new enrollment token.
The bounded restart policy retries transient startup failures up to five times. A permanent enrollment rejection, such as an expired or already-used token, stops the container immediately. Generate a new command before starting it again.
The runner requires outbound HTTPS access to:
It also needs network access from the Docker host to the private applications selected for remote scans. No inbound connection from ZeroQuarry SaaS is required.
Administrators choose the return policy when creating a pool:
Private source scans clone directly on the runner. Browser-uploaded source is not accepted for private execution because it would first transit the SaaS control plane.
Pull the desired tag and recreate the container while retaining the state volume.
Stable releases also update latest; production deployments may pin an explicit
version:
docker pull zeroquarry/worker:1.0.0
If a worker must stop accepting new scans, drain it in ZeroQuarry before recreating it. Revoking a worker invalidates its credential and requires a new enrollment.
Running the image requires affirmative acceptance through
ZEROQUARRY_ACCEPT_EULA=yes. The ZeroQuarry Private Runner commercial license
is included in the image at:
/usr/share/licenses/zeroquarry-worker/WORKER-EULA.md
Support, warranties, data-protection terms, and liability terms are governed by your written ZeroQuarry agreement.
Content type
Image
Digest
sha256:1c6a91b05…
Size
1.1 GB
Last updated
about 8 hours ago
docker pull zeroquarry/worker