# === .env neben der jeweiligen docker-compose.*.yml kopieren ==================== # Docker Compose ersetzt ${VARIABLE} beim Start. # # Pro Umgebung eigene Datei (z. B. ~/docker/kairo/.env für Prod, # ~/docker/kairo-dev/.env für Dev) — dieselben SCHLÜSSEL, unterschiedliche Werte. # Kein separates DEV_APP_URL vs APP_URL: immer APP_URL, ALLOWED_ORIGINS, DB_*, … # ─── Typische Werte PROD (docker-compose.yml) ───────────────────────────────── # DB_NAME=kairo # DB_USER=kairo_user # DB_PASSWORD=… # APP_URL=https://kairo.jinkendo.de # ALLOWED_ORIGINS=https://kairo.jinkendo.de # ENVIRONMENT=production # KAIRO_MEDIA_HOST=/kairo-media # MEDIA_ROOT=/app/media # ─── Typische Werte DEV (docker-compose.dev-env.yml) ───────────────────────── # DB_NAME=kairo_dev # DB_USER=kairo_dev # DB_PASSWORD=dev_password # APP_URL=https://dev.kairo.jinkendo.de # ALLOWED_ORIGINS=https://dev.kairo.jinkendo.de,http://192.168.2.49:3097 # ENVIRONMENT=development # KAIRO_MEDIA_HOST=/kairo-media/dev # MEDIA_ROOT=/app/media # ─── Ab hier: eine ausfüllbare Vorlage (bei uns meist Prod-Defaults) ─────────── DB_HOST=postgres DB_PORT=5432 DB_NAME=kairo DB_USER=kairo_user DB_PASSWORD=CHANGE_ME_SECURE_PASSWORD OPENROUTER_API_KEY=your_api_key_here OPENROUTER_MODEL=anthropic/claude-sonnet-4 # Vereins-Kontingente hart blockieren (KI-Kosten!). Nur 1, true oder yes aktivieren. CLUB_FEATURE_ENFORCE=1 # KI-Debug (Docker): KAIRO_AI_DEBUG in docker-compose*.yml angebunden — 1 = ausführliche WARN-Logs. # KAIRO_AI_DEBUG=1 SMTP_HOST=smtp.example.com SMTP_PORT=587 SMTP_USER=noreply@jinkendo.de SMTP_PASS=your_smtp_password SMTP_FROM=noreply@jinkendo.de SMTP_SSL= SMTP_STARTTLS= AUTO_ADMIN_FIRST_USER=true ADMIN_BOOTSTRAP_EMAILS= APP_URL=https://kairo.jinkendo.de ALLOWED_ORIGINS=https://kairo.jinkendo.de ENVIRONMENT=production # Medien (Docker Compose): KAIRO_MEDIA_HOST = Verzeichnis auf dem Host (Bind-Mount), # MEDIA_ROOT = gleicher Pfad im Container (muss mit dem Mount-Ziel übereinstimmen). KAIRO_MEDIA_HOST=/kairo-media MEDIA_ROOT=/app/media MEDIAWIKI_API_URL=https://karatetrainer.net/api.php MEDIAWIKI_USER=Jinkendo MEDIAWIKI_PASSWORD=CHANGE_ME MEDIAWIKI_CATEGORY_EXERCISES=Übungen MEDIAWIKI_CATEGORY_SKILLS=Fähigkeitsbeschreibung MEDIAWIKI_CATEGORY_METHODS=Methodenbeschreibung MEDIAWIKI_CATEGORY_MODELS=Reifegradmodelle