Self-Hosting Elixium

Run the entire Elixium stack on your own infrastructure. Deploy via Docker Compose or Kubernetes with a single configuration flag. Built for air-gapped environments, compliance requirements, and total data sovereignty.

Docker & Kubernetes

Deploy with Docker Compose or Kustomize manifests

Air-Gapped Ready

Full offline operation with Ed25519 license validation

Multi-Cloud

Pre-configured bundles for AWS, GCP, and Azure

Deployment guides are in your Command Center

Self-hosted deployment docs, cloud-specific guides (AWS, GCP, Azure), update procedures, and infrastructure configuration are available from the Deploymenttab in your Command Center. You'll also find deployment bundle generation, cost estimation, and license management there.

What's included

Deployment Bundles

Pre-configured Docker Compose, Kubernetes, and air-gapped packages tailored to your infrastructure profile.

Cloud-Specific Guides

Step-by-step deployment guides for AWS (ECS/EKS), Google Cloud (Cloud Run/GKE), and Azure (Container Apps/AKS).

Update & Migration Procedures

Rolling updates, air-gapped update workflows, and bring-your-own-image (BYOI) support.

Compliance Documentation

HIPAA, FedRAMP, and DoD STIG compliance docs, plus S-BOM exports in SPDX and CycloneDX formats.

License Management

Ed25519-signed offline licenses, key regeneration, and expiry tracking.

Local AI: Ollama or any OpenAI-compatible server

Self-hosted deployments can run Elixium's AI features entirely on-premises. By default, the backend talks to an Ollama server. Set AI_API_FORMAT=openai-compat to instead talk to any OpenAI-compatible server — same feature set, no capability expansion, just a different API format.

Compatible servers include: llama.cpp, vLLM, LiteLLM, oobabooga, LM Studio, and real OpenAI.

# Ollama (default — unchanged)
OLLAMA_HOST=http://ollama.internal:11434
OLLAMA_MODEL=llama3
# OpenAI-compatible (vLLM / llama.cpp / LiteLLM / OpenAI)
AI_API_FORMAT=openai-compat
OLLAMA_HOST=https://api.openai.com # or your local endpoint
OLLAMA_MODEL=gpt-4o-mini # or your local model
AI_COMPAT_API_KEY=sk-your-key # optional; omit if server requires no auth

AI_API_FORMAT is a routing switch only — it does not change the AI feature set. Streaming, multi-turn memory, fallback providers, and per-request overrides remain out of scope on the self-hosted path.

Story attachments: storage & upload transport

Files attached to stories are stored behind a provider abstraction selected by ATTACHMENT_PROVIDER_TYPE (local | s3 | gcs | azure). When unset, the backend selects s3 if MINIO_ENDPOINT is present (the docker-compose stack ships MinIO), otherwise local-fs — the zero-dependency air-gapped floor.

The provider determines the upload transport. Browsers upload differently depending on your storage backend:

ProviderUpload transportAir-gap implications
local (local-fs)Direct stream — bytes flow through the backend to disk; no presigned URLs (there is no object server to sign for)Fully air-gapped with zero extra services; backend bandwidth carries uploads
s3 (MinIO / AWS S3)Presigned PUT — the browser uploads to the object store directly with a short-lived URLAir-gapped with the bundled MinIO; browsers must reach the MinIO endpoint
gcs / azurePresigned PUT (V4 signed URL / SAS URL)Cloud deployments only — not an air-gapped path
# Air-gapped floor (default when MinIO is absent)
ATTACHMENT_PROVIDER_TYPE=local
ATTACHMENT_LOCAL_DIR=/data/elixium-attachments
# MinIO / S3-compatible (compose default)
ATTACHMENT_PROVIDER_TYPE=s3
ATTACHMENT_S3_BUCKET=elixium-uploads
# Optional: per-file size cap (bytes; default 25 MB)
ATTACHMENT_MAX_BYTES=26214400

Attachment text extraction and excerpts run locally on the backend in every mode — no cloud document services. AI summaries (when configured) route through the same AI_PROVIDER switch as everything else.

Self-hosted deployment is available on the Self-Hosted ($499/year) and Enterprise plans. View pricing