Platform
ScaiWave ScaiGrid ScaiCore ScaiBot ScaiDrive ScaiKey Models Tools & Services
Solutions
Organisations Developers Internet Service Providers Managed Service Providers AI-in-a-Box
Resources
Support Documentation Blog Downloads
Company
About Research Careers Investment Opportunities Contact
Log in

Configuration

All configuration is via environment variables prefixed SCAIWAVE_. The authoritative source is app/config.py (a Pydantic Settings model); this page is curated for clarity.

Required#

Var Example Purpose
SCAIWAVE_SERVER_NAME scaiwave.example.com Public hostname (used for federation FQIDs, signed URL bases).
SCAIWAVE_DB_URL mysql+aiomysql://user:pass@host/scaiwave Database URL.
SCAIWAVE_REDIS_URL redis://host:6379/0 Redis URL.
SCAIWAVE_NATS_URL nats://host:4222 NATS URL.

Auth#

Var Default Purpose
SCAIWAVE_AUTH_MODE mock (dev), scaikey (prod) Which auth strategy to use.
SCAIWAVE_SCAIKEY_URL ScaiKey base URL.
SCAIWAVE_SCAIKEY_CLIENT_ID OAuth client id.
SCAIWAVE_SCAIKEY_CLIENT_SECRET OAuth client secret.

ScaiGrid (AI)#

Var Default Purpose
SCAIWAVE_SCAIGRID_URL ScaiGrid base URL.
SCAIWAVE_SCAIGRID_API_KEY Static fallback key. Use per-user exchange in prod.
SCAIWAVE_AI_EMBEDDING_MODEL scailar-4 Default embedding model for indexing + retrieval.
SCAIWAVE_SCAIGRID_DEFAULT_MODEL Default chat model when none specified.
SCAIWAVE_AI_INFERENCE_TIMEOUT 120 Seconds.

Storage#

Var Purpose
SCAIWAVE_S3_ENDPOINT MinIO / S3 endpoint.
SCAIWAVE_S3_BUCKET Bucket name.
SCAIWAVE_S3_ACCESS_KEY Access key.
SCAIWAVE_S3_SECRET_KEY Secret.
SCAIWAVE_S3_REGION Region (for AWS).
Var Default Purpose
SCAIWAVE_WEAVIATE_URL Weaviate URL.
SCAIWAVE_WEAVIATE_COLLECTION ScaiWaveMessages Messages collection name.

Calls#

Var Purpose
SCAIWAVE_LIVEKIT_URL LiveKit WS URL.
SCAIWAVE_LIVEKIT_API_KEY API key.
SCAIWAVE_LIVEKIT_API_SECRET API secret.

ClamAV#

Var Purpose
SCAIWAVE_CLAMAV_URL tcp://clamav:3310.
SCAIWAVE_CLAMAV_ENABLED true / false.

ScaiDrive#

Var Purpose
SCAIWAVE_SCAIDRIVE_URL ScaiDrive base URL.
SCAIWAVE_SCAIDRIVE_API_KEY Dev fallback (will 401 in prod; use per-user exchange).
SCAIWAVE_SCAIDRIVE_DEFAULT_SHARE_ID Default share for backup_media calls.

ScaiSearch (web search plugin)#

Var Purpose
SCAIWAVE_SCAISEARCH_URL SearXNG-compatible endpoint.
SCAIWAVE_SCAISEARCH_API_KEY Auth.

Operational#

Var Default Purpose
SCAIWAVE_DEBUG false Verbose logs + /docs Swagger UI.
SCAIWAVE_LOG_LEVEL INFO structlog level.
SCAIWAVE_LOG_FORMAT json json or pretty.
SCAIWAVE_TRUSTED_PROXIES empty Comma-separated IPs to trust X-Forwarded-For from.
SCAIWAVE_CORS_ALLOWED_ORIGINS http://localhost:5173 Comma-separated origins.

Federation#

Var Default Purpose
SCAIWAVE_FEDERATION_ENABLED false Master switch.
SCAIWAVE_FEDERATION_KEY_TTL_DAYS 365 Federation key rotation period.

Rate limits (defaults; overridable per tenant)#

Var Default Purpose
SCAIWAVE_RATE_MESSAGE_PER_MINUTE 60 Per-participant.
SCAIWAVE_RATE_API_PER_MINUTE 300 Per-token.

Where defaults live#

Anything not listed here is in app/config.py. To see the resolved config of a running server:

bash
1
.venv/bin/python -c "from app.config import Settings; import json; print(json.dumps(Settings().model_dump(), indent=2, default=str))"

(Don't run this against prod logs — it'll dump credentials.)

Updated 2026-05-17 13:10:03 View source (.md) rev 3