HOME / DOCUMENTATION / Update to PostgreSQL 17 for Acunetix On-Premises

PostgreSQL 17 upgrade guide

THIS DOCUMENT IS FOR: Acunetix On-Premises

This guide provides instructions for upgrading Acunetix On-Premises to use PostgreSQL 17, across Windows, Linux, and Docker environments.

Available scenarios:

  1. Scenario 1: Windows
  2. Scenarios for Linux / Docker
  1. Scenario 2: Docker installation with separate volume for data
  2. Scenario 3: Docker installation without separate volume for data
  3. Scenario 4: Linux (Non-Docker)

Scenario 1: Windows

Upgrade approach

  • Automatic or manual upgrade supported
  • No special user interaction required
  • The Acunetix installer will handle the PostgreSQL upgrade automatically during the update process.

Follow these steps to manually upgrade to PostgreSQL 17 on a Windows machine:

  1. Download the latest Acunetix installation package.
  2. Run the installer and follow the prompts.
  3. PostgreSQL will be upgraded automatically in the background.
  4. Upon completion, verify Acunetix is running and accessible.

Scenarios for Linux / Docker

IMPORTANT NOTES:

  • Automatic updates are disabled for Linux-based installations.
  • The upgrade process must be executed manually by the user.

Scenario 2: Docker installation with separate volume for data

Assuming you have a volume named acunetix_data (for Acunetix data) and a container named acunetix, follow the steps below.

  1. Prerequisite

Download the latest Acunetix installer (acunetix.sh) and save it to /home/Downloads/acunetix.sh.

  1. Stop the container:

docker stop acunetix

  1. Backup your data (Recommended):

Before proceeding with the upgrade, it is highly recommended to back up your data. This step is optional, but it is a good practice to ensure that you can restore your data in case something goes wrong during the upgrade process.

docker run --rm \
   -v acunetix_data:/home/acunetix/.acunetix \
   -v ~/acunetix_backup:/tmp/acunetix_backup \
   --entrypoint /bin/bash \
   -u
0 \
   invicti/acunetix \
   -c
"tar cvzf /tmp/acunetix_backup/acunetix_backup.tar.gz /home/acunetix/.acunetix"

  1. To restore this backup later, use the following command:

docker run --rm \
   -v acunetix_data:/home/acunetix/.acunetix \
   -v ~/acunetix_backup:/tmp/acunetix_backup \
   --entrypoint /bin/bash \
   -u
0 \
   invicti/acunetix \
   -c
"tar xvzf /tmp/acunetix_backup/acunetix_backup.tar.gz -C /"

  1. Launch a temporary container as root to perform the upgrade:

Next, you need to mount the volume to a temporary container so the upgrade can be performed. We will start the temporary container as root user so that we can upgrade the installation. Also, notice how we mount the downloaded installation package to the temporary container.

docker run --rm \
   -v acunetix_data:/home/acunetix/.acunetix \
   -v /home/Downloads/acunetix.sh:/tmp/acunetix.sh \
   -u
0 \
   -it \
   --entrypoint /bin/bash \
   invicti/acunetix

At this point, you will be inside the temporary container, running the bash shell as root. Since the installation needs sudo and we don't have it in the container at this point, we will install it first.

  1. Inside the container, install sudo and run the upgrade script:

apt-get update && apt-get install -y sudo
bash /tmp/acunetix.sh

Answer the prompts as needed. Once the upgrade is complete, exit the temporary container.

  1. Exit after the container:

exit

  1. Restart the Acunetix container:

docker start acunetix

Scenario 3: Docker installation without separate volume for data

If you are not using a separate volume, follow these steps to convert your data directory into a persistent volume before upgrading.

  1. Stop the container

docker stop acunetix

  1. Backup/Extract data

Copy the data directory from the container to your local machine:

docker cp -a acunetix:/home/acunetix/.acunetix - > ~/acunetix_data.tar

  1. Create a persistent volume

At this point, the best practice is to create a volume for the data, so an accidental removal of the container does not result in data loss. You can create a volume named acunetix_data with the following command:

docker volume create acunetix_data

  1.  Restore data into volume

After creating the volume, copy the data from your local machine to the volume:

docker run --rm \
   -v acunetix_data:/home/acunetix/.acunetix \
   -v ~/acunetix_data.tar:/tmp/acunetix_data.tar \
   --entrypoint /bin/bash \
   -u
0 \
   invicti/acunetix \
   -c
"tar xf /tmp/acunetix_data.tar -C /home/acunetix"

  1. Remove the old container

Since the data is now in the volume, you can proceed with deleting the original container:

docker rm acunetix

  1. Recreate and start the updated Acunetix container

Now you can proceed with the upgrade as described in Scenario 2 [steps 2.5 - 2.7], keeping in mind that you will need to start the container with this command:

docker run -d --name acunetix \
   -p
3443:3443 \
   -p
7880:7880 \
   -v acunetix_data:/home/acunetix/.acunetix \
   invicti/acunetix


Scenario 4: Linux (Non-Docker)

  1. Prerequisite
    Download the latest Acunetix installer (
    acunetix.sh) and save it to /home/Downloads/acunetix.sh
  2. Make the installer executable:

chmod +x acunetix.sh

  1. Run the installer with elevated privileges:

sudo ./acunetix.sh

  1. Follow the on-screen prompts to complete the upgrade, including PostgreSQL migration.
  2. Restart Acunetix services if not restarted automatically:

sudo systemctl restart acunetix

Post-upgrade verification

After upgrading, ensure:

  • Acunetix services are running.
  • The UI is accessible on the expected ports.
  • Optionally, run a test scan to confirm functionality.
  • Check the PostgreSQL version:

psql --version