# Variables d'environnement

Ce document decrit l'ensemble des variables d'environnement utilisees par le projet MediaManager.
Le fichier `.env` ne doit **jamais** etre commit. Utiliser `.env.example` comme reference et demander les valeurs secretes au chef de projet.

---

## Streamzilla

| Variable | Description |
|---|---|
| `STREAMZILLA_SUPERUSER_NAME` | Nom du super-utilisateur Streamzilla |
| `STREAMZILLA_SUPERUSER_PWD` | Mot de passe du super-utilisateur Streamzilla |

## Twitter

| Variable | Description |
|---|---|
| `TWITTER_SEARCH_CONSUMER_KEY` | Consumer key de l'API Twitter |
| `TWITTER_SEARCH_CONSUMER_SECRET` | Consumer secret de l'API Twitter |
| `TWITTER_SEARCH_ACCESS_TOKEN` | Access token de l'API Twitter |
| `TWITTER_SEARCH_ACCESS_TOKEN_SECRET` | Access token secret de l'API Twitter |

## Dropbox

| Variable | Description |
|---|---|
| `DROPBOX_CHOOSER_APP_KEY` | Cle de l'application Dropbox Chooser |

## Google Maps

Utilise pour le calcul RSE (Responsabilite Societale des Entreprises) via l'API Directions.

| Variable | Description |
|---|---|
| `GOOGLE_MAPS_DIRECTIONS_API_KEY` | Cle API Google Maps Directions (cote serveur) |
| `GOOGLE_MAPS_DIRECTIONS_JAVASCRIPT_API_KEY` | Cle API Google Maps JavaScript (cote client) |

## YouTube

| Variable | Description |
|---|---|
| `YOUTUBE_DEVELOPER_KEY` | Cle developpeur de l'API YouTube |

## Vimeo

| Variable | Description |
|---|---|
| `VIMEO_DEFAULT_CLIENT_ID` | Client ID de l'application Vimeo |
| `VIMEO_DEFAULT_CLIENT_SECRET` | Client secret de l'application Vimeo |
| `VIMEO_DEFAULT_ACCESS_TOKEN` | Token d'acces Vimeo |
| `VIMEO_CURATION_SEARCH_KEY` | Cle pour la recherche de curation Vimeo |

## MaxMind Geolocalisation

| Variable | Description |
|---|---|
| `MAXMIND_GEOLOC_API_USER_ID` | Identifiant utilisateur MaxMind GeoIP2 |
| `MAXMIND_GEOLOC_API_LICENCE_KEY` | Cle de licence MaxMind GeoIP2 |

## Wowza Cloud

Acces a l'API Wowza Cloud Engine pour la gestion des transcodeurs de streaming.

| Variable | Description |
|---|---|
| `CFG_WOWZA_CLOUD_API_KEY` | Cle API Wowza Cloud |
| `CFG_WOWZA_CLOUD_ACCESS_KEY` | Cle d'acces Wowza Cloud |

## Facebook Login

| Variable | Description |
|---|---|
| `CFG_FACEBOOK_LOGIN_APP_ID` | ID de l'application Facebook |
| `CFG_FACEBOOK_LOGIN_APP_SECRET` | Secret de l'application Facebook |

## Captcha

| Variable | Description |
|---|---|
| `CAPTCHA_API_USERNAME` | Nom d'utilisateur de l'API Captcha |
| `CAPTCHA_API_PASSWORD` | Mot de passe de l'API Captcha. **Ne pas retirer les quotes** (contient un `$`) |
| `CAPTCHA_API_IS_ENABLED` | Active/desactive le captcha (`1` = actif, `0` = inactif) |

## Hebergement fichiers / CDN

| Variable | Description |
|---|---|
| `STREAMUP_FILES_CDNHOST` | URL du CDN pour les fichiers uploades |
| `STREAMUP_FILES_DEFHOST` | URL par defaut pour les fichiers uploades |
| `STREAMUP_FILES_CACHE_CDNHOST` | URL du CDN pour le cache de fichiers |
| `STREAMUP_FILES_CACHE_PATH` | Chemin local du cache de fichiers |
| `CDN_IMG_HOST` | URL du CDN pour les images |
| `CDN_JS_HOST` | URL du CDN pour les fichiers JavaScript |

## Base de donnees (Master)

| Variable | Description |
|---|---|
| `MYSQL_HOST` | Hote du serveur MySQL master |
| `MYSQL_USER` | Utilisateur MySQL |
| `MYSQL_PWD` | Mot de passe MySQL |
| `MYSQL_DB_LICENCE` | Nom de la base de donnees |
| `MYSQL_DB_PREFIXE` | Prefixe des tables par licence |

## Base de donnees (Slave / Read-only)

Commenter ces variables pour desactiver la lecture sur le slave.

| Variable | Description |
|---|---|
| `MYSQL_SLAVE_HOST` | Hote du serveur MySQL slave |
| `MYSQL_SLAVE_USER` | Utilisateur MySQL slave |
| `MYSQL_SLAVE_PWD` | Mot de passe MySQL slave |

## ArrowChat

| Variable | Description |
|---|---|
| `ARROWCHAT_IS_SLAVE_ENABLED` | Active la lecture slave pour ArrowChat (`1` = actif, `0` = inactif) |

## Redis

| Variable | Description |
|---|---|
| `REDIS_HOST` | Hote du serveur Redis (cache) |
| `REDIS_PORT` | Port du serveur Redis |
| `REDIS_IS_ENABLED` | Active/desactive Redis (`1` = actif, `0` = inactif) |
| `REDIS_PHP_SESSION_HOST` | Hote Redis pour les sessions PHP |
| `REDIS_PHP_SESSION_PORT` | Port Redis pour les sessions PHP |
| `REDIS_PHP_SESSION_IS_ENABLED` | Active/desactive les sessions Redis (`1` = actif, `0` = inactif) |

## Channels

| Variable | Description |
|---|---|
| `MEDIA_LIBRARY_MAX_SUBCHANNELS_LEVEL` | Niveau maximum de sous-chaines dans la media library |

## Debug

| Variable | Description |
|---|---|
| `DEBUG` | Active le mode debug global (`1` = actif, `0` = inactif) |
| `CFG_SITE_DBUG_ML` | Adresse email destinataire des mails de debug |
| `CFG_DEBUG_IP` | Adresse IP autorisee pour le debug |

## Symfony / Application

| Variable | Description |
|---|---|
| `APP_ENV` | Environnement applicatif (`dev`, `preprod`, `staging`, `prod`) |
| `APP_JWT_KEY` | Cle secrete pour la signature des tokens JWT |

## Xdebug

Variables injectees dans la configuration Xdebug du container Docker (`docker/php/conf.d/xdebug.ini`).

| Variable | Description |
|---|---|
| `PHP_XDEBUG_MODE` | Mode Xdebug (`off` = desactive, `debug` = actif, `profile` = profiling) |
| `PHP_XDEBUG_LOG_LEVEL` | Niveau de log Xdebug |
| `PHP_XDEBUG_PORT` | Port d'ecoute Xdebug |
| `PHP_XDEBUG_PROFILER_ENABLE` | Active le profiler (`1` = actif) |
| `PHP_XDEBUG_DISCOVER_CLIENT_HOST` | Decouverte automatique de l'hote client |
| `PHP_XDEBUG_CLIENT_HOST` | IP de l'hote client (a adapter selon votre configuration reseau Docker) |
| `PHP_IDE_CONFIG` | Configuration du serveur pour l'IDE |

## Docker

Variables utilisees par `docker-compose.yml` et les Dockerfiles pour le mapping utilisateur.

| Variable | Description |
|---|---|
| `UID` | UID de l'utilisateur dans le container |
| `GID` | GID de l'utilisateur dans le container |
| `USER_ID` | UID pour le Dockerfile |
| `GROUP_ID` | GID pour le Dockerfile |
| `DOCKER_UID` | UID:GID combine pour docker-compose |
| `UNAME` | Nom d'utilisateur dans le container |

## ERS CRM

Integration avec le CRM de l'European Respiratory Society.

| Variable | Description |
|---|---|
| `ERS_SSO_BASE_URL` | URL de base du SSO ERS (Identity Server) |
| `ERS_CRM_CORE_API_BASE_URL` | URL de base de l'API Core CRM ERS |
| `ERS_CRM_CORE_CLIENT_ID` | Client ID pour l'authentification OAuth ERS |
| `ERS_CRM_CORE_CLIENT_SECRET` | Client secret pour l'authentification OAuth ERS |

## OEC Sugar API

Integration avec le CRM Sugar de l'Ordre des Experts-Comptables.

| Variable | Description |
|---|---|
| `OEC_SUGAR_API__BASE_URL` | URL de base de l'API Sugar (rec: port 8042, prod: port 8044) |
| `OEC_SUGAR_API__TOKEN` | Token d'authentification API Sugar |

## Statistiques

| Variable | Description |
|---|---|
| `STATS_EXTRACT_REQUEST_MAX` | Nombre maximum de requetes d'extraction simultanees |
| `STATS_EXTRACT_LINK_DURATION_VALIDITY_IN_HOUR` | Duree de validite des liens d'extraction (en heures) |

## Networking

| Variable | Description |
|---|---|
| `USER_IS_ONLINE_ACTION_TIME_DELAY` | Delai d'inactivite avant qu'un utilisateur soit considere hors ligne (en minutes) |

## MyKEY4

### Configuration generale

| Variable | Description |
|---|---|
| `MYKEY4_API_BASE_URL` | URL de base de l'API MyKEY4 |
| `MYKEY4_FULLCALENDAR_LICENCE_KEY` | Cle de licence FullCalendar |

### Connexion Backoffice (SSO)

| Variable | Description |
|---|---|
| `MYKEY4_AUTHORITY_URL` | URL de l'autorite OIDC pour le backoffice |
| `MYKEY4_LOGOUT_URL` | URL de deconnexion SSO |
| `MYKEY4_SCOPE` | Scopes OIDC demandes |
| `MYKEY4_BASE_API_URL` | URL de base de l'API MyKEY4 pour le backoffice |
| `MYKEY4_FO_AUTHORITY_URL` | URL de l'autorite OIDC pour le frontoffice |

### Authentification API (Machine-to-Machine)

| Variable | Description |
|---|---|
| `MYKEY4_AUTHENTICATION_CLIENT_ID` | Client ID pour l'authentification M2M |
| `MYKEY4_AUTHENTICATION_CLIENT_SECRET` | Client secret pour l'authentification M2M |
| `MYKEY4_AUTHENTICATION_SCOPE` | Scopes demandes pour l'authentification M2M |
| `MYKEY4_AUTHENTICATION_GRANT_TYPE` | Type de grant OAuth (`client_credentials`) |

### Portail MyKEY4

| Variable | Description |
|---|---|
| `MYKEY4_PORTAIL_URL` | URL du portail de synchronisation MyKEY4 |
| `MYKEY4_PORTAIL_API_KEY` | Cle API du portail MyKEY4 |

## Generateur de licences

Variables utilisees lors de la generation d'une nouvelle licence.

| Variable | Description |
|---|---|
| `LICENCE_GENERATOR_SHARED_PATH` | Chemin du dossier partage (`%s` = placeholder licence) |
| `LICENCE_GENERATOR_SHARED_PATH_URL` | URL du dossier partage |
| `LICENCE_GENERATOR_DOMAIN` | Domaine de la licence generee |

## AHPRA

Integration avec l'API de l'Australian Health Practitioner Regulation Agency.

| Variable | Description |
|---|---|
| `AHPRA_API_KEY` | Identifiant d'authentification API AHPRA |
| `AHPRA_API_PWD` | Mot de passe API AHPRA |
| `AHPRA_API_URL` | Chemin du endpoint de recherche AHPRA |
| `AHPRA_API_HOST` | URL de base de l'API AHPRA |

## Artifact

| Variable | Description |
|---|---|
| `ARTIFACT_API_KEY` | Cle API Artifact |
| `ARTIFACT_API_URL` | URL de base de l'API Artifact |

## Darwin Video Intelligence

| Variable | Description |
|---|---|
| `DARWIN_VIDEO_INTELLIGENCE_API_BASE_URL` | URL de base de l'API Darwin Video Intelligence |
| `DARWIN_VIDEO_INTELLIGENCE_API_TOKEN` | Token d'authentification API Darwin |

## Matomo

| Variable | Description |
|---|---|
| `MATOMO_TOKEN_AUTH` | Token d'authentification pour l'API Matomo (analytics) |

## DeepL (Traduction automatique)

Utilise pour la traduction automatique des sous-titres video.

| Variable | Description |
|---|---|
| `DEEPL_API_TRANSLATIONS_URL` | URL de base de l'API DeepL |
| `DEEPL_API_TRANSLATIONS_AUTH_KEY` | Cle d'authentification API DeepL |

## Cron Master

| Variable | Description |
|---|---|
| `CRON_MAX_CHILDREN` | Nombre maximum de processus enfants pour le cron master |