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.
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:
| Provider | Upload transport | Air-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 URL | Air-gapped with the bundled MinIO; browsers must reach the MinIO endpoint |
gcs / azure | Presigned PUT (V4 signed URL / SAS URL) | Cloud deployments only — not an air-gapped path |
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
