Skip to content

Configuration

Overview

Once Authenta On-Prem is successfully deployed, you can tailor its configuration to match your environment, network policies, and workload requirements.
This guide explains how to customize Docker Compose profiles, environment variables, message schemas, and data directories.

Authenta's configuration is lightweight and fully contained within its deployment package — no internet connection or cloud sync is required.

1. Docker Compose Profiles

Authenta supports two main execution profiles:

ProfileDescriptionContainerUse Case
gpuUses NVIDIA GPU for accelerated inferenceml-task-runner-gpuDefault for production systems with GPU availability
cpuRuns entirely on CPU without GPU dependencyml-task-runner-cpuFor testing or environments without GPU

Start either mode using:

# GPU mode (default)
docker compose --profile gpu up -d
 
# CPU-only mode
docker compose --profile cpu up -d

2. Base Configuration

The core configuration is defined using YAML anchors for reusability:

x-ml-task-runner-configs: &ml-task-runner-configs
  depends_on:
    rabbitmq:
      condition: service_healthy
  environment:
    LOG_FORMAT: json
    RABBITMQ_URL: amqp://user:pass@rabbitmq:5672/
    INFRA_TYPE: on-prem
    LOG_LEVEL: INFO
    JOBS_ROOT: /app/jobs
    RABBITMQ_QUEUE: task_queue
    RUN_MODE: production
  volumes:
    - /opt/authenta/data:/opt/authenta/data

3. Service Configuration

RabbitMQ Settings

ParameterDescriptionDefault
RABBITMQ_DEFAULT_USERAdmin usernameuser
RABBITMQ_DEFAULT_PASSAdmin passwordpass
RABBITMQ_URLConnection URLamqp://user:pass@rabbitmq:5672/
RABBITMQ_QUEUEQueue nametask_queue

RabbitMQ configuration in docker-compose:

services:
  rabbitmq:
    image: rabbitmq:4-management
    ports:
      - '5672:5672'
      - '15672:15672'
    environment:
      RABBITMQ_DEFAULT_USER: user
      RABBITMQ_DEFAULT_PASS: pass
    healthcheck:
      test: ['CMD-SHELL', 'rabbitmq-diagnostics -q ping']
      interval: 5s
      timeout: 5s
      retries: 20
      start_period: 10s

ML Task Runner Settings

ParameterDescriptionDefault
LOG_FORMATLog output formatjson
LOG_LEVELLogging verbosityINFO
INFRA_TYPEInfrastructure typeon-prem
JOBS_ROOTJob files location/app/jobs
RUN_MODEExecution modeproduction

GPU-Specific Settings

For GPU mode, additional configurations are required:

services:
  ml-task-runner-gpu:
    <<: *ml-task-runner-configs
    platform: linux/arm64
    image: <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com/authena/ml-task-runner:v1-gpu
    profiles: ['gpu', 'default']
    runtime: nvidia
    environment:
      NVIDIA_VISIBLE_DEVICES: all
      NVIDIA_DRIVER_CAPABILITIES: compute,utility
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

Replace <AUTHENTA_ACCOUNT_ID> with the value provided by Authenta Support. This ID refers to Authenta’s private AWS account where the official container images are hosted.

4. Data Management

Shared Volume Structure

./shared/
  ├── result.json         # Detection results
  └── heatmaps-results/   # Visual detection maps

Volume Configuration

volumes:
  - ./shared:/app/shared # Maps host directory to container

5. Scaling Configuration

To run multiple inference containers:

# Scale GPU workers
docker compose up -d --scale ml-task-runner-gpu=3
 
# Scale CPU workers
docker compose up -d --scale ml-task-runner-cpu=2

⚠️ Ensure sufficient hardware resources before scaling up.

6. Health Checks

RabbitMQ health monitoring is configured by default:

healthcheck:
  test: ['CMD-SHELL', 'rabbitmq-diagnostics -q ping']
  interval: 5s
  timeout: 5s
  retries: 20
  start_period: 10s

Next Steps

Next Steps