NeahStable/.env.example
2026-01-12 10:37:21 +01:00

234 lines
8.7 KiB
Plaintext

# ============================================
# 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