# ============================================ # NEAH - Variables d'environnement # ============================================ # Ce fichier liste toutes les variables d'environnement nécessaires pour Neah. # Copiez ce fichier vers .env.local (développement) ou configurez-les dans votre plateforme de déploiement (Vercel, Docker, etc.) # # IMPORTANT: Ne commitez JAMAIS de fichiers .env avec des valeurs réelles ! # ============================================ # ENVIRONNEMENT & BASE # ============================================ NODE_ENV=development # production | development | test NEXTAUTH_URL=http://localhost:3000 # URL publique de l'application (utilisée par NextAuth pour les callbacks) # En production: https://votre-domaine.com # En développement: http://localhost:3000 NEXTAUTH_SECRET= # Secret pour signer les cookies NextAuth (générer avec: openssl rand -base64 32) # OBLIGATOIRE en production # ============================================ # BASE DE DONNÉES # ============================================ DATABASE_URL=postgresql://postgres:postgres@localhost:5432/calendar_db # URL de connexion PostgreSQL (format: postgresql://user:password@host:port/database) # Pour production auto-hébergée: postgresql://user:password@votre-serveur:5432/calendar_db # Pour SSL: postgresql://user:password@host:5432/db?sslmode=require NEWSDB_URL=postgresql://postgres:postgres@localhost:5432/news_db # Base de données séparée pour les actualités (si utilisée) NEWS_API_URL=http://localhost:3000/api/news # URL de l'API des actualités # ============================================ # KEYCLOAK - AUTHENTIFICATION # ============================================ KEYCLOAK_BASE_URL=https://keycloak.example.com # URL de base de Keycloak (sans /realms/...) KEYCLOAK_REALM=neah # Nom du realm Keycloak KEYCLOAK_CLIENT_ID=neah-app # ID du client Keycloak KEYCLOAK_CLIENT_SECRET= # Secret du client Keycloak (OBLIGATOIRE) KEYCLOAK_ISSUER=https://keycloak.example.com/realms/neah # URL complète de l'issuer Keycloak (format: {BASE_URL}/realms/{REALM}) # Alternative à KEYCLOAK_BASE_URL + KEYCLOAK_REALM NEXT_PUBLIC_KEYCLOAK_ISSUER=https://keycloak.example.com/realms/neah # Issuer Keycloak accessible côté client (pour les redirections SSO) # Optionnel: Authentification admin Keycloak (si nécessaire pour certaines opérations) KEYCLOAK_ADMIN_USERNAME=admin KEYCLOAK_ADMIN_PASSWORD= # ============================================ # REDIS - CACHE & SESSIONS # ============================================ # Option 1: URL complète Redis REDIS_URL=redis://:password@localhost:6379 # Format: redis://[:password@]host[:port][/database] # Option 2: Paramètres séparés (priorité si REDIS_URL n'est pas défini) REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= # Mot de passe Redis (laisser vide si pas de mot de passe) REDIS_ENCRYPTION_KEY= # Clé de chiffrement pour les données sensibles dans Redis (générer avec: openssl rand -base64 32) # Par défaut: 'default-encryption-key-change-in-production' (CHANGER EN PRODUCTION !) # ============================================ # AWS S3 / MINIO - STOCKAGE FICHIERS # ============================================ # Configuration S3 (pour MinIO ou AWS S3 réel) S3_BUCKET=missions # Nom du bucket S3 # Si utilisation de MinIO (auto-hébergé) MINIO_S3_UPLOAD_BUCKET_URL=http://localhost:9000 # URL de l'endpoint MinIO MINIO_AWS_REGION=us-east-1 # Région AWS (même pour MinIO) MINIO_AWS_S3_UPLOAD_BUCKET_NAME=missions # Nom du bucket pour les uploads MINIO_ACCESS_KEY=minioadmin # Clé d'accès MinIO MINIO_SECRET_KEY=minioadmin # Clé secrète MinIO # Si utilisation d'AWS S3 réel (remplacer les variables MINIO_*) AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_REGION=us-east-1 AWS_S3_BUCKET=missions # ============================================ # LEANTIME - GESTION DE PROJET # ============================================ LEANTIME_API_URL=https://leantime.example.com # URL de base de l'API Leantime LEANTIME_TOKEN= # Token d'API Leantime (OBLIGATOIRE si intégration activée) # ============================================ # ROCKETCHAT - MESSAGERIE # ============================================ ROCKET_CHAT_TOKEN= # Token d'authentification admin RocketChat (OBLIGATOIRE si intégration activée) ROCKET_CHAT_USER_ID= # ID de l'utilisateur admin RocketChat (OBLIGATOIRE si intégration activée) NEXT_PUBLIC_IFRAME_PAROLE_URL=https://rocketchat.example.com/channel/general # URL publique de RocketChat (pour les iframes) # ============================================ # N8N - AUTOMATISATION # ============================================ N8N_API_KEY= # Clé API N8N pour authentifier les webhooks (OBLIGATOIRE si intégration activée) N8N_WEBHOOK_URL=https://brain.slm-lab.net/webhook/mission-created # URL du webhook N8N pour la création de missions N8N_ROLLBACK_WEBHOOK_URL=https://brain.slm-lab.net/webhook/mission-rollback # URL du webhook N8N pour le rollback de missions N8N_DELETE_WEBHOOK_URL=https://brain.slm-lab.net/webhook/mission-delete # URL du webhook N8N pour la suppression de missions NEXT_PUBLIC_API_URL=https://api.slm-lab.net/api # URL publique de l'API Neah (utilisée par N8N pour les callbacks) # ============================================ # DOLIBARR - ERP # ============================================ DOLIBARR_API_URL=https://dolibarr.example.com # URL de base de l'API Dolibarr DOLIBARR_API_KEY= # Clé API Dolibarr (OBLIGATOIRE si intégration activée) # ============================================ # MICROSOFT OAUTH (Optionnel) # ============================================ MICROSOFT_TENANT_ID=common # ID du tenant Microsoft (ou 'common' pour multi-tenant) MICROSOFT_CLIENT_ID= # ID du client Microsoft OAuth MICROSOFT_CLIENT_SECRET= # Secret du client Microsoft OAuth MICROSOFT_REDIRECT_URI=http://localhost:3000/api/auth/callback/microsoft # URI de redirection OAuth Microsoft # ============================================ # IFRAMES - INTÉGRATIONS EXTERNES # ============================================ # URLs des différentes applications intégrées via iframe NEXT_PUBLIC_IFRAME_CARNET_URL=https://carnet.example.com NEXT_PUBLIC_IFRAME_DRIVE_URL=https://drive.example.com NEXT_PUBLIC_IFRAME_LEARN_URL=https://learn.example.com NEXT_PUBLIC_IFRAME_PAROLE_URL=https://rocketchat.example.com/channel/general NEXT_PUBLIC_IFRAME_MISSIONSBOARD_URL=https://missionsboard.example.com NEXT_PUBLIC_IFRAME_CHAPTER_URL=https://chapter.example.com NEXT_PUBLIC_IFRAME_AGILITY_URL=https://agility.example.com NEXT_PUBLIC_IFRAME_ARTLAB_URL=https://artlab.example.com NEXT_PUBLIC_IFRAME_GITE_URL=https://gite.example.com NEXT_PUBLIC_IFRAME_CALCULATION_URL=https://calculation.example.com NEXT_PUBLIC_IFRAME_MEDIATIONS_URL=https://mediations.example.com NEXT_PUBLIC_IFRAME_LIVRE_URL=https://livre.example.com NEXT_PUBLIC_IFRAME_SHOWCASE_URL=https://showcase.example.com NEXT_PUBLIC_IFRAME_RADIO_URL=https://radio.example.com NEXT_PUBLIC_IFRAME_OBSERVATORY_URL=https://observatory.example.com NEXT_PUBLIC_IFRAME_TIMETRACKER_URL=https://timetracker.example.com NEXT_PUBLIC_IFRAME_THEMESSAGE_URL=https://themessage.example.com NEXT_PUBLIC_IFRAME_MISSIONVIEW_URL=https://missionview.example.com NEXT_PUBLIC_IFRAME_CONFERENCE_URL=https://vision.slm-lab.net/MonMeeting # ============================================ # AUTRES SERVICES # ============================================ NEXT_PUBLIC_APP_URL=http://localhost:3000 # URL publique de l'application (pour les scripts et callbacks) EQUIPES_API_URL=https://equipes-api.example.com/users # URL de l'API Equipes (si utilisée) EQUIPES_API_TOKEN= # Token d'authentification pour l'API Equipes # ============================================ # NOTES IMPORTANTES # ============================================ # 1. Les variables préfixées par NEXT_PUBLIC_ sont exposées côté client (navigateur) # Ne jamais y mettre de secrets ! # # 2. Pour la production sur Vercel: # - Configurez toutes ces variables dans: Project Settings > Environment Variables # - Assurez-vous que DATABASE_URL pointe vers votre PostgreSQL auto-hébergé # - Vérifiez que NEXTAUTH_URL correspond à votre domaine Vercel # # 3. Pour la production avec Docker: # - Ajoutez ces variables dans docker-compose.yml ou un fichier .env # - Utilisez des secrets Docker pour les valeurs sensibles # # 4. Génération de secrets: # - NEXTAUTH_SECRET: openssl rand -base64 32 # - REDIS_ENCRYPTION_KEY: openssl rand -base64 32 # - KEYCLOAK_CLIENT_SECRET: généré dans Keycloak Admin Console # # 5. Variables optionnelles: # - Les variables d'intégration (LEANTIME, ROCKETCHAT, DOLIBARR, N8N) peuvent être omises # si ces services ne sont pas utilisés # - Les variables IFRAME peuvent avoir des valeurs par défaut ou être omises # si les fonctionnalités correspondantes ne sont pas nécessaires