{"repo": "byakuyakutchiki/luna-exploitants", "files": {".env.template": {"71550c05257963badfe0fb6deb7381b05486dbc2": {"t": 1785747118.2557368, "n": 21705, "h": "81091a63d77f999c", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n# Appels vocaux sortants (Luna appelle le telephone de l'utilisateur)\n# URL publique HTTPS de votre serveur — Twilio s'y connecte pour le Media Stream.\n# Exemple : https://luna.mondomaine.fr\n# Laisser vide pour desactiver les appels vocaux sortants.\nVOICE_CALLBACK_URL=\n# Duree max d'un appel vocal en secondes (defaut: 600 = 10 minutes)\nVOICE_MAX_DURATION_SECONDS=600\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. MOTEUR IA - Choix du fournisseur LLM (Intelligence de Luna)\n# =============================================================================\n# Luna supporte 3 fournisseurs. CHOISISSEZ-EN UN SEUL et renseignez\n# LLM_PROVIDER + LLM_API_KEY. Les 3 ont des APIs compatibles.\n#\n# ┌─────────────┬───────────────────────────────┬────────────────────────────┐\n# │ Provider │ Obtenir une cle │ Cout / interaction chat │\n# ├─────────────┼───────────────────────────────┼────────────────────────────┤\n# │ openai │ platform.openai.com │ ~0.005€ (gpt-4o-mini) │\n# │ deepseek │ platform.deepseek.com │ ~0.001€ (deepseek-chat) │\n# │ kimi │ platform.moonshot.cn │ ~0.003€ (moonshot-v1-8k) │\n# └─────────────┴───────────────────────────────┴────────────────────────────┘\n#\n# ETAPES:\n# 1. Choisir un provider (openai recommande si budget ok)\n# 2. Creer un compte sur le site du provider\n# 3. Generer une cle API (commence par sk-)\n# 4. Renseigner LLM_PROVIDER et LLM_API_KEY ci-dessous\n# =============================================================================\n\n# Provider actif : openai | deepseek | kimi\nLLM_PROVIDER=openai\n\n# Cle API du provider choisi (commence par sk-)\nLLM_API_KEY=\n\n# Modele a utiliser (laisser vide = modele par defaut du provider)\n# openai : gpt-4o-mini (defaut) | gpt-4o | gpt-4-turbo\n# deepseek: deepseek-chat (defaut) | deepseek-reasoner\n# kimi : moonshot-v1-8k (defaut) | moonshot-v1-32k | moonshot-v1-128k\nLLM_MODEL=\n\n# Cle OpenAI NATIVE — requise pour Vision (form filler), TTS, STT/Whisper et\n# l'appel vocal temps-reel. DeepSeek/Kimi ne fournissent PAS ces services.\n# - LLM_PROVIDER=openai : laisser vide, LLM_API_KEY est reutilisee.\n# - LLM_PROVIDER=deepseek/kimi : renseigner ici une vraie cle sk-... OpenAI\n# si vous voulez la voix / remplissage de formulaire. Sinon, chat seul.\nOPENAI_API_KEY=\n\n# Voix pour les conversations vocales (OpenAI TTS)\n# Choix: alloy, echo, fable, onyx, nova, shimmer, coral\nOPENAI_VOICE=coral\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 5. (RETIRE) TAVUS - Avatar Video Luna\n# =============================================================================\n# La visio par avatar Tavus a ete retiree du produit. Luna fonctionne en\n# Chat + Voix + SMS. Aucune cle Tavus n'est requise.\n# =============================================================================\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS (identique a \"lite\" depuis le retrait de la visio Tavus)\n# \"lite\" = Chat + Voix + SMS\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] LLM_PROVIDER choisi (openai | deepseek | kimi)\n# [ ] LLM_API_KEY rempli (cle du provider choisi)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] python tools/test_llm_providers.py → ✅ avant lancement\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "2cd5db91d432f54a6812f98e0a222cac66effb59": {"t": 1785770537.4855528, "n": 21705, "h": "81091a63d77f999c", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n# Appels vocaux sortants (Luna appelle le telephone de l'utilisateur)\n# URL publique HTTPS de votre serveur — Twilio s'y connecte pour le Media Stream.\n# Exemple : https://luna.mondomaine.fr\n# Laisser vide pour desactiver les appels vocaux sortants.\nVOICE_CALLBACK_URL=\n# Duree max d'un appel vocal en secondes (defaut: 600 = 10 minutes)\nVOICE_MAX_DURATION_SECONDS=600\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. MOTEUR IA - Choix du fournisseur LLM (Intelligence de Luna)\n# =============================================================================\n# Luna supporte 3 fournisseurs. CHOISISSEZ-EN UN SEUL et renseignez\n# LLM_PROVIDER + LLM_API_KEY. Les 3 ont des APIs compatibles.\n#\n# ┌─────────────┬───────────────────────────────┬────────────────────────────┐\n# │ Provider │ Obtenir une cle │ Cout / interaction chat │\n# ├─────────────┼───────────────────────────────┼────────────────────────────┤\n# │ openai │ platform.openai.com │ ~0.005€ (gpt-4o-mini) │\n# │ deepseek │ platform.deepseek.com │ ~0.001€ (deepseek-chat) │\n# │ kimi │ platform.moonshot.cn │ ~0.003€ (moonshot-v1-8k) │\n# └─────────────┴───────────────────────────────┴────────────────────────────┘\n#\n# ETAPES:\n# 1. Choisir un provider (openai recommande si budget ok)\n# 2. Creer un compte sur le site du provider\n# 3. Generer une cle API (commence par sk-)\n# 4. Renseigner LLM_PROVIDER et LLM_API_KEY ci-dessous\n# =============================================================================\n\n# Provider actif : openai | deepseek | kimi\nLLM_PROVIDER=openai\n\n# Cle API du provider choisi (commence par sk-)\nLLM_API_KEY=\n\n# Modele a utiliser (laisser vide = modele par defaut du provider)\n# openai : gpt-4o-mini (defaut) | gpt-4o | gpt-4-turbo\n# deepseek: deepseek-chat (defaut) | deepseek-reasoner\n# kimi : moonshot-v1-8k (defaut) | moonshot-v1-32k | moonshot-v1-128k\nLLM_MODEL=\n\n# Cle OpenAI NATIVE — requise pour Vision (form filler), TTS, STT/Whisper et\n# l'appel vocal temps-reel. DeepSeek/Kimi ne fournissent PAS ces services.\n# - LLM_PROVIDER=openai : laisser vide, LLM_API_KEY est reutilisee.\n# - LLM_PROVIDER=deepseek/kimi : renseigner ici une vraie cle sk-... OpenAI\n# si vous voulez la voix / remplissage de formulaire. Sinon, chat seul.\nOPENAI_API_KEY=\n\n# Voix pour les conversations vocales (OpenAI TTS)\n# Choix: alloy, echo, fable, onyx, nova, shimmer, coral\nOPENAI_VOICE=coral\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 5. (RETIRE) TAVUS - Avatar Video Luna\n# =============================================================================\n# La visio par avatar Tavus a ete retiree du produit. Luna fonctionne en\n# Chat + Voix + SMS. Aucune cle Tavus n'est requise.\n# =============================================================================\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS (identique a \"lite\" depuis le retrait de la visio Tavus)\n# \"lite\" = Chat + Voix + SMS\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] LLM_PROVIDER choisi (openai | deepseek | kimi)\n# [ ] LLM_API_KEY rempli (cle du provider choisi)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] python tools/test_llm_providers.py → ✅ avant lancement\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "d5419b69ac2b12c96d7c31b8a0011795f6d310ca": {"t": 1785770542.7588356, "n": 23293, "h": "4fec121359488e16", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n# Appels vocaux sortants (Luna appelle le telephone de l'utilisateur)\n# URL publique HTTPS de votre serveur — Twilio s'y connecte pour le Media Stream.\n# Exemple : https://luna.mondomaine.fr\n# Laisser vide pour desactiver les appels vocaux sortants.\nVOICE_CALLBACK_URL=\n# Duree max d'un appel vocal en secondes (defaut: 600 = 10 minutes)\nVOICE_MAX_DURATION_SECONDS=600\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. MOTEUR IA - Choix du fournisseur LLM (Intelligence de Luna)\n# =============================================================================\n# Luna supporte 3 fournisseurs. CHOISISSEZ-EN UN SEUL et renseignez\n# LLM_PROVIDER + LLM_API_KEY. Les 3 ont des APIs compatibles.\n#\n# ┌─────────────┬───────────────────────────────┬────────────────────────────┐\n# │ Provider │ Obtenir une cle │ Cout / interaction chat │\n# ├─────────────┼───────────────────────────────┼────────────────────────────┤\n# │ openai │ platform.openai.com │ ~0.005€ (gpt-4o-mini) │\n# │ deepseek │ platform.deepseek.com │ ~0.001€ (deepseek-chat) │\n# │ kimi │ platform.moonshot.cn │ ~0.003€ (moonshot-v1-8k) │\n# └─────────────┴───────────────────────────────┴────────────────────────────┘\n#\n# ETAPES:\n# 1. Choisir un provider (openai recommande si budget ok)\n# 2. Creer un compte sur le site du provider\n# 3. Generer une cle API (commence par sk-)\n# 4. Renseigner LLM_PROVIDER et LLM_API_KEY ci-dessous\n# =============================================================================\n\n# Provider actif : openai | deepseek | kimi\nLLM_PROVIDER=openai\n\n# Cle API du provider choisi (commence par sk-)\nLLM_API_KEY=\n\n# Modele a utiliser (laisser vide = modele par defaut du provider)\n# openai : gpt-4o-mini (defaut) | gpt-4o | gpt-4-turbo\n# deepseek: deepseek-chat (defaut) | deepseek-reasoner\n# kimi : moonshot-v1-8k (defaut) | moonshot-v1-32k | moonshot-v1-128k\nLLM_MODEL=\n\n# Cle OpenAI NATIVE — requise pour Vision (form filler), TTS, STT/Whisper et\n# l'appel vocal temps-reel. DeepSeek/Kimi ne fournissent PAS ces services.\n# - LLM_PROVIDER=openai : laisser vide, LLM_API_KEY est reutilisee.\n# - LLM_PROVIDER=deepseek/kimi : renseigner ici une vraie cle sk-... OpenAI\n# si vous voulez la voix/visio/remplissage de formulaire. Sinon, chat seul.\nOPENAI_API_KEY=\n\n# Voix pour les conversations vocales (OpenAI TTS)\n# Choix: alloy, echo, fable, onyx, nova, shimmer, coral\nOPENAI_VOICE=coral\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Replicas > Parcourir les replicas de stock > noter l'ID (commence par r)\n# 4. Personas > New Persona > Nommer \"Luna\" > choisir le replica > Copier le Persona ID\n#\n# IMPORTANT — IDs SPECIFIQUES A VOTRE COMPTE:\n# Chaque compte Tavus a ses propres IDs. Un Persona ID ou Replica ID d'un autre\n# compte ne fonctionnera PAS avec votre cle API (erreur 404 au demarrage de la video).\n# Utilisez UNIQUEMENT les IDs visibles dans votre propre dashboard Tavus.\n#\n# MINIMUM REQUIS : TAVUS_LUNA_PERSONA_ID suffit si votre persona a un replica par defaut.\n# TAVUS_LUNA_REPLICA_ID est optionnel — laissez vide si votre persona en a deja un.\n# =============================================================================\n\n# Cle API Tavus (votre compte)\nTAVUS_API_KEY=\n\n# ID de votre persona Luna (commence par p) — visible dans Tavus > Personas\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica (commence par r) — optionnel si votre persona a un replica par defaut\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] LLM_PROVIDER choisi (openai | deepseek | kimi)\n# [ ] LLM_API_KEY rempli (cle du provider choisi)\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] python tools/test_llm_providers.py → ✅ avant lancement\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "185810123768c605367902ae18e74a32f7773013": {"t": 1785770544.2036774, "n": 22895, "h": "95d2ec452cd8bd8f", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n# Appels vocaux sortants (Luna appelle le telephone de l'utilisateur)\n# URL publique HTTPS de votre serveur — Twilio s'y connecte pour le Media Stream.\n# Exemple : https://luna.mondomaine.fr\n# Laisser vide pour desactiver les appels vocaux sortants.\nVOICE_CALLBACK_URL=\n# Duree max d'un appel vocal en secondes (defaut: 600 = 10 minutes)\nVOICE_MAX_DURATION_SECONDS=600\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. MOTEUR IA - Choix du fournisseur LLM (Intelligence de Luna)\n# =============================================================================\n# Luna supporte 3 fournisseurs. CHOISISSEZ-EN UN SEUL et renseignez\n# LLM_PROVIDER + LLM_API_KEY. Les 3 ont des APIs compatibles.\n#\n# ┌─────────────┬───────────────────────────────┬────────────────────────────┐\n# │ Provider │ Obtenir une cle │ Cout / interaction chat │\n# ├─────────────┼───────────────────────────────┼────────────────────────────┤\n# │ openai │ platform.openai.com │ ~0.005€ (gpt-4o-mini) │\n# │ deepseek │ platform.deepseek.com │ ~0.001€ (deepseek-chat) │\n# │ kimi │ platform.moonshot.cn │ ~0.003€ (moonshot-v1-8k) │\n# └─────────────┴───────────────────────────────┴────────────────────────────┘\n#\n# ETAPES:\n# 1. Choisir un provider (openai recommande si budget ok)\n# 2. Creer un compte sur le site du provider\n# 3. Generer une cle API (commence par sk-)\n# 4. Renseigner LLM_PROVIDER et LLM_API_KEY ci-dessous\n# =============================================================================\n\n# Provider actif : openai | deepseek | kimi\nLLM_PROVIDER=openai\n\n# Cle API du provider choisi (commence par sk-)\nLLM_API_KEY=\n\n# Modele a utiliser (laisser vide = modele par defaut du provider)\n# openai : gpt-4o-mini (defaut) | gpt-4o | gpt-4-turbo\n# deepseek: deepseek-chat (defaut) | deepseek-reasoner\n# kimi : moonshot-v1-8k (defaut) | moonshot-v1-32k | moonshot-v1-128k\nLLM_MODEL=\n\n# Voix pour les conversations vocales (OpenAI TTS)\n# Choix: alloy, echo, fable, onyx, nova, shimmer, coral\nOPENAI_VOICE=coral\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Replicas > Parcourir les replicas de stock > noter l'ID (commence par r)\n# 4. Personas > New Persona > Nommer \"Luna\" > choisir le replica > Copier le Persona ID\n#\n# IMPORTANT — IDs SPECIFIQUES A VOTRE COMPTE:\n# Chaque compte Tavus a ses propres IDs. Un Persona ID ou Replica ID d'un autre\n# compte ne fonctionnera PAS avec votre cle API (erreur 404 au demarrage de la video).\n# Utilisez UNIQUEMENT les IDs visibles dans votre propre dashboard Tavus.\n#\n# MINIMUM REQUIS : TAVUS_LUNA_PERSONA_ID suffit si votre persona a un replica par defaut.\n# TAVUS_LUNA_REPLICA_ID est optionnel — laissez vide si votre persona en a deja un.\n# =============================================================================\n\n# Cle API Tavus (votre compte)\nTAVUS_API_KEY=\n\n# ID de votre persona Luna (commence par p) — visible dans Tavus > Personas\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica (commence par r) — optionnel si votre persona a un replica par defaut\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] LLM_PROVIDER choisi (openai | deepseek | kimi)\n# [ ] LLM_API_KEY rempli (cle du provider choisi)\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] python tools/test_llm_providers.py → ✅ avant lancement\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "cd7a61740f4c51ef3c2d6aa7588f5209b5d54e1d": {"t": 1785770545.6628985, "n": 22916, "h": "b155565710ae15eb", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n# Appels vocaux sortants (Luna appelle le telephone de l'utilisateur)\n# URL publique HTTPS de votre serveur — Twilio s'y connecte pour le Media Stream.\n# Exemple : https://luna.mondomaine.fr\n# Laisser vide pour desactiver les appels vocaux sortants.\nVOICE_CALLBACK_URL=\n# Duree max d'un appel vocal en secondes (defaut: 600 = 10 minutes)\nVOICE_MAX_DURATION_SECONDS=600\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4o-mini\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Replicas > Parcourir les replicas de stock > noter l'ID (commence par r)\n# 4. Personas > New Persona > Nommer \"Luna\" > choisir le replica > Copier le Persona ID\n#\n# IMPORTANT — IDs SPECIFIQUES A VOTRE COMPTE:\n# Chaque compte Tavus a ses propres IDs. Un Persona ID ou Replica ID d'un autre\n# compte ne fonctionnera PAS avec votre cle API (erreur 404 au demarrage de la video).\n# Utilisez UNIQUEMENT les IDs visibles dans votre propre dashboard Tavus.\n#\n# MINIMUM REQUIS : TAVUS_LUNA_PERSONA_ID suffit si votre persona a un replica par defaut.\n# TAVUS_LUNA_REPLICA_ID est optionnel — laissez vide si votre persona en a deja un.\n# =============================================================================\n\n# Cle API Tavus (votre compte)\nTAVUS_API_KEY=\n\n# ID de votre persona Luna (commence par p) — visible dans Tavus > Personas\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica (commence par r) — optionnel si votre persona a un replica par defaut\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "d8df15e696006458eed961275e84fb4d158d58ec": {"t": 1785770547.2332575, "n": 22546, "h": "ade4bc08aa952cbe", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4o-mini\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Replicas > Parcourir les replicas de stock > noter l'ID (commence par r)\n# 4. Personas > New Persona > Nommer \"Luna\" > choisir le replica > Copier le Persona ID\n#\n# IMPORTANT — IDs SPECIFIQUES A VOTRE COMPTE:\n# Chaque compte Tavus a ses propres IDs. Un Persona ID ou Replica ID d'un autre\n# compte ne fonctionnera PAS avec votre cle API (erreur 404 au demarrage de la video).\n# Utilisez UNIQUEMENT les IDs visibles dans votre propre dashboard Tavus.\n#\n# MINIMUM REQUIS : TAVUS_LUNA_PERSONA_ID suffit si votre persona a un replica par defaut.\n# TAVUS_LUNA_REPLICA_ID est optionnel — laissez vide si votre persona en a deja un.\n# =============================================================================\n\n# Cle API Tavus (votre compte)\nTAVUS_API_KEY=\n\n# ID de votre persona Luna (commence par p) — visible dans Tavus > Personas\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica (commence par r) — optionnel si votre persona a un replica par defaut\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "44dff24fd005991d4f861fb5f4ca4daf8ef93d9b": {"t": 1785770548.6342723, "n": 21967, "h": "1d045340b423ae01", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.07 EUR/SMS envoye (France) — Twilio $0.0798/segment\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4o-mini\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n# IDs des prix Stripe pour les articles premium du monde Luna (one-time)\n# Crees automatiquement par stripe_setup.py (4.99 EUR chaque)\nSTRIPE_PRICE_WORLD_AURORA=\nSTRIPE_PRICE_WORLD_WINGS=\nSTRIPE_PRICE_WORLD_CRYSTAL=\nSTRIPE_PRICE_WORLD_PATH=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel (79 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 8.15€ ≤ budget 8.59€)\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=40\nPLAN_ESSENTIEL_VIDEO_MINUTES=12\nPLAN_ESSENTIEL_SMS_LIMIT=25\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort (149 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 17.40€ ≤ budget 18.29€)\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=100\nPLAN_CONFORT_VIDEO_MINUTES=28\nPLAN_CONFORT_SMS_LIMIT=50\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium (249 EUR/mois) ---\n# Bulletproof: meme a 100% usage, l'exploitant reste rentable (API max 32.10€ ≤ budget 34.29€)\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=180\nPLAN_PREMIUM_VIDEO_MINUTES=55\nPLAN_PREMIUM_SMS_LIMIT=100\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat et instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 19. LUNA SHIELD - ECOSYSTEME SECURITE ANTI-INTRUSION\n# =============================================================================\n# Documentation: TEMPLATE/serveur/security/README.md\n# Tous les modules sont desactives par defaut (sauf rate_limit, alerts, antipiracy)\n# =============================================================================\n\n# --- 19.0 Global ---\nSECURITY_ENABLED=true\nSECURITY_LOG_LEVEL=INFO\n# DB Redis separee pour la securite (evite les collisions avec DB 0)\nSECURITY_REDIS_DB=1\n\n# --- 19.1 Rate Limiting Avance (style Binance) ---\nRATE_LIMIT_ENABLED=true\nRATE_LIMIT_BACKEND=redis\n# Limites par categorie : requetes/fenetre_secondes\nRATE_LIMIT_GENERAL=100/60\nRATE_LIMIT_AUTH=5/60\nRATE_LIMIT_CHAT=30/60\nRATE_LIMIT_VOICE=10/60\nRATE_LIMIT_VIDEO=5/60\nRATE_LIMIT_ADMIN=50/60\nRATE_LIMIT_WEBHOOK=200/60\nRATE_LIMIT_SETUP=20/60\n# Protection anti-rafale (token bucket)\nRATE_LIMIT_BURST_CAPACITY=20\nRATE_LIMIT_BURST_REFILL=2\n# Penalites progressives (nombre de violations → action)\nRATE_LIMIT_SOFT_BAN_THRESHOLD=3\nRATE_LIMIT_SOFT_BAN_DURATION=300\nRATE_LIMIT_HARD_BAN_THRESHOLD=5\nRATE_LIMIT_HARD_BAN_DURATION=3600\nRATE_LIMIT_BLACKLIST_THRESHOLD=10\nRATE_LIMIT_BLACKLIST_DURATION=86400\n# Poids par endpoint (video coute 5x plus cher en quota)\nRATE_LIMIT_WEIGHT_CHAT=1\nRATE_LIMIT_WEIGHT_VOICE=3\nRATE_LIMIT_WEIGHT_VIDEO=5\nRATE_LIMIT_WEIGHT_DEFAULT=1\n\n# --- 19.2 Double Authentification (2FA) ---\nTFA_ENABLED=false\nTFA_ISSUER_NAME=YAWatch Luna\nTFA_MANDATORY_FOR_ADMIN=true\nTFA_TOKEN_VALIDITY_SECONDS=30\nTFA_RECOVERY_CODE_COUNT=10\nTFA_SMS_ENABLED=true\n\n# --- 19.3 CAPTCHA Adaptatif ---\nCAPTCHA_ENABLED=false\nCAPTCHA_TRIGGER_FAILED_LOGINS=3\nCAPTCHA_TRIGGER_SUSPICION_SCORE=0.7\nCAPTCHA_SECRET_KEY=\nCAPTCHA_SITE_KEY=\n\n# --- 19.4 Honeypots & Leurres ---\nHONEYPOT_ENABLED=false\nHONEYPOT_LOG_FULL_REQUEST=true\nHONEYPOT_CANARY_TOKEN_SECRET=\nHONEYPOT_FAKE_ADMIN_PATHS=/admin-debug,/wp-admin,/phpmyadmin,/api/v2/internal\nHONEYPOT_DECEPTION_HEADERS=true\n\n# --- 19.5 Analyse Comportementale (IDS) ---\nBEHAVIORAL_ENABLED=false\nBEHAVIORAL_WINDOW_MINUTES=30\nBEHAVIORAL_MAX_ENDPOINT_ENTROPY=0.8\nBEHAVIORAL_GEO_ANOMALY_ENABLED=true\nBEHAVIORAL_DEVICE_CHANGE_ALERT=true\nBEHAVIORAL_UNUSUAL_HOURS_START=2\nBEHAVIORAL_UNUSUAL_HOURS_END=5\n\n# --- 19.6 Alertes Multi-Canal ---\nALERT_ENABLED=true\nALERT_TELEGRAM_ENABLED=true\n# (TELEGRAM_BOT_TOKEN et TELEGRAM_CHAT_ID deja configures ci-dessus)\nALERT_EMAIL_ENABLED=false\nALERT_EMAIL_SMTP_HOST=\nALERT_EMAIL_SMTP_PORT=587\nALERT_EMAIL_SMTP_USER=\nALERT_EMAIL_SMTP_PASSWORD=\nALERT_EMAIL_FROM=\nALERT_EMAIL_TO=\nALERT_SMS_ENABLED=false\nALERT_SMS_EMERGENCY_ONLY=true\n# Cooldown anti-spam (secondes entre alertes similaires)\nALERT_COOLDOWN_INFO=300\nALERT_COOLDOWN_WARNING=120\nALERT_COOLDOWN_CRITICAL=30\nALERT_COOLDOWN_EMERGENCY=0\n\n# --- 19.7 Reactions Automatiques ---\nREACTION_ENABLED=false\n# Seuils de score de menace (0-100) declenchant les reactions\nREACTION_AUTO_BAN_THRESHOLD=80\nREACTION_AUTO_REVOKE_THRESHOLD=60\nREACTION_LOCKDOWN_THRESHOLD=95\n# Blocage geographique (codes pays ISO, vide = desactive)\nREACTION_GEO_BLOCK_COUNTRIES=\n# IPs whitelist pendant lockdown (admin, monitoring)\nREACTION_LOCKDOWN_WHITELIST_IPS=\n\n# --- 19.8 Forensics & Tracking Attaquant ---\nFORENSICS_ENABLED=false\nFORENSICS_LOG_FLAGGED_REQUESTS=true\nFORENSICS_GEOIP_DB_PATH=./data/GeoLite2-City.mmdb\nFORENSICS_IP_REPUTATION_API_KEY=\nFORENSICS_IP_REPUTATION_PROVIDER=abuseipdb\nFORENSICS_RETENTION_DAYS=90\n\n# --- 19.9 Anti-Piratage ---\nANTIPIRACY_ENABLED=true\nANTIPIRACY_HEARTBEAT_INTERVAL_MINUTES=60\nANTIPIRACY_HEARTBEAT_GRACE_HOURS=24\nANTIPIRACY_TAMPER_CHECK_ENABLED=true\nANTIPIRACY_TAMPER_MANIFEST_PATH=./data/integrity_manifest.json\nANTIPIRACY_HARDWARE_BIND_ENABLED=false\nANTIPIRACY_RUNTIME_CHECK_INTERVAL_MINUTES=15\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans + 4 articles monde via stripe_setup.py)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "f92e73a4dd9b93332537bd629b41f16f2c7c3762": {"t": 1785770550.1337066, "n": 17565, "h": "0bfb520f6c8e1b38", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a la signature du contrat)\nYAWATCH_LICENSE_KEY=\n\n# Serveur de licence YAWatch (ne PAS modifier)\nYAWATCH_LICENSE_SERVER=https://iawatch-backend-674304336025.europe-west1.run.app\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4o-mini\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel ---\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=60\nPLAN_ESSENTIEL_VIDEO_MINUTES=20\nPLAN_ESSENTIEL_SMS_LIMIT=50\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort ---\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=180\nPLAN_CONFORT_VIDEO_MINUTES=60\nPLAN_CONFORT_SMS_LIMIT=200\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium ---\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=0\nPLAN_PREMIUM_VIDEO_MINUTES=180\nPLAN_PREMIUM_SMS_LIMIT=0\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat, voix Premium, SMS Premium, instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans: 79/149/249 EUR)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "484cb938530458a6034cb6b05a501a7e50c3a76a": {"t": 1785770551.6462648, "n": 17420, "h": "0c2e51a6e790350a", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\n# Utilise pour les SMS et les appels vocaux\nTWILIO_SMS_FROM=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4o-mini\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\n# Docker Compose: redis://redis:6379/0 (nom du service Docker)\n# Hors Docker: redis://localhost:6379/0\nREDIS_URL=redis://redis:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Luna ecoute sur le port 8888 (HTTPS) ---\n# LUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez votre domaine reel en production (ex: https://luna.mondomaine.fr)\nCORS_ORIGINS=https://localhost:8888\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel ---\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=60\nPLAN_ESSENTIEL_VIDEO_MINUTES=20\nPLAN_ESSENTIEL_SMS_LIMIT=50\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort ---\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=180\nPLAN_CONFORT_VIDEO_MINUTES=60\nPLAN_CONFORT_SMS_LIMIT=200\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium ---\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=0\nPLAN_PREMIUM_VIDEO_MINUTES=180\nPLAN_PREMIUM_SMS_LIMIT=0\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat, voix Premium, SMS Premium, instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans: 79/149/249 EUR)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "4b4b42645598ed7417dd0829bab4ccfc859097f7": {"t": 1785770553.0480468, "n": 17292, "h": "807217ec79be54b4", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\nTWILIO_SMS_FROM=\nTWILIO_PHONE_NUMBER=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4-turbo\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\nREDIS_URL=redis://localhost:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n# Authentification client (multi-tenant)\n# true = chaque client doit s'inscrire et se connecter (recommande en production)\n# false = mode demo/dev, pas d'auth, tenant_id=1 par defaut\nREQUIRE_AUTH=true\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Backend API ---\nBACKEND_HOST=0.0.0.0\nBACKEND_PORT=8000\n\n# --- Frontend ---\nFRONTEND_URL=http://localhost:3000\n\n# --- CORS (origines autorisees, separees par des virgules) ---\nCORS_ORIGINS=http://localhost:3000,http://localhost:8000\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel ---\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=60\nPLAN_ESSENTIEL_VIDEO_MINUTES=20\nPLAN_ESSENTIEL_SMS_LIMIT=50\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort ---\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=180\nPLAN_CONFORT_VIDEO_MINUTES=60\nPLAN_CONFORT_SMS_LIMIT=200\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium ---\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=0\nPLAN_PREMIUM_VIDEO_MINUTES=180\nPLAN_PREMIUM_SMS_LIMIT=0\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat, voix Premium, SMS Premium, instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans: 79/149/249 EUR)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "cbd26526e6fdbb8e9b67feb49aaf06af4a5a6d1f": {"t": 1785770557.177865, "n": 17090, "h": "66be1c7cae0cb9c8", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\nTWILIO_SMS_FROM=\nTWILIO_PHONE_NUMBER=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4-turbo\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\nREDIS_URL=redis://localhost:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Backend API ---\nBACKEND_HOST=0.0.0.0\nBACKEND_PORT=8000\n\n# --- Frontend ---\nFRONTEND_URL=http://localhost:3000\n\n# --- CORS (origines autorisees, separees par des virgules) ---\nCORS_ORIGINS=http://localhost:3000,http://localhost:8000\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Mot de passe pour le dashboard admin (/admin)\n# Generez un mot de passe fort: openssl rand -base64 24\nADMIN_PASSWORD=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel ---\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=60\nPLAN_ESSENTIEL_VIDEO_MINUTES=20\nPLAN_ESSENTIEL_SMS_LIMIT=50\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort ---\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=180\nPLAN_CONFORT_VIDEO_MINUTES=60\nPLAN_CONFORT_SMS_LIMIT=200\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium ---\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=0\nPLAN_PREMIUM_VIDEO_MINUTES=180\nPLAN_PREMIUM_SMS_LIMIT=0\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat, voix Premium, SMS Premium, instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans: 79/149/249 EUR)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "6d80c305f29f8376cb82578e31966547f3160b3e": {"t": 1785770558.5988224, "n": 16969, "h": "fcf3b9c721068c1a", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\nTWILIO_SMS_FROM=\nTWILIO_PHONE_NUMBER=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. CLE D'INSTALLATION LUNA SETUP (fournie par YAWatch)\n# =============================================================================\n# Cette cle temporaire est fournie par le fondateur YAWatch pour\n# l'assistant Luna Setup qui vous guide pendant la configuration.\n#\n# IMPORTANT:\n# - Fournie par votre referent YAWatch (budget ~5€)\n# - Utilisee UNIQUEMENT pendant le wizard de setup (max 50 messages)\n# - DETRUITE AUTOMATIQUEMENT apres creation de votre instance\n# - NE PAS la remplacer par votre propre cle OpenAI\n# =============================================================================\n\nSETUP_OPENAI_API_KEY=\n\n# =============================================================================\n# 4. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4-turbo\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\nREDIS_URL=redis://localhost:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Backend API ---\nBACKEND_HOST=0.0.0.0\nBACKEND_PORT=8000\n\n# --- Frontend ---\nFRONTEND_URL=http://localhost:3000\n\n# --- CORS (origines autorisees, separees par des virgules) ---\nCORS_ORIGINS=http://localhost:3000,http://localhost:8000\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel ---\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=60\nPLAN_ESSENTIEL_VIDEO_MINUTES=20\nPLAN_ESSENTIEL_SMS_LIMIT=50\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort ---\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=180\nPLAN_CONFORT_VIDEO_MINUTES=60\nPLAN_CONFORT_SMS_LIMIT=200\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium ---\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=0\nPLAN_PREMIUM_VIDEO_MINUTES=180\nPLAN_PREMIUM_SMS_LIMIT=0\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat, voix Premium, SMS Premium, instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MODE LUNA\n# =============================================================================\n# \"full\" = Chat + Voix + SMS + Visio Avatar (Tavus requis)\n# \"lite\" = Chat + Voix + SMS (sans visio, Tavus non requis)\n# =============================================================================\n\nLUNA_MODE=full\n\n\n# =============================================================================\n# 17. PV DE RECETTE (Verrouillage Serveur)\n# =============================================================================\n# Le serveur est VERROUILLE tant que le PV n'est pas signe.\n# Completez les 3 phases de validation puis signez via /api/setup/sign-pv\n# ou via le wizard d'installation.\n#\n# NE PAS MODIFIER MANUELLEMENT — genere automatiquement a la signature.\n# =============================================================================\n\nPV_SIGNED=false\nPV_SIGNATURE_HASH=\nPV_DATA_PATH=./pv_recette.json\n\n\n# =============================================================================\n# 18. MONITORING\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] LUNA_MODE choisi (lite ou full)\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli (mode FULL uniquement)\n# [ ] TAVUS_LUNA_PERSONA_ID rempli (mode FULL uniquement)\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans: 79/149/249 EUR)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n# [ ] PV de recette signe (via wizard ou /api/setup/)\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n#\n# LEGAL (obligatoire):\n# [ ] Contrat de licence signe avec le Fondateur\n# [ ] Contrat signe avec Ambre (communication)\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n# [ ] RC Professionnelle souscrite\n#\n# Ensuite: python luna_web.py (serveur deverrouille apres PV)\n#\n# =============================================================================\n"}, "52d95e9c1222e04b2ab4e75631874da6ece1c9aa": {"t": 1785770560.0571086, "n": 15001, "h": "698594e396aa582e", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS & Alertes\n# =============================================================================\n# Luna utilise Twilio pour envoyer des SMS (rappels, alertes proches).\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\nTWILIO_SMS_FROM=\nTWILIO_PHONE_NUMBER=\n\n# API Key + Secret (pour Twilio Video / fonctions avancees)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n\n# =============================================================================\n# 3. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4-turbo\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n# C'est le canal le plus couteux (~0.30 EUR/min). Les plans incluent des\n# quotas de minutes visio, le depassement est facture au client.\n#\n# PLANS TAVUS EXPLOITANT:\n# Starter ($59/mois, 100 min, 3 simultanes) → 0-30 clients\n# Growth ($397/mois, 1250 min, 15 simultanes) → 30-300 clients\n# Enterprise (devis, remise volume) → 300+ clients\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\n# Plans recommandes: Essentiel 79EUR, Confort 149EUR, Premium 249EUR\n# Hors-forfait visio: 2.50/2.00/1.50 EUR/min selon plan\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\nREDIS_URL=redis://localhost:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Backend API ---\nBACKEND_HOST=0.0.0.0\nBACKEND_PORT=8000\n\n# --- Frontend ---\nFRONTEND_URL=http://localhost:3000\n\n# --- CORS (origines autorisees, separees par des virgules) ---\nCORS_ORIGINS=http://localhost:3000,http://localhost:8000\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Best-Effort)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n#\n# IMPORTANT - BEST-EFFORT UNIQUEMENT:\n# - Detection TEXTUELLE dans les messages (PAS video/YOLO)\n# - Luna TENTE de prevenir les contacts par SMS\n# - Luna ne GARANTIT PAS la livraison des alertes\n# - Luna RECOMMANDE TOUJOURS d'appeler le 15/112 soi-meme\n# - Luna N'EST PAS un dispositif de teleassistance certifie\n# - Recommandez a vos clients un dispositif complementaire\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS PAR PLAN\n# =============================================================================\n# Quotas separes par type de canal. Ajustables selon votre offre.\n# Le hors-forfait est facture au client (marge elevee).\n#\n# PLANS: Essentiel (79EUR) | Confort (149EUR) | Premium (249EUR)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# --- Quotas Essentiel ---\nPLAN_ESSENTIEL_CHAT_LIMIT=0\nPLAN_ESSENTIEL_VOICE_MINUTES=60\nPLAN_ESSENTIEL_VIDEO_MINUTES=20\nPLAN_ESSENTIEL_SMS_LIMIT=50\nPLAN_ESSENTIEL_INSTRUCTIONS_LIMIT=5\nPLAN_ESSENTIEL_CONTACTS_LIMIT=3\n\n# --- Quotas Confort ---\nPLAN_CONFORT_CHAT_LIMIT=0\nPLAN_CONFORT_VOICE_MINUTES=180\nPLAN_CONFORT_VIDEO_MINUTES=60\nPLAN_CONFORT_SMS_LIMIT=200\nPLAN_CONFORT_INSTRUCTIONS_LIMIT=15\nPLAN_CONFORT_CONTACTS_LIMIT=5\n\n# --- Quotas Premium ---\nPLAN_PREMIUM_CHAT_LIMIT=0\nPLAN_PREMIUM_VOICE_MINUTES=0\nPLAN_PREMIUM_VIDEO_MINUTES=180\nPLAN_PREMIUM_SMS_LIMIT=0\nPLAN_PREMIUM_INSTRUCTIONS_LIMIT=0\nPLAN_PREMIUM_CONTACTS_LIMIT=10\n\n# NOTE: 0 = illimite pour chat, voix Premium, SMS Premium, instructions Premium\n\n# --- Tarifs hors-forfait (EUR) ---\nOVERAGE_VIDEO_ESSENTIEL=2.50\nOVERAGE_VIDEO_CONFORT=2.00\nOVERAGE_VIDEO_PREMIUM=1.50\nOVERAGE_VOICE_ESSENTIEL=0.80\nOVERAGE_VOICE_CONFORT=0.60\nOVERAGE_VOICE_PREMIUM=0.40\nOVERAGE_SMS_ESSENTIEL=0.25\nOVERAGE_SMS_CONFORT=0.20\nOVERAGE_SMS_PREMIUM=0.15\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MONITORING & MODE\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] TWILIO_ACCOUNT_SID + AUTH_TOKEN remplis\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli\n# [ ] TAVUS_LUNA_PERSONA_ID rempli\n# [ ] STRIPE_API_KEY + WEBHOOK_SECRET remplis\n# [ ] STRIPE_PRICE_* configures (3 plans: 79/149/249 EUR)\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] Telegram configure pour les alertes admin\n# [ ] N8N installe pour les automatisations\n#\n# LEGAL:\n# [ ] CGV avec mention \"compagnon, PAS dispositif medical\"\n# [ ] Detection detresse = best-effort (pas garantie)\n# [ ] Recommander teleassistance certifiee en complement\n#\n# Ensuite: docker-compose up -d\n#\n# =============================================================================\n"}, "17b11748247724ac09966029e38b407fef6ecf49": {"t": 1785770561.6370401, "n": 13346, "h": "1395b9be9b9d9040", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA V1 - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS / WhatsApp / Video\n# =============================================================================\n# Luna utilise Twilio pour SMS, WhatsApp et les appels video.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. (Optionnel) Activer WhatsApp Sandbox pour les tests\n# 5. Console > API Keys > Create API Key (pour Twilio Video)\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# Numero Twilio achete (format international: +33612345678)\nTWILIO_SMS_FROM=\nTWILIO_PHONE_NUMBER=\n\n# API Key + Secret (OBLIGATOIRE pour Twilio Video / visio Luna)\n# Console > API Keys > Create API Key (type: Standard)\nTWILIO_API_KEY_SID=\nTWILIO_API_KEY_SECRET=\n\n# (Optionnel) WhatsApp - Sandbox ou numero Business approuve\n# Format: whatsapp:+14155238886\nTWILIO_WHATSAPP_FROM=\n\n# Contact WhatsApp de confiance par defaut\nTRUSTED_CONTACT_WHATSAPP=\n\n\n# =============================================================================\n# 3. OPENAI - Intelligence Artificielle (Principal)\n# =============================================================================\n# Moteur IA principal de Luna. Utilise pour le chat et les agents.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser\n# gpt-4-turbo → Meilleure qualite, plus cher (~0.03€/interaction)\n# gpt-4o → Bon rapport qualite/prix\n# gpt-4o-mini → Budget serre, gros volumes (~0.005€/interaction)\nOPENAI_MODEL=gpt-4-turbo\n\n# Voix pour les conversations vocales\n# Choix: alloy, echo, fable, onyx, nova, shimmer\nOPENAI_VOICE=alloy\nOPENAI_LANGUAGE=fr\n\n\n# =============================================================================\n# 4. LLM ALTERNATIFS (Optionnel - Smart Routing)\n# =============================================================================\n# Le systeme bascule automatiquement sur ces LLM si les quotas OpenAI\n# sont depasses. L'ordre de priorite: OpenAI → Groq → Gemini → Anthropic\n#\n# Vous pouvez n'en configurer qu'un seul, ou aucun.\n# =============================================================================\n\n# Google Gemini (pour agent Oracle + detection video)\n# https://makersuite.google.com/app/apikey\nGOOGLE_API_KEY=\nGEMINI_API_KEY=\nGEMINI_MODEL=gemini-pro-vision\n\n# Groq (LLM rapide, pour agents Sentinel/Apex/Architect)\n# https://console.groq.com/keys\nGROQ_API_KEY=\n\n# Anthropic Claude (optionnel, fallback)\n# https://console.anthropic.com/settings/keys\nANTHROPIC_API_KEY=\n\n\n# =============================================================================\n# 5. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n# 4. Replicas > Creer ou choisir un replica > Copier le Replica ID\n#\n# COUT ESTIME: ~0.10-0.20 EUR/minute de visio\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\nTAVUS_LUNA_PERSONA_ID=\n\n# ID du replica Luna (commence par r) - pour la generation de videos\nTAVUS_LUNA_REPLICA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 6. STRIPE - Paiement & Abonnements\n# =============================================================================\n# Stripe gere les paiements et abonnements de vos clients.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://dashboard.stripe.com/register\n# 2. Developers > API Keys\n# 3. Creer vos produits/prix pour chaque plan\n# 4. Developers > Webhooks > Ajouter un endpoint\n#\n# ATTENTION: Utilisez les cles TEST (sk_test_) en dev, LIVE (sk_live_) en prod\n# =============================================================================\n\n# Cle secrete Stripe (commence par sk_test_ ou sk_live_)\nSTRIPE_API_KEY=\n\n# Cle publique Stripe (commence par pk_test_ ou pk_live_)\nSTRIPE_PUBLISHABLE_KEY=\n\n# Secret du webhook Stripe (commence par whsec_)\n# Developers > Webhooks > Signing secret\nSTRIPE_WEBHOOK_SECRET=\n\n# IDs des prix Stripe pour chaque plan (creer dans Products > Pricing)\nSTRIPE_PRICE_ESSENTIEL=\nSTRIPE_PRICE_CONFORT=\nSTRIPE_PRICE_PREMIUM=\n\n\n# =============================================================================\n# 7. REDIS - Memoire & Cache\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna et le cache.\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\nREDIS_URL=redis://localhost:6379/0\n\n\n# =============================================================================\n# 8. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens (en minutes / en jours)\nACCESS_TOKEN_EXPIRE_MINUTES=1440\n\n\n# =============================================================================\n# 9. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 10. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Backend API ---\nBACKEND_HOST=0.0.0.0\nBACKEND_PORT=8000\n\n# --- Frontend ---\nFRONTEND_URL=http://localhost:3000\n\n# --- CORS (origines autorisees, separees par des virgules) ---\nCORS_ORIGINS=http://localhost:3000,http://localhost:8000\n\n# --- SSL/TLS ---\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 11. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero et email de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# =============================================================================\n\n# Format international obligatoire: +33XXXXXXXXX\nADMIN_NUMBER=\n\n# Email securite (recoit les alertes urgentes)\nEMERGENCY_EMAIL_DG_SECURITE=\n\n\n# =============================================================================\n# 12. DETECTION DE DETRESSE (Conversationnel)\n# =============================================================================\n# Detection de mots-cles de detresse dans les conversations.\n# NOTE: La V1 ne fait PAS de detection video/YOLO.\n# C'est une detection TEXTUELLE dans les messages.\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separes par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\n# NOTE: Luna ne peut PAS appeler directement ces numeros.\n# Elle alerte les contacts de confiance qui appellent eux-memes.\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 13. LIMITES & QUOTAS\n# =============================================================================\n# Limites par defaut (ajustables selon votre offre commerciale)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n# Rate limiting\nRATE_LIMIT_REQUESTS=100\nRATE_LIMIT_WINDOW=60\nLOGIN_RATE_LIMIT=5\nLOGIN_RATE_WINDOW=60\n\n# Periode d'essai\nTRIAL_DAILY_LIMIT=100\nTRIAL_DURATION_HOURS=48\n\n\n# =============================================================================\n# 14. N8N - Automatisation (Optionnel)\n# =============================================================================\n# N8N permet de creer des workflows automatises (alertes, rapports, etc.)\n#\n# COMMENT INSTALLER:\n# docker run -d -p 5678:5678 n8nio/n8n\n#\n# =============================================================================\n\nN8N_URL=http://localhost:5678\nN8N_BASIC_AUTH_USER=\nN8N_BASIC_AUTH_PASSWORD=\nN8N_WEBHOOK_SECRET=\n\n\n# =============================================================================\n# 15. BOTS - Telegram / Discord (Optionnel)\n# =============================================================================\n# Canaux de notification supplementaires.\n# =============================================================================\n\n# Telegram - https://core.telegram.org/bots#botfather\nTELEGRAM_BOT_TOKEN=\nTELEGRAM_CHAT_ID=\n\n\n# =============================================================================\n# 16. MONITORING & MODE\n# =============================================================================\n\nENVIRONMENT=production\nDEBUG=false\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# OBLIGATOIRE:\n# [ ] TWILIO_ACCOUNT_SID rempli\n# [ ] TWILIO_AUTH_TOKEN rempli\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] TWILIO_API_KEY_SID + SECRET remplis (pour visio)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli\n# [ ] TAVUS_LUNA_PERSONA_ID rempli\n# [ ] STRIPE_API_KEY rempli (pour les paiements)\n# [ ] STRIPE_WEBHOOK_SECRET rempli\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n#\n# RECOMMANDE:\n# [ ] Au moins 1 LLM alternatif (Groq ou Gemini)\n# [ ] STRIPE_PRICE_* configures pour les 3 plans\n# [ ] N8N installe pour les automatisations\n# [ ] Telegram configure pour les alertes\n#\n# Ensuite: docker-compose up -d\n#\n# =============================================================================\n"}, "648119d63e1e3c5de454f221959695c9ce00bea2": {"t": 1785770565.018804, "n": 10574, "h": "7e1110a1fc6dadcc", "c": "# =============================================================================\n#\n# ██╗ ██╗ █████╗ ██╗ ██╗ █████╗ ████████╗ ██████╗██╗ ██╗\n# ╚██╗ ██╔╝██╔══██╗██║ ██║██╔══██╗╚══██╔══╝██╔════╝██║ ██║\n# ╚████╔╝ ███████║██║ █╗ ██║███████║ ██║ ██║ ███████║\n# ╚██╔╝ ██╔══██║██║███╗██║██╔══██║ ██║ ██║ ██╔══██║\n# ██║ ██║ ██║╚███╔███╔╝██║ ██║ ██║ ╚██████╗██║ ██║\n# ╚═╝ ╚═╝ ╚═╝ ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝\n#\n# YAWATCH LUNA - CONFIGURATION EXPLOITANT\n#\n# =============================================================================\n#\n# INSTRUCTIONS:\n# 1. Copier ce fichier vers .env → cp .env.template .env\n# 2. Remplir chaque section avec VOS cles\n# 3. Lancer la validation → python validate_keys.py\n# 4. NE JAMAIS commiter le .env dans Git!\n#\n# AIDE: Consultez CONFIG.md pour un guide pas-a-pas\n#\n# =============================================================================\n\n\n# =============================================================================\n# 1. IDENTITE EXPLOITANT\n# =============================================================================\n# Nom de votre structure (affiche dans l'interface admin)\nEXPLOITANT_NAME=Mon Entreprise\n\n# Email de contact principal (recoit les alertes systeme)\nEXPLOITANT_EMAIL=contact@monentreprise.fr\n\n# Cle de licence YAWatch (fournie a l'achat)\nYAWATCH_LICENSE_KEY=\n\n\n# =============================================================================\n# 2. TWILIO - SMS / WhatsApp\n# =============================================================================\n# Luna utilise Twilio pour envoyer/recevoir des SMS et WhatsApp.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte sur https://www.twilio.com/try-twilio\n# 2. Console > Account Info → Account SID + Auth Token\n# 3. Acheter un numero de telephone (Phone Numbers > Buy a Number)\n# 4. (Optionnel) Activer WhatsApp Sandbox pour les tests\n#\n# COUT ESTIME: ~0.04 EUR/SMS envoye (France)\n# =============================================================================\n\n# Account SID (commence par AC)\nTWILIO_ACCOUNT_SID=\n\n# Auth Token\nTWILIO_AUTH_TOKEN=\n\n# (Optionnel) API Key + Secret pour securite renforcee\n# Console > API Keys > Create API Key\nTWILIO_API_KEY=\nTWILIO_API_SECRET=\n\n# Numero Twilio achete (format international: +33612345678)\nTWILIO_SMS_FROM=\nTWILIO_PHONE_NUMBER=\n\n# (Optionnel) WhatsApp - Sandbox ou numero Business approuve\n# Format: whatsapp:+14155238886\nTWILIO_WHATSAPP_NUMBER=\n\n# (Optionnel) URL webhook pour recevoir les statuts de livraison SMS\n# Exemple: https://votre-domaine.com/api/webhooks/twilio/status\nTWILIO_STATUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 3. OPENAI - Intelligence Artificielle Luna\n# =============================================================================\n# Luna utilise OpenAI pour comprendre et repondre aux utilisateurs.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://platform.openai.com\n# 2. Settings > Billing > Ajouter un moyen de paiement\n# 3. API Keys > Create new secret key\n#\n# COUT ESTIME: ~0.01-0.03 EUR par interaction chat\n# =============================================================================\n\n# Cle API OpenAI (commence par sk-proj- ou sk-)\nOPENAI_API_KEY=\n\n# Modele a utiliser (recommande: gpt-4-turbo)\n# Options: gpt-4-turbo | gpt-4o | gpt-4o-mini | gpt-3.5-turbo\n# gpt-4-turbo → Meilleure qualite, plus cher\n# gpt-4o-mini → Bon rapport qualite/prix pour gros volumes\nOPENAI_MODEL=gpt-4-turbo\n\n\n# =============================================================================\n# 4. TAVUS - Avatar Video Luna\n# =============================================================================\n# Tavus permet a Luna d'apparaitre en visioconference avec un avatar realiste.\n#\n# COMMENT OBTENIR VOS CLES:\n# 1. Creer un compte Business sur https://www.tavus.io\n# 2. Dashboard > API Keys > Generate Key\n# 3. Personas > Creer un persona \"Luna\" > Copier le Persona ID\n#\n# COUT ESTIME: ~0.10-0.20 EUR/minute de visio\n# =============================================================================\n\n# Cle API Tavus\nTAVUS_API_KEY=\n\n# ID du persona Luna (commence par p)\n# Vous devez creer un persona dans le dashboard Tavus\nTAVUS_LUNA_PERSONA_ID=\n\n# (Optionnel) URL publique pour les webhooks Tavus (fin d'appel, etc.)\n# Exemple: https://votre-domaine.com/api/webhooks/tavus\nTAVUS_CALLBACK_URL=\n\n\n# =============================================================================\n# 5. REDIS - Memoire Luna\n# =============================================================================\n# Redis stocke la memoire conversationnelle de Luna (contexte, profils).\n#\n# OPTIONS:\n# A. Redis local (inclus dans docker-compose) → redis://localhost:6379/0\n# B. Redis Cloud (https://redis.com/try-free) → redis://user:pass@host:port/0\n# C. AWS ElastiCache, GCP Memorystore, etc.\n# =============================================================================\n\nREDIS_URL=redis://localhost:6379/0\n\n\n# =============================================================================\n# 6. SECURITE - JWT & Authentification\n# =============================================================================\n# Tokens JWT pour securiser l'acces a l'API.\n#\n# GENERER UNE CLE SECRETE:\n# openssl rand -hex 32\n#\n# IMPORTANT: Utilisez une cle UNIQUE et ALEATOIRE!\n# =============================================================================\n\n# Cle secrete JWT (OBLIGATOIRE - minimum 32 caracteres)\nJWT_SECRET_KEY=\n\n# Algorithme (ne pas modifier sauf besoin specifique)\nJWT_ALGORITHM=HS256\n\n# Duree de vie des tokens\nACCESS_TOKEN_EXPIRE_MINUTES=1440\nREFRESH_TOKEN_EXPIRE_DAYS=7\n\n\n# =============================================================================\n# 7. BASE DE DONNEES\n# =============================================================================\n# Stocke les utilisateurs, abonnements, tickets, etc.\n#\n# OPTIONS:\n# A. SQLite (dev/petit volume) → sqlite:///./yawatch.db\n# B. PostgreSQL (production) → postgresql://user:pass@host:5432/yawatch\n# C. MySQL → mysql://user:pass@host:3306/yawatch\n# =============================================================================\n\nDATABASE_URL=sqlite:///./yawatch.db\n\n\n# =============================================================================\n# 8. SERVEUR - Configuration Reseau\n# =============================================================================\n\n# --- Backend API ---\nBACKEND_HOST=0.0.0.0\nBACKEND_PORT=8000\n\n# --- Luna Web (serveur Luna avec avatar) ---\nLUNA_HOST=0.0.0.0\nLUNA_PORT=8888\n\n# --- CORS (origines autorisees, separees par des virgules) ---\n# Ajoutez l'URL de votre frontend et vos IPs locales\nCORS_ORIGINS=https://localhost:8888,https://localhost:3000\n\n# --- SSL/TLS ---\n# Chemins vers vos certificats SSL\n# Pour generer un certificat auto-signe (dev):\n# openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes\n# Pour la production: utilisez Let's Encrypt (certbot)\nSSL_KEYFILE=./key.pem\nSSL_CERTFILE=./cert.pem\n\n\n# =============================================================================\n# 9. CONTACT ADMINISTRATEUR\n# =============================================================================\n# Numero de telephone de l'administrateur principal.\n# Recoit les alertes critiques de Luna (urgences, anomalies).\n# Format international obligatoire: +33XXXXXXXXX\n# =============================================================================\n\nADMIN_NUMBER=\n\n\n# =============================================================================\n# 10. DETECTION IA - Aide Contextuelle\n# =============================================================================\n# Configuration de la detection IA (chutes, anomalies, etc.)\n# =============================================================================\n\nDISTRESS_DETECTION_ENABLED=true\nDISTRESS_AUTO_ESCALATE=true\n\n# Mots-cles de detection de detresse (separee par des virgules)\nDISTRESS_CRITICAL_KEYWORDS=au secours,aide,aidez-moi,douleur,ambulance,urgence\nDISTRESS_HIGH_KEYWORDS=blesse,saigne,respirer,etouffe\nDISTRESS_MEDIUM_KEYWORDS=pas bien,bizarre,etourdi,faible\n\n# Numeros d'urgence (adaptez selon votre pays)\nSAMU_NUMBER=15\nPOMPIERS_NUMBER=18\nPOLICE_NUMBER=17\n\n\n# =============================================================================\n# 11. LIMITES & QUOTAS\n# =============================================================================\n# Limites par defaut (ajustables selon votre offre commerciale)\n# =============================================================================\n\nMAX_CONVERSATION_DURATION_SECONDS=300\nMAX_CONCURRENT_CONVERSATIONS=10\nAUTO_END_ON_NO_SPEECH_SECONDS=60\n\n\n# =============================================================================\n# 12. RECHERCHE WEB (Optionnel)\n# =============================================================================\n# Permet a Luna de chercher des informations sur le web.\n#\n# COMMENT OBTENIR VOTRE CLE:\n# 1. Creer un compte sur https://serper.dev\n# 2. Dashboard > API Key\n#\n# COUT: ~0.001 EUR/recherche (2500 recherches gratuites/mois)\n# =============================================================================\n\nSERPER_API_KEY=\n\n\n# =============================================================================\n# 13. MONITORING (Optionnel)\n# =============================================================================\n\nENABLE_PROMETHEUS=false\nPROMETHEUS_PORT=9090\nENABLE_HEALTH_CHECKS=true\nHEALTH_CHECK_INTERVAL_SECONDS=30\nLOG_LEVEL=INFO\n\n\n# =============================================================================\n# 14. MODE\n# =============================================================================\n# true = Mode developpement (logs verbeux, rechargement auto)\n# false = Mode production (optimise, securise)\n# =============================================================================\n\nDEBUG=false\nDEV_MODE=false\n\n\n# =============================================================================\n#\n# CHECKLIST AVANT LANCEMENT:\n#\n# [ ] TWILIO_ACCOUNT_SID rempli\n# [ ] TWILIO_AUTH_TOKEN rempli\n# [ ] TWILIO_SMS_FROM rempli (numero achete)\n# [ ] OPENAI_API_KEY rempli\n# [ ] TAVUS_API_KEY rempli\n# [ ] TAVUS_LUNA_PERSONA_ID rempli\n# [ ] JWT_SECRET_KEY genere (openssl rand -hex 32)\n# [ ] ADMIN_NUMBER rempli\n# [ ] SSL certificats en place\n# [ ] python validate_keys.py → Tout vert\n#\n# Ensuite: docker-compose up -d\n#\n# =============================================================================\n"}}}}