Overview
Deploy Metlo on any machine with Docker and Docker Compose. This is the quickest way to get started with Metlo and requires minimal setup.Prerequisites
- Docker Engine installed
- Docker Compose (v1.29.0 or later)
- At least 4GB of RAM
- 10GB of available disk space
Quick Start
Initialize Metlo
Initialize the Metlo deployment (pulls required files and Docker images):You’ll be prompted for an optional license key. Press Enter to skip for the open-source version.
Architecture
The Docker deployment consists of six services:- PostgreSQL Database (
db) - Stores all API security data - Redis Cache (
cache) - Handles session management and caching - Ingestor (
ingestor) - Collects and processes API traffic data - Backend (
backend) - Core API and business logic - Jobs Runner (
jobs) - Handles background processing tasks - Analyzer (
analyzer) - Analyzes API traffic for security issues - Frontend (
frontend) - Web UI for the dashboard
Environment Variables
Metlo uses environment variables for configuration. These are automatically generated during initialization and stored in/opt/metlo/.env:
Required Variables
Base64-encoded encryption key for sensitive data. Auto-generated during setup.
URL where the backend service is accessible (e.g.,
http://YOUR_IP:8081)Secret key for Express.js session management. Auto-generated during setup.
Optional Variables
Enterprise license key for advanced features. Leave empty for open-source version.
Number of worker processes for the analyzer service.
Enable sandbox mode for testing without affecting production data.
Disable anonymous usage statistics logging.
Database Connection
PostgreSQL connection string
Redis connection string
Docker Compose Configuration
The deployment uses the official Metlo Docker images:metlo/backend:latest- Backend and Ingestor servicesmetlo/frontend:latest- Frontend web UImetlo/jobrunner:latest- Background jobs and analyzer
DOCKER_IMAGE_TAG environment variable:
Management Commands
Themetlo-deploy script provides several commands:
Custom Configuration
For advanced users who want to customize the deployment:Ports
Ensure these ports are available on your host machine:- 8000 - Frontend web interface
- 8080 - Backend API
- 8081 - Ingestor/Collector API
Data Persistence
The deployment creates two Docker volumes for data persistence:db- PostgreSQL data directorycache- Redis data directory
Troubleshooting
Services won't start
Services won't start
Check Docker logs for individual services:
Cannot connect to frontend
Cannot connect to frontend
- Verify the frontend container is running:
docker ps | grep metlo-frontend - Check firewall rules allow port 8000
- Ensure
BACKEND_URLis correctly set and accessible from your browser
Database connection errors
Database connection errors
- Verify PostgreSQL is running:
docker ps | grep postgres - Check database logs:
docker-compose logs db - Ensure the database initialized properly with the init.sql script
Reset deployment
Reset deployment
To completely reset your deployment:
Next Steps
Connect Data Sources
Configure connections to capture API traffic
Configure Security Rules
Set up detection rules and alerts