Skip to content

Operator Usage Guide

This page covers the operator workflow once an admin is bootstrapped (see first-admin.md).

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 seed after pnpm 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.

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.

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).

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.

Available transitions :

  • draftscheduled (planning confirmed)
  • scheduledlive (commentator about to connect)
  • liveended (broadcast complete)
  • endedarchived (long-term storage)

Click the buttons in the event detail. Invalid transitions are hidden.

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-audio track 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-audio track. 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 /whip endpoint, so the path never worked in prod. v1.6 replaced WHIP with in-browser publish.

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.

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.

  • 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).