Maintenance & Updates
Overview
This guide provides best practices for maintaining, monitoring, and updating Authenta On-Prem after deployment.
Authenta is designed for long-term, stable operation in air-gapped environments with minimal maintenance overhead.
You'll only need to enable temporary internet access when applying updates or pulling new container versions.
1. Log Management
Authenta emits structured logs in JSON format, making them easy to parse and forward to your internal log collection systems.
View Logs in Real Time
docker logs -f ml-task-runner-gpu
# or
docker logs -f ml-task-runner-cpuYou'll see entries such as:
// Task submission
{
"id": "job-1234",
"version": 1,
"op": {
"name": "df-1",
"version": "1.0.0"
},
"input": {
"mimeType": "application/octet-stream",
"provider": "local_dir",
"path": "path": "/opt/authenta/data/authenta_xxxx/media.ext"
},
"outputs": [
{
"kind": "result",
"mimeType": "application/json",
"provider": "local_dir",
"path": "/opt/authenta/data/authenta_xxxx/result.json"
},
{
"kind": "heatmaps",
"mimeType": "video/mp4",
"provider": "local_dir",
"path": "/opt/authenta/data/authenta_xxxx/heatmaps-results",
"filename": "video-heatmap-{faceid}{ext}"
}
]
}
// Task response
{
"id": "job-1234",
"status": "completed",
"result": {
"confidence": 0.9821,
"classification": "deepfake",
"processedAt": "2025-11-08T12:34:56Z"
}
}Save Logs to Host Directory
You can map container logs to a persistent host directory by modifying your docker-compose.yml:
services:
ml-task-runner-gpu:
volumes:
- /opt/authenta/logs:/app/logsThis allows you to:
- Retain logs across container restarts
- Integrate with centralized logging systems (ELK, Splunk, Datadog, Loki, etc.)
- Perform local audits and monitoring
Log Format and Environment Settings
The following environment variables control logging and application behavior:
| Variable | Description | Default |
|---|---|---|
LOG_FORMAT | Log output format | json |
LOG_LEVEL | Log verbosity level | INFO |
JOBS_ROOT | Directory for job files | /app/jobs |
RUN_MODE | Application execution mode | production |
RABBITMQ_QUEUE | Main task queue name | task_queue |
RABBITMQ_URL | RabbitMQ connection URL | amqp://user:pass@rabbitmq:5672/ |
Logs include:
- Job submissions and responses
- Task processing status
- Model inference results
- Error conditions and exceptions
- RabbitMQ connection states
2. Monitoring & Health Checks
To ensure continuous operation, periodically verify container and service status.
Check Container Status
docker psExpected output:
rabbitmq Up (port 5672, 15672)
ml-task-runner-gpu UpInspect RabbitMQ
- Access the management dashboard: ๐ http://localhost:15672
- Monitor the following queues:
task_queue: Main queue for processing requeststask_response: Queue for processing results
- Verify active connections from:
- ML Task Runners (consumers)
- Client applications (producers)
- Check message patterns:
- Task submission format
- Response message structure
- Error handling and retries
Check System Logs
Inspect system-level Docker logs for any restarts or errors:
sudo journalctl -u docker --since "1 hour ago"3. Scaling & Performance Optimization
Authenta supports horizontal scaling for increased throughput.
Add More Inference Containers
You can run multiple task runner instances concurrently:
docker compose up -d --scale ml-task-runner-gpu=3RabbitMQ automatically balances incoming tasks among all active consumers.
โ ๏ธ Ensure you have enough hardware resources (CPU, GPU, RAM) before scaling up.
Scale Down or Restart
To reduce resources or reset workers:
docker compose down
docker compose up -d --scale ml-task-runner-gpu=1Scaling can be adjusted dynamically without data loss.
4. Updating Authenta
Authenta releases updates periodically that include:
- Improved AI models
- Security and stability patches
- Optimized performance for CPU/GPU inference
Because the system is offline, updates require temporary internet access.
Steps to Update
- Enable Internet Access on the host
- Re-authenticate to the private ECR:
Before updating, ensure you have the latest Authenta-issued ECR credentials. These credentials authenticate against Authentaโs private AWS Account ID and are required to pull updated images.
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com - Pull Updated Images:
docker compose pull - Restart Services:
docker compose down && docker compose up -d - Disable Internet Access again for air-gapped operation
Verifying the Update
Check image versions:
docker images | grep authentaExample output:
authenta/ml-task-runner v1.2-gpu <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com ...
authenta/ml-task-runner v1.2-cpu <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com ...If version numbers reflect the update, deployment is complete.
5. ECR Credentials Management
Authenta provides read-only AWS ECR credentials for image access. These can safely be:
- Stored in your CI/CD or secret manager
- Revoked and reissued after initial deployment if required
Credentials are only needed when:
- Pulling images for the first time
- Performing updates
They are not required for day-to-day operation.
6. Backup & Recovery
Back Up Important Directories
| Path | Purpose |
|---|---|
/opt/authenta/data | Input and result files |
/opt/authenta/logs | Persistent logs |
/opt/authenta/docker-compose.yml | Configuration file |
/opt/authenta/.env | Environment variables and credentials |
๐ก Regular backups ensure quick recovery in case of system failure.
Restore Procedure
- Restore the directories from your backup
- Reinstall Docker if needed
- Run:
to reinitialize all services with the preserved configuration
docker compose up -d
7. Resource Cleanup
To remove unused or old images and free disk space:
docker image prune -aTo clear stopped containers and unused volumes:
docker system prune -a --volumesโ ๏ธ Ensure you have backups before pruning. These commands delete unreferenced data permanently.
8. Security Maintenance
Authenta On-Prem is fully self-contained and runs offline, but it's still recommended to:
- Restrict RabbitMQ dashboard access to admin IPs only
- Rotate passwords periodically (defined in
.env) - Keep Docker and host OS up to date with security patches
- Run containers as non-root users if your security policy requires it
๐ No external telemetry, logging, or network connections are made โ Authenta operates fully within your environment.
9. Troubleshooting Common Issues
| Symptom | Possible Cause | Recommended Action |
|---|---|---|
| Containers exit unexpectedly | Insufficient resources or permission issues | Check docker logs and host disk/memory usage |
| Queue not visible in RabbitMQ | Misconfigured queue name | Verify .env โ RABBITMQ_QUEUE matches task_queue |
| Inference jobs not processing | Task runner not connected | Restart ml-task-runner service |
| GPU not detected | Missing or incompatible drivers | Reinstall NVIDIA drivers and container toolkit |
| Update fails | Old credentials or network block | Re-authenticate and re-enable outbound internet temporarily |
10. Lifecycle Checklist
| Maintenance Task | Frequency | Action |
|---|---|---|
| Log review | Weekly | Inspect logs for errors or job anomalies |
| System backup | Weekly | Backup /opt/authenta/data and /opt/authenta/logs |
| Update pull | Quarterly or as advised | Temporarily enable internet and update images |
| Password rotation | Quarterly | Update RabbitMQ and .env credentials |
| Resource cleanup | Quarterly | Prune unused images and containers |
Summary
| Aspect | Description |
|---|---|
| Logs | Structured JSON format, can be exported to central systems |
| Updates | One-time internet required to pull new images |
| Scaling | Add more task runners for parallel processing |
| Security | Offline mode, no telemetry, configurable credentials |
| Maintenance Effort | Minimal โ designed for stable long-term operation |
