Documentation Overlive
Guide utilisateur complet pour gérer un tournoi esports de bout en bout — configuration du compte, tournois Challonge, postes de jeu, arbitres mobiles, overlays OBS pour la diffusion, et billing.
Astuce : Cmd/Ctrl + P puis "Enregistrer en PDF" fonctionne aussi.
Nouveautés v1.4.0
Cette version est un changement d'architecture majeur. Avant, plusieurs utilisateurs du SaaS partageaient le même état global (couleurs, stations, arbitres, noms de tournois Challonge). Maintenant, chaque compte possède son propre environnement totalement isolé.
Multi-tenant total
- Stations, arbitres, casters, configuration Challonge, couleurs, rosters : chaque utilisateur a maintenant son propre fichier de stockage, isolé sur disque.
- Identifiant opaque par utilisateur : ton URL d'overlay contient un slug
usr-XXXXXXXXunique (par exemple?owner=usr-0ayu27si). Ce slug est déterministe (toujours le même pour toi) mais impossible à deviner ou à énumérer — il dépend d'un sel côté serveur. - Tous les endpoints
/api/*sont protégés : si tu n'es pas connecté, tu reçois401 Authentification requise. Avant, les routes publiques permettaient à un attaquant de lister les stations/arbitres/config des autres utilisateurs. - Les URLs d'overlay OBS doivent contenir
?owner=<slug>: le dashboard l'ajoute automatiquement dans l'URL générée. Sans ce paramètre, l'overlay tombe sur le mode legacy (par défaut = ton propre tenant si tu es connecté, sinon défaut global). - Console arbitre
/referee/<token>: reste publique (le token de 64 bits tient lieu d'authentification implicite), mais les broadcasts vont uniquement vers les overlays du bon tenant.
Persistence après redeploy
Le bug critique "mes postes disparaissent à chaque redéploiement" est corrigé. Le dossier static/ pointait en dur sur l'image Docker, donc tout fichier JSON écrit pendant l'exécution (stations, casters, config) était écrasé au prochain bash deploy_saas.sh.
- Maintenant,
STATIC_DIR=/data/staticdans le conteneur — monté sur le volume Dockertourney-saas-data, donc persistant. - Au démarrage, le serveur migre automatiquement les fichiers legacy (
stations.json,casters.json,referee_logs.json,tournament_names.json,players.json, styles) depuis l'image vers ton dossier tenant. - Tout est désormais rangé par utilisateur dans
/data/static/avatars/tenants/<user_id>/.
Identité opaque et non énumérable
Le slug usr-XXXXXXXX est calculé comme b32(user_id XOR TENANT_SLUG_SALT). Il change donc de forme si tu changes le sel serveur, mais reste stable pour un utilisateur donné tant que le sel ne bouge pas. Pas de /1, /2, /3 prévisibles.
Tests
10 nouveaux tests d'isolation multi-tenant (pytest). Total : 76 tests verts, lancés à chaque modification.
Notes de migration
- Tes anciens fichiers de configuration ont été automatiquement rangés dans
/data/static/avatars/tenants/<ton_user_id>/au premier boot de la v1.4.0. - L'URL d'overlay que tu avais sauvegardée avant cette mise à jour continue de fonctionner (fallback legacy), mais on te recommande de regénérer l'URL depuis le dashboard pour avoir le
?owner=<slug>. - Le mot de passe admin a été régénéré et n'existe plus que dans la base (hash scrypt). L'ancienne variable d'env
SAAS_ADMIN_PASSWORDest ignorée.
1. Démarrage rapide
Bienvenue ! Cette doc couvre tout ce que tu peux faire avec Overlive en tant qu'organisateur de tournoi. Suis les sections dans l'ordre pour une prise en main complète, ou saute directement au sujet qui t'intéresse via la table des matières à droite.
1.1 Connexion
Ouvre https://payany.famille-canadas.fr/login et connecte-toi avec ton email et ton mot de passe.
1.2 Créer un compte
Si tu n'as pas encore de compte, l'inscription est gratuite et immédiate.
1.3 Mot de passe oublié
Si tu as perdu ton mot de passe, demande un lien de réinitialisation par mail.
1.4 Premier pas dans la console
Une fois connecté, tu arrives sur la console principale. Elle est organisée en sections :
- Sidebar gauche — navigation entre les sections
- Top bar — statut de connexion WebSocket, version, accès rapide à la maintenance
- Centre — contenu de la section active
2. Compte & abonnement
Gère tes informations personnelles, ton abonnement et tes paiements depuis l'onglet Mon Compte.
2.1 Plans disponibles
| Plan | Prix | Idéal pour |
|---|---|---|
| Essai gratuit | 0 € | Découverte, tournoi test |
| Pro | 9,99 €/mois | Tournois réguliers, overlays custom, branding |
| Pro Annuel | 99 €/an | Organisateurs toute l'année (2 mois offerts) |
3. Tournois (Challonge)
Overlive s'appuie sur Challonge pour gérer les brackets. Tu crées ton tournoi sur Challonge, tu colles ta clé API, et Overlive se synchronise.
3.1 Configuration de la clé API Challonge
- Va sur
challonge.com/settings/developeret copie ta clé API - Dans Overlive, ouvre Réglages → Configuration API Challonge
- Colle ta clé et clique sur Enregistrer & vérifier
- Le bouton passe au vert si la clé est valide
3.2 Sélectionner un tournoi
Ouvre l'onglet Tournoi. Overlive liste tous tes tournois Challonge et tu en sélectionnes un actif. Les matchs et participants se chargent automatiquement.
TOURNEY_DOCS_MOCK=1 dans l'env du conteneur.
3.3 Exemple de joueurs (démo)
Voici les 8 joueurs d'exemple utilisés dans cette documentation. Les avatars sont des initiales sur gradient (style Discord / Notion) — chaque joueur a sa propre couleur et son tag d'équipe.
4. Postes de jeu (Stations)
Un poste de jeu = une station physique où se déroule un match. Chaque poste a son overlay dédié qu'OBS affichera.
4.1 Créer un poste
- Ouvre Overlays → Postes de jeu
- Donne un identifiant (ex :
poste-1) et un libellé (ex :Poste 1) - Choisis une couleur (visible sur l'overlay overview)
- Clique sur Créer
4.2 Assigner un match à un poste
Une fois le poste créé, tu peux lui assigner un match via le menu déroulant. Le match est alors diffusé en direct sur l'overlay dédié.
4.3 Les 3 overlays par poste
| Type | Usage OBS | URL pattern |
|---|---|---|
| Score bas | Bas d'écran, sous un cast | /overlay/score_desktop?setup=poste-1 |
| Score haut (petit) | Bandeau haut compact | /overlay/score-below?setup=poste-1 |
| Score haut (grand) | Plein écran pendant un match | /overlay/score_below_desktop?setup=poste-1 |
5. Arbitres
Chaque poste a son arbitre qui saisit les scores en direct depuis un téléphone ou une tablette.
5.1 Créer un arbitre
- Va dans Overlays → Arbitres
- Remplis : nom, email (optionnel mais recommandé), poste, PIN (optionnel, 4-8 chiffres)
- Clique sur Créer
- Si tu as renseigné un email, l'arbitre reçoit automatiquement un mail avec son code PIN et son lien de console
- Son code PIN en gros
- Un bouton "Ouvrir ma console arbitre" (lien direct)
- Valable tant que le PIN n'est pas régénéré
5.2 Générer toutes les cartes PDF
Le bouton "Générer toutes les cartes (PDF + nouveaux PINs)" crée un PDF par arbitre contenant son QR code + PIN, et un ZIP avec toutes les cartes. Attention : les anciens PINs sont invalidés.
5.3 Auditer l'activité
Chaque action d'un arbitre (login, sélection de match, MAJ score, déclaration gagnant, reset) est consignée dans un journal consultable depuis l'icône à droite de chaque arbitre.
6. Casters (Commentateurs)
Affiche les noms et avatars de tes commentateurs sur l'overlay dédié pour donner une touche pro à ta diffusion.
6.1 Configurer
- Ouvre Tournoi → Commentateurs
- Remplis pour chaque caster : nom, pseudo, plateforme (Twitch, X, YouTube, Instagram, TikTok, Discord, Bluesky, custom)
- Upload un avatar (PNG/JPG/SVG)
- Choisis la durée d'affichage (par défaut 8 secondes)
6.2 Afficher sur l'overlay
L'overlay caster est disponible à l'URL :
/overlay/casters_desktop
Ajoute cette URL comme source "Navigateur" dans OBS.
7. Overlays OBS
Overlive fournit 5 overlays prêts à intégrer dans OBS Studio comme sources "Navigateur".
7.1 Overlay Score (match en direct)
Affiche les deux joueurs, leurs scores, et le round en cours. Visible pendant tout le match.
URL à utiliser dans OBS :
/overlay/score_desktop?setup=poste-1
7.2 Overlay Casters
Affiche les cartes des commentateurs avec leur avatar et pseudo pendant les temps morts.
7.3 Overlay Recap (tous les matchs)
Liste tous les matchs du tournoi avec leur statut (live / à venir / terminé).
7.4 Overlay Notification
Notifications toast en direct (début de match, gagnant, reset).
7.5 Overlay Overview (bracket)
Vue d'ensemble du bracket complet du tournoi.
8. Console arbitre (mobile)
L'arbitre accède à sa console depuis un téléphone, en scannant le QR code fourni à la création.
8.1 Connexion
- L'arbitre scanne son QR code (ou clique le lien reçu par mail)
- Il arrive sur la console de son poste
- Il peut saisir son PIN manuellement (4-8 chiffres) s'il n'a plus le lien
8.2 Actions disponibles
- Sélection du match — choisir le match à arbitrer
- Démarrer le match — passe le statut à "live"
- Score +/- — incrémenter/décrémenter les scores des deux joueurs
- Déclarer le gagnant — termine le match
- Réinitialiser — remet scores + gagnant à zéro
8.3 Synchronisation temps réel
Toutes les actions sont synchronisées en direct via WebSocket avec les overlays OBS. Pas besoin de rafraîchir — les changements apparaissent en moins d'une seconde à l'écran.
9. Diffusion en direct
Pour streamer ton tournoi sur Twitch, YouTube ou Facebook, suis ce pipeline :
9.1 Setup OBS Studio
- Télécharge OBS Studio sur
obsproject.com - Crée une scène "Tournoi — Vue principale"
- Ajoute tes sources habituelles (caméra, micro, capture de jeu)
- Pour chaque overlay Overlive, ajoute une source "Navigateur" avec :
- URL : celle générée par Overlive (ex :
https://payany.famille-canadas.fr/overlay/score_desktop?setup=poste-1) - Largeur / Hauteur : 1920 × 1080 (ou résolution de ta scène)
- Cocher "Rafraîchir le navigateur quand la scène devient active"
- Cocher "Source transparente" (indispensable !)
- URL : celle générée par Overlive (ex :
- Positionne l'overlay là où tu veux (ex : overlay score en bas)
9.2 Brancher Twitch / YouTube
Dans OBS, va dans Paramètres > Diffusion et configure :
- Service : Twitch / YouTube / Facebook
- Clé de stream : récupère-la sur le dashboard de la plateforme
- Bitrate : 4000-6000 kbps (selon ta connexion)
9.3 Checklist avant de partir en live
| ✓ | Vérification |
|---|---|
| ☐ | Au moins un poste créé + un arbitre assigné |
| ☐ | Le match en cours est sélectionné sur le dashboard |
| ☐ | Les 5 overlays sont dans OBS avec "Source transparente" cochée |
| ☐ | Les casters ont un avatar et un pseudo |
| ☐ | L'arbitre a testé son lien (scan QR) sur son téléphone |
| ☐ | Connexion internet stable (test speedtest.net > 10 Mbps upload) |
10. Dépannage
10.1 L'overlay ne s'affiche pas dans OBS
Cause fréquente : "Source transparente" pas cochée. Ouvre les propriétés de la source navigateur et coche la case.
Autre cause : l'URL est inaccessible depuis OBS. Teste-la dans un navigateur d'abord — si elle ne charge pas, c'est un problème réseau (pare-feu, etc.).
10.2 Le paiement ne crédite pas le compte
Le paiement passe par Stripe. Si les crédits n'arrivent pas :
- Va sur Dashboard Stripe → Développeurs > Webhooks
- Vérifie qu'un endpoint est configuré pour
https://payany.famille-canadas.fr/api/billing/webhook - Vérifie que le
whsec_...dans Admin > Billing correspond à celui de Stripe - Regarde les 50 derniers webhooks reçus dans Admin > Billing > Webhooks
10.3 L'arbitre ne reçoit pas le mail
Si SMTP n'est pas configuré, les mails ne partent pas réellement mais sont consignés dans la table email_history. Visible dans Mon Compte > Mes derniers emails.
Pour vraiment envoyer les mails : configure SMTP dans Admin > Billing > SMTP (SendGrid, Mailgun, Gmail, etc.).
10.4 L'email de vérification a un lien sans domaine
Le mail contient http://verify-email/?token=... au lieu de https://payany.famille-canadas.fr/verify-email?token=.... C'est corrigé en v1.3.3 : le serveur détecte les headers reverse-proxy (X-Forwarded-Proto, X-Forwarded-Host) et reconstruit la bonne URL.
10.5 Le match en cours ne se met pas à jour sur l'overlay
Cause fréquente : le WebSocket est déconnecté. Vérifie la pastille en haut à droite du dashboard : CONNECTÉ = OK NON CONNECTÉ = problème.
Si "NON CONNECTÉ", rafraîchis la page (Cmd+R / F5).
10.6 Contacter le support
Si rien de tout ça ne marche, ouvre un ticket avec :
- Description du problème
- Capture d'écran
- URL impactée
- Navigateur + version
Overlive v1.4.0 — Documentation générée pour la prod
Cette page est aussi accessible hors-ligne en PDF via le bouton "Télécharger en PDF" en haut.