Self-Hosting Elixium (Beta)

Beta Access Required

Self-hosted deployment is available for enterprise customers. Contact [email protected] for registry credentials and your deployment package.

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.

Recommended: Use the Command Center

The fastest way to deploy is from your Command Center → Deployment tab. It generates a pre-configured deployment bundle (Docker Compose, Kubernetes, or Air-Gapped) with Terraform modules tailored to your cloud provider and compliance profile. Supports AWS, Azure, and GCP.

Prerequisites

  • Docker 20.10+ and Docker Compose 2.0+
  • 4 CPU cores and 8GB RAM minimum
  • 20GB disk space for images and data
  • Enterprise license (available from your Command Center or contact sales)

Quick Start

# Step 1: Download your deployment bundle from the Command Center

Go to Command Center → Deployment → Docker Compose → Download Bundle

# Step 2: Extract the bundle

$ unzip elixium-docker-compose-bundle-*.zip

$ cd elixium-docker-compose-bundle-*

# Step 3: Review pre-filled config (passwords are auto-generated)

$ nano .env # Verify settings, add GHCR credentials

# Step 4: Authenticate to Docker registry and start

$ docker login ghcr.io

$ ./scripts/init.sh

✓ Keycloak realm imported

✓ MinIO buckets created

✓ Database migrations complete

✓ AI provider configured

# Step 5: Access Elixium

$ open https://localhost

Default Credentials

  • Elixium: admin / admin (bundled Keycloak realm only — change on first login)
  • Keycloak Admin: admin / [your KEYCLOAK_ADMIN_PASSWORD from .env]
  • MinIO Console: [your MINIO_ROOT_USER] / [your MINIO_ROOT_PASSWORD from .env]

Included Services

ServicePortPurpose
Elixium App3000Web application
Elixium API3001Backend API
Keycloak8080Authentication & SSO
MinIO9000 / 9001Object storage (API / Console)
PostgreSQL5432Database
nginx80 / 443Reverse proxy & TLS termination

Architecture

Self-hosted Elixium runs the same application as the cloud version. A single configuration flag switches all service providers to their self-hosted equivalents:

CapabilityCloudSelf-Hosted
AuthenticationFirebase AuthKeycloak (OIDC)
DatabaseCloud SQL (PostgreSQL)PostgreSQL
File StorageGoogle Cloud StorageMinIO (S3-compatible)
AIGoogle GeminiGemini (default), OpenAI, Azure OpenAI, or Ollama (external GPU)

Configuration

The deployment uses a single ELIXIUM_MODE flag to control all services:

# Self-hosted mode — one flag controls the entire stack
ELIXIUM_MODE=local

# Required: License key (provided after purchase)
ELIXIUM_LICENSE_KEY=<your-license-key>

# Required: Set secure passwords
POSTGRES_PASSWORD=<your-secure-password>
KEYCLOAK_ADMIN_PASSWORD=<your-secure-password>
KEYCLOAK_CLIENT_SECRET=<your-secure-secret>
MINIO_ROOT_PASSWORD=<your-secure-password>

# Optional: Pin image version (recommended for production)
ELIXIUM_VERSION=latest

# Optional: AI provider (gemini, openai, azure-openai, ollama)
AI_PROVIDER=gemini
GOOGLE_AI_API_KEY=<your-api-key>

# Or use Ollama (requires external GPU host)
# AI_PROVIDER=ollama
# OLLAMA_HOST=http://gpu-host:11434

Bring Your Own Infrastructure

Already running Keycloak, PostgreSQL, or S3-compatible storage? Point Elixium at your existing services instead of using the bundled stack:

# Use your own Keycloak instance
KEYCLOAK_URL=https://sso.yourcompany.com
KEYCLOAK_CLIENT_SECRET=<your-client-secret>

# Use your own PostgreSQL
DATABASE_URL=postgresql://user:[email protected]/elixium

# Use your own S3-compatible storage (Wasabi, DigitalOcean Spaces, etc.)
MINIO_ENDPOINT=s3.yourcompany.com
MINIO_PORT=443
MINIO_ACCESS_KEY=<your-access-key>
MINIO_SECRET_KEY=<your-secret-key>

Troubleshooting

Check Service Health

docker compose ps
docker compose logs -f app
docker compose logs -f api

Run E2E Validation

The included test suite validates all services, authentication, and AI connectivity:

./scripts/test-e2e.sh

Reset Everything

docker compose down -v  # WARNING: Deletes all data
./scripts/init.sh

Enterprise Support

Need help with deployment, custom integrations, or have questions? Our enterprise support team is here to help.

Contact [email protected] or view pricing.