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

Sign-in required

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 Deployment tab 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.

.env
OLLAMA_HOST=http://ollama.internal:11434OLLAMA_MODEL=llama3
Note
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
locallocal-fsDirect stream. Bytes flow through the backend to disk; no presigned URLs (there is no object server to sign for).Fully air-gappedZero extra services; backend bandwidth carries uploads.
s3MinIO / AWS S3Presigned PUT. The browser uploads to the object store directly with a short-lived URL.Air-gapped with MinIOBrowsers must reach the MinIO endpoint.
gcs / azureV4 signed URL / SAS URLPresigned PUT. Cloud object storage with provider-signed URLs.Cloud onlyNot an air-gapped path.
.env
ATTACHMENT_PROVIDER_TYPE=localATTACHMENT_LOCAL_DIR=/data/elixium-attachmentsATTACHMENT_MAX_BYTES=26214400  # optional per-file cap in bytes; default 25 MB

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 Standard ($79/user/month, minimum 10 seats) and Enterprise & Government plans. View pricing