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.
-
Configuration
Every environment variable, the database, the license, TLS behind a reverse proxy and the web console.
-
Observability
Where each request is recorded: PostgreSQL, HTTP endpoints, the formats available and the exact event schema.
-
API & SDKs
Authentication, proxy apps, the provider gateways and ready-to-paste SDK snippets in JavaScript, Python and Java.
-
Operations
Health checks, upgrades, backups, sizing and troubleshooting.
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_KEYencrypts 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_URLhas to behttps://. The browser blocks requests tohttp://from anhttpspage without a clear error.