# Système Panic Overlay — Déploiement

## 1. Fichiers à déposer par FTP

Crée un dossier dédié sur ton hébergement, par ex. :
```
/homez.1585/llorkfy/panic/
```
(ou un sous-domaine dédié type `panic.llork.fr` pointant vers ce dossier)

Dépose dedans :
- `api.php`
- `overlay.html`
- `control.html`
- `state.json`
- **ton image** de panic, renommée `panic.jpg` (ou change le nom dans `overlay.html`, ligne `src="panic.jpg"`)

## 2. Changer le token de sécurité

Dans **`api.php`** ET **`control.html`**, remplace :
```
CHANGE_MOI_avec_un_token_long_et_random_123456
```
par la **même** chaîne aléatoire longue dans les deux fichiers (ex. généré avec un gestionnaire de mots de passe). Ça évite que n'importe qui trouvant l'URL puisse déclencher le panic.

## 3. Droits d'écriture

`state.json` doit être modifiable par PHP. Sur OVH mutualisé, PHP tourne en général sous ton propre utilisateur donc ça fonctionne nativement. Si tu as une erreur d'écriture, passe le fichier en `664` ou `666` via ton client FTP (clic droit → permissions).

## 4. Protéger control.html (recommandé)

Le token est visible dans le code source de `control.html`. Pour une compétition, ajoute en plus une protection par mot de passe via le manager OVH :
```
Hébergements → ton hébergement → onglet "Sécurité"
→ Protéger un répertoire par mot de passe → sélectionner /panic/
```
Ça ajoute une couche de protection supplémentaire indépendante du token.

## 5. Configuration dans OBS

1. Ajoute une source **"Navigateur" (Browser Source)**
2. URL : `https://tondomaine.fr/panic/overlay.html`
3. Largeur/Hauteur : identiques à ta résolution de canevas (ex. 1920x1080)
4. **Décoche** "Arrêter la source quand elle n'est pas visible" (sinon le polling s'arrête quand tu changes de scène)
5. Coche "Actualiser le navigateur lorsque la scène devient active" si tu veux forcer un refresh à chaque changement de scène (pas obligatoire, le polling suffit)

### Pour que l'overlay soit visible sur TOUTES les scènes
Deux options :
- Ajoute la même source Browser dans chaque scène (le plus simple)
- Ou utilise une **scène "Global"** en gardant cette source dans une scène séparée que tu superposes via un groupe de scènes/Studio Mode, ou (si ta version d'OBS le permet) marque la source comme "source globale" via clic droit.

## 6. Utilisation en live

- Ouvre `https://tondomaine.fr/panic/control.html` sur un téléphone ou un second écran, à portée de main pendant la compétition.
- Bouton **PANIC** → l'image plein écran apparaît dans OBS en ~0,5s.
- Bouton **CLEAR** → l'overlay redevient transparent, en ~0,5s.

## Notes techniques
- Le système fonctionne par *polling* (vérification toutes les 500ms) plutôt que par WebSocket/SSE : c'est volontaire, car un hébergement mutualisé OVH ne supporte pas bien les connexions persistantes longue durée en PHP-FPM. 500ms de latence est largement suffisant pour cet usage.
- Aucune base de données requise, tout est stocké dans `state.json`.
- Tu peux ajuster `POLL_MS` dans `overlay.html` si tu veux une réactivité plus fine (250ms par ex.), au prix d'un peu plus de requêtes serveur.
