AI Firewall via Docker
Prerequisites
Before installing the Levo AI Firewall via Docker, ensure you have:
- Met the system requirements listed in Install AI Firewall
- Docker Engine
20.10.0or higher - Admin privileges on the Docker host
- Your Authorization Key and Organisation ID from your Levo account
1. Pull the Image
docker pull levoai/ai-firewall:latest
2. Create a Configuration File
The AI Firewall requires a vigil.yaml config file that specifies the upstream LLM endpoint it should proxy to. Create one on your host:
# vigil.yaml
server:
listen_addr: "0.0.0.0:8080"
workers: 4
timeout_secs: 30
upstream:
# Address of the upstream LLM provider (host:port)
address: "api.openai.com:443"
tls: true
sni: "api.openai.com"
detection:
stages:
fast_filters: true
classifier: false
semantic: false
policy: true
thresholds:
block: 0.85
flag: 0.5
patterns_dir: "./data/patterns"
models_dir: "./data/models"
max_prompt_length: 100000
observability:
log_level: "info"
json_logs: false
alerting:
enabled: true
log_alerts: true
min_severity: "low"
Replace api.openai.com with your upstream LLM provider address. For example, for Azure OpenAI set address: "your-resource.openai.azure.com:443" and sni: "your-resource.openai.azure.com".
3. Run the AI Firewall
docker run -d \
--name levoai-aifirewall \
--restart unless-stopped \
-p 8080:8080 \
-e LEVOAI_BASE_URL="https://api.levo.ai" \
-e LEVOAI_AUTH_KEY="<Authorization Key>" \
-e LEVOAI_ORG_ID="<Organisation ID>" \
-e LEVOAI_ENV_NAME="<Environment Name>" \
-e LEVOAI_SATELLITE_URL="<Satellite URL>" \
-v /path/to/vigil.yaml:/app/config/vigil.yaml:ro \
levoai/ai-firewall:latest
Replace /path/to/vigil.yaml with the absolute path to the config file you created in step 2. For LEVOAI_SATELLITE_URL, use https://satellite.levo.ai (Levo-hosted) or your own on-premise satellite address. For accounts on the India domain, set LEVOAI_BASE_URL to https://api.india-1.levo.ai.
4. Verify the Installation
Check that the container is running:
docker ps -f name=levoai-aifirewall
If the AI Firewall is healthy, you should see output similar to the following:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b7e2d4c1a9f3 levoai/ai-firewall:latest "vigil --..." 1 minute ago Up 1 minute 0.0.0.0:8080->8080/tcp levoai-aifirewall
Verify the health endpoint:
curl http://localhost:8080/health
Expected response:
{"status":"healthy","service":"vigil"}
Please contact support@levo.ai if you notice health or connectivity errors.
5. Configure the AI Firewall in the Levo Dashboard
The AI Firewall polls the Levo platform every 60 seconds and automatically applies the latest configuration. Routing rules and guardrail policies are managed from the dashboard.
- Login to Levo.ai.
- Navigate to AI Firewalls → Configuration.
- Paste your configuration YAML and click Save.
Refer to step 4 in AI Firewall on Kubernetes for a configuration example and YAML reference — the format is identical for Docker and Kubernetes deployments.
6. Point Your Application at the Firewall
Update your application to send LLM requests through the firewall instead of directly to the LLM provider. Replace the LLM provider's base URL with http://<Docker-host-IP>:8080/v1.
For example, if you are using the OpenAI SDK:
from openai import OpenAI
client = OpenAI(
base_url="http://<Docker-host-IP>:8080/v1",
api_key="<Your OpenAI API Key>",
)
AI Firewall Lifecycle Management
Upgrade AI Firewall
Pull the latest image:
docker pull levoai/ai-firewall:latest
Stop and remove the existing container, then re-run the docker run command from Step 3:
docker stop levoai-aifirewall && docker rm levoai-aifirewall
Stop AI Firewall
docker stop levoai-aifirewall
Uninstall AI Firewall
docker stop levoai-aifirewall && docker rm levoai-aifirewall
Troubleshooting
Container Fails to Start
Check the container logs for errors:
docker logs levoai-aifirewall
Common causes:
- Missing or invalid config: Ensure the config file path is correct and the
upstream.addressis reachable from the Docker host. - Invalid credentials: Verify your
LEVOAI_AUTH_KEYandLEVOAI_ORG_IDare correct. - Network connectivity: Confirm the host can reach your upstream LLM provider and
api.levo.aion port443.
Enable Debug Logging
Stop and re-run the container with RUST_LOG=debug:
docker stop levoai-aifirewall && docker rm levoai-aifirewall
docker run -d \
--name levoai-aifirewall \
--restart unless-stopped \
-p 8080:8080 \
-e LEVOAI_BASE_URL="https://api.levo.ai" \
-e LEVOAI_AUTH_KEY="<Authorization Key>" \
-e LEVOAI_ORG_ID="<Organisation ID>" \
-e LEVOAI_ENV_NAME="<Environment Name>" \
-e LEVOAI_SATELLITE_URL="<Satellite URL>" \
-e RUST_LOG="debug" \
-v /path/to/vigil.yaml:/app/config/vigil.yaml:ro \
levoai/ai-firewall:latest
Need Help?
For further assistance, please reach out to support@levo.ai.