Skip to content
Agent Gateway
Self-Hosting

Docker Compose

Run the Edgee AI Gateway with Docker Compose, connected or headless.

Run the gateway on a single host with Docker Compose. Save the compose file as compose.yml, put a .env beside it, then run:

docker compose up -d

The gateway listens on port 8080. Check that it is healthy:

curl http://localhost:8080/status

Pick the mode that matches your deployment. Connected is the default once LICENSE_KEY is set. Get LICENSE_KEY (and, in connected mode, EDGEE_SIGNATURE_KEY) from the Edgee Console under Org settings → On-Premise → Reveal deployment secrets.

The gateway fetches its configuration from Edgee on startup and keeps it in sync, and exports usage metering automatically — see below.

compose.yml
services:
  gateway:
    image: ghcr.io/edgee-ai/gateway:latest
    ports:
      - "8080:8080"
    environment:
      ENV: prod
      # Identifies your org and authorizes the gateway to pull its config from Edgee.
      LICENSE_KEY: ${LICENSE_KEY}
      EDGEE_SIGNATURE_KEY: ${EDGEE_SIGNATURE_KEY}
    restart: unless-stopped
.env
LICENSE_KEY=<reveal in console>
EDGEE_SIGNATURE_KEY=<reveal in console>

In connected mode the gateway also exports usage metering to Edgee at https://onprem-logs.edgee.ai/v1/logs, authenticated with your LICENSE_KEY, so usage shows up in the team dashboard. Override the destination with USAGE_OTLP_ENDPOINT (and USAGE_OTLP_HEADERS) to send it to your own collector instead — the license-key auth is still sent by default to that custom collector too; set USAGE_OTLP_USE_LICENSE_AUTH: "false" in environment to opt out.

Verify model traffic

After the health check, send an authenticated test model request. Then configure the CLI gateway endpoint and verify an agent request. A healthy process does not prove that provider credentials or the model registry are correct.