Skip to content

Container Deployment

Use containers when your environment already uses Docker, Compose, or container orchestration.

Container host requirements

Environment CPU Memory Disk Notes
Lab 2 vCPU 4 GB 20 GB Single Core and Managerd container.
Small production 4 vCPU 8 GB 50 GB Persistent logs and config volumes.
Medium production 8 vCPU 16 GB 100 GB Add log forwarding and resource limits.
Large production 16+ vCPU 32+ GB 250+ GB Use multiple Core nodes behind a load balancer.

Required host directories

sudo mkdir -p /srv/vnetarmor/config/core
sudo mkdir -p /srv/vnetarmor/config/managerd
sudo mkdir -p /srv/vnetarmor/certs
sudo mkdir -p /srv/vnetarmor/logs/core
sudo mkdir -p /srv/vnetarmor/logs/managerd
sudo mkdir -p /srv/vnetarmor/state

Example Compose layout

services:
  core:
    image: registry.example.com/vnetarmor/core:<version>
    container_name: vnetarmor-core
    restart: unless-stopped
    ports:
      - "80:8100"
      - "443:8443"
    volumes:
      - /srv/vnetarmor/config/core:/etc/vnetarmor/core:ro
      - /srv/vnetarmor/certs:/opt/vnetarmor/certs:ro
      - /srv/vnetarmor/logs/core:/var/log/vnetarmor/core
      - /srv/vnetarmor/state:/var/lib/vnetarmor
    environment:
      - VNETARMOR_ACTIVATION_TOKEN=${VNETARMOR_ACTIVATION_TOKEN}
    deploy:
      resources:
        limits:
          memory: 1024M

  managerd:
    image: registry.example.com/vnetarmor/managerd:<version>
    container_name: vnetarmor-managerd
    restart: unless-stopped
    ports:
      - "9443:9443"
    volumes:
      - /srv/vnetarmor/config/managerd:/etc/vnetarmor/managerd:ro
      - /srv/vnetarmor/certs:/opt/vnetarmor/certs:ro
      - /srv/vnetarmor/logs/managerd:/var/log/vnetarmor/managerd

Resource limits

Set memory limits and restart policies. This avoids one management component exhausting host memory and affecting data-plane traffic.

Component Suggested starting limit
Core 1024 MB or higher depending on traffic and body inspection.
Managerd 512 MB.
WebGUI 384 MB.
Portal 768 MB.

Networking guidance

  • Use host networking only when explicitly required.
  • Keep Managerd administrative ports private or restricted.
  • Expose Core frontend ports to traffic sources.
  • Use mTLS for administrative access.
  • Mount certificates read-only.