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.

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 (contact sales for beta access)

Quick Start

# Step 1: Authenticate to Docker registry

$ docker login ghcr.io

Username: [provided by sales team]

Password: [provided by sales team]

# Step 2: Extract deployment package

$ tar -xzf elixium-self-hosted.tar.gz

$ cd elixium-self-hosted

# Step 3: Configure environment

$ cp .env.example .env

$ nano .env # Set passwords (look for CHANGE_ME)

# Step 4: Initialize and start

$ ./scripts/init.sh

✓ Keycloak realm imported

✓ MinIO buckets created

✓ Database migrations complete

✓ AI provider configured

# Step 5: Access Elixium

$ open http://localhost:3000

🔐 Default Credentials

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

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.