The AquilaX solution consists of several key components, each responsible for specific tasks. These components work together seamlessly to deliver comprehensive security scanning and intelligence.
AquilaX Server: Manages the API and User Interface (UI) of the service, acting as the central control point for all operations.
AquilaX Worker: Responsible for executing the actual security scans, performing the analysis and reporting vulnerabilities.
AquilaX GenAI Services: Specialized AI-powered modules designed to assist with decision-making and emulate human logic in engineering tasks. These models enhance the solution’s ability to reason, automate processes, and build intelligent responses.
Below is a diagram illustrating the relationship between these components. Following the diagram, you’ll find instructions on how to set up the solution in a dedicated environment.
Prerequisite
To prepare for the installation of various AquilaX components, you can structure the deployment using four (3) dedicated Virtual Machines
Execute and follow the instruction of the command docker login registry.gitlab.com
The required dedicated VMs must have at least the below capacities to be able to work correctly
VM
CPU/GPU (min)
RAM (min)
Storage
Network
Server
8 vCPU
16 GB
50 GB SSD
SSH / HTTPs
Worker
16 vCPU
64 GB
40 GB SSD
SSH
AI
32 vCPU or 4 GPU
32 GB
120 GB SSD
SSH
In addition, all the VMs must be within the same network and must be able to communicate in different ports.
To install Docker on Ubuntu/Debian machine, you can follow the below instructions
In the same folder create a new file in the same directory, and named .env where we going to store some configuration needed for the application to start properly, paste the below content
Now, you create a certificate (self-signed) for the HAProxy that is used to expose the service over https. Obviously you can use your own certificate signed by your CA for not using self-signed, however for demo purposes here is a command to generate the needed files and folders for the HAProxy.
within the new created haproxy proxy folder, create a file named haproxy.cfg and paste the below content
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 5000
timeout client 50000
timeout server 50000
frontend balancer
#bind 0.0.0.0:80
bind *:443 ssl crt /certs/haproxy.pem
mode http
default_backend aquilax-server
backend aquilax-server
option forwardfor
balance roundrobin
server aquilax-1 aquilax-server:8000
server aquilax-2 aquilax-server:8000
server aquilax-3 aquilax-server:8000
server aquilax-4 aquilax-server:8000
Start the service
Finally when you have these everything done, just start everything up by executing:
docker compose pull
docker compose up -d
Initiate the DB
Now the application is up and running, we need to setup the Postgres for the datasets, this will be used from the AI models to write and read data
Go
Now you can signing into the service just by navigating at https://<your own ip>
License Application
Login into the new application (use magic-link) and create a new organization for your usage, and also set up a group name, don't worry to much about the names, you can always change them later.
Once you are inside the application, create a personal access token, you will need this for the worker. In addition go into the settings of your new organization and apply a license key, the license key will be provided to you by the the AquilaX team.
Setup AquilaX Worker
Now that the server is up and running, we enable the AquilaX workers, that will actually are the main engines to consume the request and execute the scans.
Sign into the AquilaX worker machine and create a folder where you want the configuration files to be hosted, inside the folder create a new file named docker-compose.yml file with the below content:
within the same folder, create a new file named .env and paste the below enviroments
.env
=
=https://aquilax.ai/api/v1
=
=
(repeat the same exact process into the other AquilaX workers VMs)
Start the service
Finally when you have these everything done, just start everything up by executing:
docker compose pull
docker compose up -d
Setup AquilaX AI
Similar with the Server and the Worker part of the solution, create a new folder on a dedicated machine, and create a docker-compose.yml file with the below content