2.2. AML Dashboard

The AML Dashboard is composed of two services: a backend and a frontend, each with its own Docker container. These services are managed using docker-compose for ease of deployment.

2.2.1. Prerequisites

Ensure you have Docker and Docker Compose installed on your machine.

2.2.2. Building and Running the Containers

To build and run the Docker containers, execute the following steps:

  1. Create a working directory and navigate into it:

mkdir AML-Dashboard
cd AML-Dashboard
  1. Download the required Dockerfiles and docker-compose.yml:

wget https://raw.githubusercontent.com/eProsima-Private/AML-Dashboard/refs/heads/feature/add_dockerfile/Dockerfile_Frontend
wget https://raw.githubusercontent.com/eProsima-Private/AML-Dashboard/refs/heads/feature/add_dockerfile/Dockerfile_Backend
wget https://raw.githubusercontent.com/eProsima-Private/AML-Dashboard/refs/heads/feature/add_dockerfile/docker-compose.yml
  1. Start the services using docker-compose:

docker compose up -d
  1. After the containers are built move your aml_engine folder from your machine to the docker backend.

docker cp <path_to_aml_engine/aml_engine> aml-dashboard-amldashboard-backend-1:/AML-Dashboard/backend/

The AML Dashboard will be available at http://localhost:5173.

  1. To stop the services, execute the following command:

docker compose down

2.2.3. AML-Dashboard Deployment

The Docker Compose launches the following containers:

  • AML Dashboard Backend is responsible for managing the AML Dashboard’s server, including the AML-IP nodes, processing the data and results. It is built on ubuntu:jammy and it installs essential system dependencies, including git, cmake, g++, libasio-dev, libssl-dev, libyaml-cpp-dev, swig, and Miniconda. The Miniconda environment, aml_env, is created with Python 3.11 and includes essential Python libraries such as Flask, NumPy, scikit-learn, pandas, tensorflow[and-cuda], and other scientific computing and machine learning dependencies. The backend also clones and builds AML-IP, which is used for interaction processing, by importing the necessary repositories and compiling the software with colcon. The backend source code is cloned from the AML-Dashboard repository, and once the container is up, it runs server.py within the activated aml_env environment and sources the necessary AML-IP dependencies. The backend container runs in host network mode to ensure direct communication with the frontend.

  • AML Dashboard Frontend serves the web-based interface of the AML Dashboard and interacts with the backend to retrieve and display data. It is also based on ubuntu:jammy and and provides the web interface for the AML Dashboard. Is installs essential system dependencies, including git, nodejs, and npm. The frontend uses Node.js with dependencies managed through npm. Once built, it runs the frontend interface using npm run dev. It also runs in host network mode to facilitate seamless communication between services.