aYOUne

Environment Variables

aYOUne verwendet eine einzelne ConfigMap (ayoune in K8s, .env in Compose) für alle Services. Das macht das Multi-Service-Setup einfacher zu pflegen — eine Variable, die du einmal setzt, ist überall verfügbar.

Pflicht-Variablen

Variable Default Beschreibung
MONGO_URL MongoDB-Connection-String (Replicaset!)
REDIS_URL Redis-Connection (redis://...)
JWT_SECRET Min. 32 Zeichen, geheim
AYOUNE_VERSION aktuelle Plattform-Version (für Audit-Tagging)
LICENSE_KEY trial HMAC-SHA256 License-Key
BASE_URL Public-Hostname (z.B. https://app.firma.tld)

Optionale Foundation

Variable Default Beschreibung
MONGO_DB_NAME ayoune DB-Name innerhalb des Replicasets
REDIS_DB 0 Redis-Logical-DB
JWT_REFRESH_SECRET = JWT_SECRET Eigenes Secret für Refresh-Tokens
JWT_ACCESS_TTL 15m Access-Token Lebensdauer
JWT_REFRESH_TTL 30d Refresh-Token Lebensdauer
STORAGE_TYPE gcs gcs / s3 / local
STORAGE_BUCKET Bucket-Name

Module-spezifisch

Variable Modul Zweck
OPENAI_API_KEY ai Default LLM-Provider
ANTHROPIC_API_KEY ai Claude-Models
STRIPE_SECRET_KEY payments Stripe-Charges
PAYPAL_CLIENT_ID payments PayPal-Webhooks
TWILIO_ACCOUNT_SID notifications SMS / Voice
SENDGRID_API_KEY notifications Mail-Versand
VAPID_PUBLIC / VAPID_PRIVATE notifications Web-Push
GOOGLE_CLOUD_PROJECT infrastructure GCP-Auth
AYOUNE_WORKER_PROBE_PORT core Worker-Probe-Port (default 3000)
AYOUNE_RELEASE_NAME core Scope-Name für registerModuleStates

Service-Discovery

Im K8s-Setup verbinden sich Services intern via DNS — kein extra Setup nötig:

api-crm.develop.svc.cluster.local:3000

Im Compose-Setup nutzt jedes Service den Namen aus docker-compose.yml:

api-crm:3000

CORS

Variable Default Beschreibung
CORS_ORIGIN_OVERRIDE Komma-Liste zusätzlicher Origins (überspringt aYOUneCustomers.allowedOrigins[])
CORS_ALLOW_CREDENTIALS true Access-Control-Allow-Credentials

Boot-Watchdog

Seit Core 2026.46.0 killt ein 60s-Boot-Watchdog Pods, deren essentielle Init-Phase (DB + Models + License) nicht durchläuft. Tuning:

AYOUNE_BOOT_WATCHDOG_MS=60000   # default
AYOUNE_BOOT_WATCHDOG_DISABLED=false

Background-Subsysteme (Logger, JobQ, Monitoring) blocken ay.ready nicht — Probleme dort tauchen als subsystem_error auf, nicht als Crash.

Secrets via External-Secret-Manager

Statt Plain-Text-Secrets in Compose/Helm:

  • GKE: Secret-Manager mit Workload-Identity
  • Hetzner: HCP Vault Secrets oder bitwarden secrets
  • AWS: Secrets Manager

Die ConfigMap enthält dann nur Referenzen, kein Klartext.

Siehe auch: Docker-Compose, Kubernetes, Upgrades.