Environment Variables
Set all environment variables in deploy/.env. Required variables must be set before starting services.
Core
| Variable | Required | Description |
|---|---|---|
AISER_EDITION | Required | Set to enterprise |
LICENSE_KEY | Required | EE license key from aicser.com |
SECRET_KEY | Required | App secret. Generate: openssl rand -hex 32 |
ENCRYPTION_KEY | Required | Fernet key for credential encryption. Generate: python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())" |
ENVIRONMENT | Optional | Default: production. Set to development for debug logging |
Database (PostgreSQL)
| Variable | Required | Default | Description |
|---|---|---|---|
POSTGRES_USER | Required | aiser | PostgreSQL username |
POSTGRES_PASSWORD | Required | — | PostgreSQL password |
POSTGRES_DB | Required | aiser | PostgreSQL database name |
POSTGRES_SERVER | Optional | postgres | Host — use Docker service name |
POSTGRES_PORT | Optional | 5432 | PostgreSQL port |
ClickHouse
| Variable | Required | Default | Description |
|---|---|---|---|
CLICKHOUSE_DB | Optional | aiser_warehouse | ClickHouse database name |
CLICKHOUSE_USER | Optional | aiser | ClickHouse username |
CLICKHOUSE_PASSWORD | Optional | aiser_warehouse_password | ClickHouse password |
CLICKHOUSE_HOST | Optional | clickhouse | Host — use Docker service name |
CLICKHOUSE_PORT | Optional | 8123 | ClickHouse HTTP port |
Redis
| Variable | Required | Default | Description |
|---|---|---|---|
REDIS_URL | Optional | redis://redis:6379 | Full Redis connection URL |
REDIS_HOST | Optional | redis | Redis host |
REDIS_PORT | Optional | 6379 | Redis port |
AI (Azure OpenAI)
| Variable | Required | Description |
|---|---|---|
AZURE_OPENAI_API_KEY | Required for AI | Azure OpenAI API key |
AZURE_OPENAI_ENDPOINT | Required for AI | Endpoint URL (must end with /) |
AZURE_OPENAI_API_VERSION | Required for AI | API version, e.g. 2024-02-15-preview |
AZURE_OPENAI_DEPLOYMENT_NAME | Required for AI | Primary model deployment name |
AZURE_OPENAI_GPT41_API_KEY | Optional | Secondary model API key |
AZURE_OPENAI_GPT41_ENDPOINT | Optional | Secondary model endpoint |
AZURE_OPENAI_GPT41_API_VERSION | Optional | Secondary model API version |
AZURE_OPENAI_GPT41_DEPLOYMENT_NAME | Optional | Secondary model deployment name. Default: gpt-4.1-mini |
Authentication
| Variable | Required | Default | Description |
|---|---|---|---|
JWT_SECRET_KEY | Optional | — | JWT signing secret (overrides SECRET_KEY for JWT) |
JWT_ALGORITHM | Optional | HS256 | JWT algorithm |
JWT_EXPIRY_SECONDS | Optional | 604800 | Token expiry in seconds (default 7 days) |
SUPABASE_URL | Optional | — | Supabase project URL |
SUPABASE_SERVICE_ROLE_KEY | Optional | — | Supabase service role key |
KEYCLOAK_URL | Optional | — | Keycloak server URL |
KEYCLOAK_REALM | Optional | — | Keycloak realm name |
KEYCLOAK_CLIENT_ID | Optional | — | Keycloak client ID |
Storage
| Variable | Required | Default | Description |
|---|---|---|---|
STORAGE_BACKEND | Optional | (local) | Set to s3 or azure for external storage |
S3_PROVIDER | Optional | aws | S3 provider: aws, minio, cloudflare |
S3_ENDPOINT_URL | Optional | — | Endpoint URL for non-AWS S3 providers |
S3_ACCESS_KEY_ID | Optional | — | S3 access key |
S3_SECRET_ACCESS_KEY | Optional | — | S3 secret key |
S3_BUCKET_NAME | Optional | — | S3 bucket name |
S3_REGION | Optional | us-east-1 | S3 region |
AZURE_STORAGE_ACCOUNT | Optional | — | Azure storage account name |
AZURE_STORAGE_CONTAINER | Optional | — | Azure Blob container name |
AZURE_CLIENT_ID | Optional | — | Azure service principal client ID |
AZURE_CLIENT_SECRET | Optional | — | Azure service principal secret |
AZURE_TENANT_ID | Optional | — | Azure tenant ID |
Notifications
| Variable | Required | Default | Description |
|---|---|---|---|
TELEGRAM_BOT_TOKEN | Optional | — | Telegram bot token from @BotFather |
TELEGRAM_BOT_USERNAME | Optional | — | Telegram bot username |
TELEGRAM_WEBHOOK_URL | Optional | — | Public URL for Telegram webhook |
Client build args
These are Docker build arguments in docker-compose.ee.yml, not runtime env vars:
| Variable | Default | Description |
|---|---|---|
NEXT_PUBLIC_API_URL | http://localhost:8001 | Public URL of the API server |
NEXT_PUBLIC_SUPABASE_URL | — | Supabase project URL (client-side) |
NEXT_PUBLIC_SUPABASE_ANON_KEY | — | Supabase anon key (client-side) |
NEXT_PUBLIC_KEYCLOAK_URL | — | Keycloak URL (client-side) |
NEXT_PUBLIC_KEYCLOAK_REALM | — | Keycloak realm (client-side) |
NEXT_PUBLIC_KEYCLOAK_CLIENT_ID | — | Keycloak client ID (client-side) |