Acunetix on Docker, Docker-Compose, and Kubernetes
Acunetix offers flexible deployment options to suit various infrastructure requirements, supporting Docker, Docker-Compose, and Kubernetes. These containerized solutions simplify installation, scaling, and management of the Acunetix application and scanning engine.
For Docker users, Acunetix provides two solutions:
- Docker Hub - Invicti/Acunetix Solution
- Available at Docker Hub.
- This is a self-contained Docker image that includes the latest Acunetix build, complete with the database and scanner.
- For more information, refer to our document on Installing Acunetix on Docker.
- Repo One and Invicti Registry
- Repo One: Hosted at repo1.dso.mil.
- Invicti Registry:
These images are mirrored across the two repositories.
This document details the steps for point 2 - Repo One and Invicti Registry for obtaining images, configuring environments, and deploying Acunetix using the solutions.
Obtain the image
From Repo One
- Register at registry1.dso.mil and log in using Platform One SSO.
- Go to your User Profile and copy the Client Secret.
- Use the following command in your CLI:
docker login registry1.dso.mil |
🛠️ | Enter the following when prompted:
|
From the Invicti Registry
- Ensure you have your Acunetix license key (available under Settings > Subscription).
- Use the following command in your CLI:
docker login registry.invicti.com |
🛠️ | Enter the following when prompted:
|
Key environment variables used by the image
This is the format and the environment variables:
Format:
postgresql://<user>:<password>@<host>:<port>/<db> |
Example:
postgresql://acunetix:eKi1lB00lmteUCAhBXK7M5Mw41LNDyrN@acunetix-database:5432/wvs |
🛠️ | Environment variables used by the image:
|
Running with Docker-Compose
Below is an example of a simple Acunetix deployment using Docker-Compose.
This setup includes:
- acunetix-main: A container hosting the main UI and backend.
- acunetix-worker: An additional container running a scanning engine.
version: "3" |
Configure workers
Postgres notes: |
In this setup, the worker and main containers communicate over the Docker network. Here's how to configure them:
- Internal communication:
- Use the hostnames acunetix-worker and acunetix-main on port 3443.
- External access:
- Use the forwarded ports:
- 3500 for the main container
- 3501 for the worker container
Running within Kubernetes
To run with Kubernetes, utilize the provided manifest to deploy and configure the necessary resources. Clicking on the link downloads the following folders and files:
- secret.yaml
- acunetix-namespace.yaml
- db folder:
- database-service.yaml
- database-vc.yaml
- database-deployment.yaml
- backend folder:
- main-backend-deployment.yaml
- main-backend-service.yaml
- user-data-vc.yaml
Auto updates
This Docker image does not support automatic updates, as all versions are pinned.
To enable regular updates for the services, you can use a tool like Watchtower. Watchtower monitors your running Docker containers and automatically updates them when new versions of the images become available.