# BBTEK Radio & TV — Guide d'installation pas a pas

Ce guide suppose que tu as deja :
- Un VPS OVH sous Debian avec Apache/PHP/MySQL (comme pour bbtekofficiel.com)
- Un acces SSH (PuTTY) et FTP (FileZilla)
- Le domaine bbtekofficiel.com deja configure

---

## ETAPE 1 — Configurer le DNS

Va dans ton espace OVH (zone DNS de bbtekofficiel.com) et ajoute deux enregistrements de type A :

```
Type A   radio.bbtekofficiel.com   -> IP de ton VPS
Type A   tv.bbtekofficiel.com      -> IP de ton VPS
```

La propagation DNS peut prendre de quelques minutes a quelques heures.
Verification (depuis ton PC ou via SSH) :
```
dig radio.bbtekofficiel.com +short
dig tv.bbtekofficiel.com +short
```
Les deux doivent afficher l'IP de ton VPS.

---

## ETAPE 2 — Connexion au VPS

Connecte-toi en SSH via PuTTY, puis passe en root :
```
sudo -i
```

Transfere le dossier `bbtek-radio-tv` complet sur le VPS via FileZilla (par exemple dans `/root/bbtek-radio-tv`), ou clone-le si tu le mets sur un depot Git.

---

## ETAPE 3 — Installer Icecast2 (radio)

```
cd /root/bbtek-radio-tv/scripts
chmod +x *.sh
./01-install-icecast.sh
```

Puis edite le fichier de config genere avec les vraies valeurs :
```
nano /etc/icecast2/icecast.xml
```
Remplace les 3 mots de passe (`source-password`, `relay-password`, `admin-password`) par des mots de passe forts et uniques — **note-les bien**, tu en auras besoin pour configurer ton logiciel d'encodage (BUTT, Mixxx, etc.).

Redemarre Icecast :
```
systemctl restart icecast2
```

Verifie qu'il tourne :
```
systemctl status icecast2
curl http://127.0.0.1:8000/status.xsl
```

---

## ETAPE 4 — Installer Nginx + RTMP (TV)

```
./02-install-nginx-rtmp.sh
```

Ensuite, edite `/etc/nginx/nginx.conf` :
1. Ajoute le contenu de `config/nginx/nginx-rtmp-block.conf` **a la fin du fichier** (en dehors de tout bloc `http{}`)
2. Ajoute le contenu de `config/nginx/nginx-site.conf` **a l'interieur du bloc `http{}`**

```
nano /etc/nginx/nginx.conf
```

Teste et redemarre :
```
nginx -t
systemctl restart nginx
```

---

## ETAPE 5 — Configurer Apache (VirtualHosts + SSL)

```
./03-apache-vhosts.sh
```

Ce script :
- Active les modules Apache necessaires (proxy, headers...)
- Copie et active les VirtualHosts pour radio.bbtekofficiel.com et tv.bbtekofficiel.com
- Te propose de generer les certificats SSL automatiquement (Certbot) si le DNS est deja propage

Si tu reponds "non" a la question DNS, relance plus tard uniquement cette commande :
```
certbot --apache -d radio.bbtekofficiel.com -d tv.bbtekofficiel.com
```

---

## ETAPE 6 — Base de donnees MySQL

Cree une base de donnees et un utilisateur MySQL dedie (via phpMyAdmin ou en ligne de commande) :
```sql
CREATE DATABASE bbtek_radio_tv CHARACTER SET utf8mb4;
CREATE USER 'bbtek_radio'@'localhost' IDENTIFIED BY 'UN_MOT_DE_PASSE_FORT';
GRANT ALL PRIVILEGES ON bbtek_radio_tv.* TO 'bbtek_radio'@'localhost';
FLUSH PRIVILEGES;
```

Importe le schema :
```
mysql -u bbtek_radio -p bbtek_radio_tv < database/schema.sql
```

---

## ETAPE 7 — Deployer le site web

1. Via FileZilla, envoie tout le contenu du dossier `web/` vers le repertoire web de ton site principal (par exemple un sous-dossier `radiotv/` sur bbtekofficiel.com, ou un VirtualHost dedie si tu preferes un 3e sous-domaine comme `www.bbtekofficiel.com` reste separe).

   > Recommandation : cree un 3e sous-domaine simple, par exemple `player.bbtekofficiel.com` ou heberge directement sur `bbtekofficiel.com/radiotv/`, qui sera la vitrine consultee par le public — les sous-domaines `radio.` et `tv.` ne servent qu'aux FLUX bruts (audio/HLS), pas au site.

2. Edite `web/includes/config.php` avec les vrais identifiants MySQL (DB_USER, DB_PASS) et les URLs de flux definies a l'etape 3 et 4.

3. Verifie les permissions du dossier uploads :
```
chown -R www-data:www-data uploads/
chmod -R 755 uploads/
```

---

## ETAPE 8 — Creer le compte admin

Ouvre dans ton navigateur :
```
https://ton-domaine/install.php
```
Remplis le formulaire pour creer ton premier compte administrateur.

**Important : supprime immediatement le fichier `install.php` du serveur apres usage** (via FileZilla), il ne doit jamais rester en ligne.

---

## ETAPE 9 — Diffuser en direct

**Radio** : configure ton logiciel d'encodage (BUTT, Mixxx, OBS...) avec :
- Adresse serveur : `radio.bbtekofficiel.com`
- Port : `8000`
- Point de montage : `/stream`
- Mot de passe source : celui defini a l'etape 3

**TV** : configure OBS Studio avec :
- Service : Personnalise
- Serveur : `rtmp://IP_DU_VPS/live` (ou `rtmp://tv.bbtekofficiel.com/live` si le DNS/firewall le permet en direct)
- Cle de flux : n'importe quel nom, ex. `live`

Une fois le flux actif, va dans l'admin (`/admin/parametres.php`) et active les interrupteurs "EN DIRECT" pour radio et TV. Les lecteurs apparaitront automatiquement sur la page d'accueil du site.

---

## Recapitulatif des URLs importantes

| Usage | URL |
|---|---|
| Site public | `https://bbtekofficiel.com/...` (selon ton choix a l'etape 7) |
| Flux radio brut (Icecast) | `https://radio.bbtekofficiel.com/stream` |
| Flux TV brut (HLS) | `https://tv.bbtekofficiel.com/hls/live.m3u8` |
| Admin | `https://ton-domaine/admin/login.php` |
| Installation (a supprimer apres usage) | `https://ton-domaine/install.php` |

---

## Prochaines ameliorations possibles (a la demande)
- Application Android/PWA (comme fait pour BBTEK SCAN et Diiwaanul Quluumi Diiniyah)
- Statistiques d'ecoute en temps reel
- Systeme de notifications quand le direct commence
- Chat en direct pour les auditeurs/spectateurs
- Enregistrement automatique du direct pour alimenter le replay
