Operator Usage Guide
This page covers the operator workflow once an admin is bootstrapped (see first-admin.md).
1. Login
Section titled “1. Login”Open https://<your-domain>/login and sign in with your admin credentials.
If 2FA is enabled, enter the TOTP code from your authenticator app.
In development, a “Dev only — Connexion rapide” panel below the form
lets you click-login as [email protected]. Tree-shaken in production.
Tip — to skip steps 2-4 below, run
pnpm seedafterpnpm dev: it bootstraps a demo event + commentator + invite via the API and prints the URLs ready to paste. Useful when you just need a working live view to hack on.
2. Create an event
Section titled “2. Create an event”From the events list, click “Nouveau”. Fill in :
- Nom — display name (e.g., “FC Sion vs Servette”)
- Description — optional notes
- Date de début / fin — optional scheduling
The event is created in draft status. Click on it to open the detail view.
3. Add a commentator
Section titled “3. Add a commentator”In the event detail, scroll to “Commentateurs” and click “Ajouter”. Fill in :
- Nom — commentator’s display name
- Langue — fr/en/de/it
- Audio channels — optional, used for multi-channel hardware setups
- Gain micro — start at 0 dB
v1.x only allows one commentator per event (mono-commentator scope).
4. Generate an invite link
Section titled “4. Generate an invite link”In the commentator card, expand “Invitations” and click “Générer une invitation”. Options :
- Mot de passe (optionnel) — adds a password gate on the link
- Usage unique — link burns after first use
- Expiration — automatic expiry timestamp
After generation, the full URL is displayed once. Click “Copier” to copy to clipboard, then send to the commentator (SMS, email, Telegram, etc).
⚠️ The URL is shown only once — copy it before closing the modal.
5. Transition event status
Section titled “5. Transition event status”Available transitions :
draft→scheduled(planning confirmed)scheduled→live(commentator about to connect)live→ended(broadcast complete)ended→archived(long-term storage)
Click the buttons in the event detail. Invalid transitions are hidden.
6. Go live (studio side)
Section titled “6. Go live (studio side)”Click “Démarrer en direct” to open the live view :
- LiveKit token is minted server-side, studio joins the commentator’s room
- Audio meter animates at 60Hz
- On-air badge updates in real-time via WebSocket when the commentator clicks ON-AIR
New in v1.2 — two additional video panels appear once the commentator connects:
- ComCam appears as a video panel beside the PGM preview when the commentator publishes their webcam. Use the eye icon to hide it locally if it distracts from the audio meter. If the commentator cuts their cam, you see the placeholder.
- PGM preview shows what the commentator sees, audio muted to avoid feedback.
7. PGM + Talkback in-browser publish (v1.6+)
Section titled “7. PGM + Talkback in-browser publish (v1.6+)”The studio publishes PGM video+audio and Talkback intercom audio directly from the browser — no OBS, no external streamer.
In the live view, two panels appear under the commentator card :
- PGM — pick a webcam + a mic, click “Publier”. The commentator sees
the video full-screen behind the on-air controls. Audio is routed to the
pgm-audiotrack and is mixed into the commentator’s foldback. - Talkback — pick the intercom mic (typically a closed-back headset or
the régie talkback handset), click “Publier”. Audio goes to the
talkback-audiotrack. The commentator hears it on a separate channel with the talkback PiP placeholder visible in the corner of the kiosk.
The publish state is per-tab. If the operator closes the studio tab, both tracks unpublish — the commentator drops back to silence.
Historical note : v1.1–v1.5 routed PGM via OBS WHIP. The deployed LiveKit v1.7.2 lacks the
/whipendpoint, so the path never worked in prod. v1.6 replaced WHIP with in-browser publish.
8. Revoke / rotate invites
Section titled “8. Revoke / rotate invites”In the commentator card, expand “Invitations”. For each active invite :
- Révoquer — burns the invite immediately. Useful if the link was leaked.
To rotate (= revoke + new), revoke the existing one then click “Générer une invitation” again.
9. Manage users (admin only)
Section titled “9. Manage users (admin only)”From the events list header, admins see a “Utilisateurs” link. On the users page :
- Ajouter — create a new operator or admin
- Modifier — change role, display name, locale
- Désactiver — soft-delete (user can’t login, audit log preserved)
You cannot disable yourself.
10. Settings
Section titled “10. Settings”- Thème — light/dark toggle (persisted in localStorage)
- Langue — fr/en/de
- Sécurité — configure 2FA, change password
After password change you’re logged out (all sessions revoked).