# 📄 Documentation d'initialisation du projet Media Manager

## ✅ Prérequis obligatoires

Avant de lancer l'installation, assurez-vous que votre environnement remplit toutes les conditions suivantes :

### 🧰 Outils système nécessaires

- **Git** installé
- **Docker Desktop** installé et fonctionnel
- **Docker Compose** disponible (inclus avec Docker Desktop)

### 💻 Environnement compatible

Vous devez être dans l’un des environnements suivants :
- ✅ **Linux natif**
- ✅ **MacOS**
- ✅ **Windows avec WSL 2** (**Ubuntu24-04 recommandé**)

⚠️ **Attention : Git Bash ou le terminal Docker Desktop ne sont pas compatibles.**

### 🛠️ Installation et configuration automatique de la distribution WSL (Windows uniquement)

Si vous êtes sous Windows et que WSL n’est pas encore installé ou configuré, vous pouvez forcer l’installation et la configuration avec les commandes suivantes à exécuter dans PowerShell (en mode administrateur) :

```powershell
Vérifier que la distribution est n'est pas docker-desktop
wsl --list --verbose

# Installe WSL avec la distribution Ubuntu 24.04 si ce n'est pas déjà fait
wsl --install -d Ubuntu-24.04

# Mettre à jour la distribution
sudo apt update && sudo apt install dos2unix make zip

# Définit cette distribution comme celle par défaut
wsl --set-default Ubuntu-24.04

# Active l’intégration WSL avec Docker Desktop (à configurer aussi côté interface graphique Docker)
# Il est recommandé de redémarrer Docker Desktop ensuite
```

Veillez à ensuite relancer Docker Desktop et ouvrir votre terminal dans cette distribution WSL par défaut.

### 📦 Intégration Docker dans WSL (Windows uniquement)

Sous Windows :
- **Docker Desktop doit être configuré pour fonctionner avec WSL**
- Ouvrez Docker Desktop → `Settings > Resources > WSL Integration`
    - ✅ Activez “Enable integration with my default WSL distro”
    - ✅ Cochez votre distribution (ex : `Ubuntu24-04`, etc.)
---

## 🚀 Étapes d'installation

### 1. Ouvrir un terminal WSL et se placer dans le dossier de vos projets

Sous Windows :
- Ouvrez un **terminal WSL** (Ubuntu ou autre)
- Puis placez-vous dans le dossier de vos projets :

```bash
cd /mnt/c/Users/votre_nom/Documents/Projects
```

### 2. Récupérer le projet

```bash
git clone git@bitbucket.org:key4team/media-manager.git
cd media-manager
```

### 3. Préparer l'archive d'initialisation

- Placez à la racine du dossier projet le fichier :  
  `dev-init-archive.zip`
- Ce fichier vous est fourni par le Lead Tech de l'équipe K4econgress.
- **Ne lancez jamais l'initialisation sans cette archive**.

---

### 4. Lancer l’initialisation automatique

Le script `dev-init-run.sh` est exécutable directement :

```bash
./dev-init-run.sh
```

🔒 Le script vérifie :
- Que Docker est bien disponible dans votre WSL
- Que `make`, `docker`, `id`, `whoami`, `zip`, `nvm` sont présents
- Que l’environnement est compatible
- Que les UID/GID sont correctement passés aux conteneurs

---

### 5. Ce que fait le script automatiquement

- Extraction de l’archive `dev-init-archive.zip`
- Construction des conteneurs Docker
- Démarrage des conteneurs
- Import de la base de données depuis `dump.sql`
- Installation des dépendances PHP via Composer
- Exécution des migrations Doctrine
- Nettoyage du dossier temporaire d’import
- Mise à jour automatique du fichier `.env` avec :
  - `UID`, `GID`, `DOCKER_UID` et `UNAME` de l’utilisateur courant

---

## 🔧 Configuration manuelle à finaliser

### A. Modifier votre fichier `hosts`

Ajoutez les lignes suivantes :

```
127.0.0.1       api.prod.stream-up.local
127.0.0.1       root.stream-up.local
127.0.0.1       default.prod.stream-up.local
127.0.0.1       jsbeta.stream-up.local
127.0.0.1       imgbeta.stream-up.local
127.0.0.1       cdnfiles.stream-up.local
127.0.0.1       files.stream-up.local
127.0.0.1       cdncache.stream-up.local
127.0.0.1       io.stream-up.local
127.0.0.1       wslivebeta.stream-up.local
127.0.0.1       wschatbeta.stream-up.local
127.0.0.1       mykey4-ers.prod.stream-up.local
```

- 📌 Sous Linux / MacOS: `/etc/hosts`
- 📌 Sous Windows (hors WSL) : `C:\Windows\System32\drivers\etc\hosts`

---

### B. Certificats SSL

Des certificats auto-signés sont nécessaires.

Consultez :

```
docs/technical/selfSignCertficates.md
```

---

## 🌐 Accès au projet

Une fois l’installation terminée :

🔗 https://mykey4-ers.prod.stream-up.local/

---

## 🔐 Accès aux widgets (via SSO MyKey4)

Interface :  
🔗 https://mykey4-ers.prod.stream-up.local/login

⚠️ L’authentification se fait via le SSO intégré, un compte est nécessaire sur le SSO MyKey4

---

## 🔐 Accès au backoffice (sans le SSO MyKey4)

Interface :  
🔗 https://mykey4-ers.prod.stream-up.local/adminlogin

⚠️ L’authentification se fait via le système d'authentification de l'application et permet de configurer le CMS

Identifiant : k4dev
Mot de passe : k4dev

---

## 📌 Notes importantes

- Le script ne relance pas une initialisation complète si le fichier `.dev-init-project-initialized` existe.
- Si vous devez refaire une initialisation :  
  Supprimez `.dev-init-project-initialized`, les volumes Docker associés, et relancez le script.
- **Ne jamais modifier directement la base importée**, sauf consigne explicite.
- En cas de doute ou d’erreur, demandez conseil à un membre de l’équipe Media Manager.
