Skip to content

Axium documentation

Axium is an LLM gateway you run in your own infrastructure. Your applications keep using the official OpenAI and Google SDKs; Axium sits in between, holds the provider credentials, authenticates your apps with its own API keys and records every request where you decide.

  • Getting started


    Requirements, installation with Docker, Docker Compose or on Google Cloud, and the first login.

    Install Axium

  • Configuration


    Every environment variable, the database, the license, TLS behind a reverse proxy and the web console.

    Configure

  • Observability


    Where each request is recorded: PostgreSQL, HTTP endpoints, the formats available and the exact event schema.

    Observe

  • API & SDKs


    Authentication, proxy apps, the provider gateways and ready-to-paste SDK snippets in JavaScript, Python and Java.

    Integrate

  • Operations


    Health checks, upgrades, backups, sizing and troubleshooting.

    Operate

How it fits together

flowchart LR
    subgraph yours [Your applications]
        direction TB
        A[OpenAI SDK]
        B[Google Gen AI SDK]
        C[Any HTTP client]
    end
    subgraph axium [Axium · your infrastructure]
        direction TB
        CORE[core<br/>API · gateways · observability]
        UI[ui · web console]
        DB[(PostgreSQL)]
    end
    subgraph providers [Providers]
        direction TB
        O[OpenAI · Azure OpenAI]
        G[Google Gemini · Vertex AI]
    end
    yours -->|Bearer ax_… · native wire format| CORE
    UI -.->|browser · API_URL| CORE
    CORE --- DB
    CORE --> O
    CORE --> G
    CORE -.->|traces| OBS[(Observability<br/>PostgreSQL · HTTP)]

In thirty seconds

docker network create axium
docker run -d --name axium-db --network axium -e POSTGRES_USER=axium \
  -e POSTGRES_PASSWORD=change-this -e POSTGRES_DB=axium-api \
  -v axium-pgdata:/var/lib/postgresql/data postgres:17-alpine
docker run -d --name axium-core --network axium -p 3000:3000 \
  -e DATABASE_URL=postgresql://axium:change-this@axium-db:5432/axium-api \
  -e MASTER_ENCRYPTION_KEY=$(openssl rand -hex 32) \
  quay.io/axiumlab/core:latest
docker run -d --name axium-ui --network axium -p 3001:3001 \
  -e API_URL=http://localhost:3000/v1 quay.io/axiumlab/ui:latest
curl http://localhost:3000/v1/install/status

Then open http://localhost:3001 and log in with admin@axium.local / admin123456. The Docker guide explains each step, and why you must keep the master key printed by that second command.

Three things worth knowing beforehand

  • The master key cannot be rotated. MASTER_ENCRYPTION_KEY encrypts the provider credentials stored in the database. If it is lost or changed, none of them can be decrypted and they all have to be entered again by hand.
  • Schema migrations run automatically and only forward. A newer image migrates an older database at startup; an older image refuses to start on a newer database. Back up before upgrading, and ask before moving up a major version.
  • If you serve the ui over HTTPS, API_URL has to be https://. The browser blocks requests to http:// from an https page without a clear error.