Готово к эфиру · оверлей для OBS · локальный шлюз
Hockey Scoreboard
Tauri-хост + Vite/React-оверлей + Rust gateway. Тянет GameState с вашего HTTP API _или_ ведётся вручную из встроенной панели — в обоих случаях шлюз раздаёт оверлей на localhost:8787 и шлёт дифф по WebSocket.
:8787·Готовый Browser Source для OBSНастольный хост
Два способа кормить табло.
На старте хост спрашивает, откуда брать данные: внешний JSON API или встроенный пульт в отдельном окне. Оба пути выводят на один и тот же URL оверлея, готовый для OBS.
С сервера
Опрашиваем внешний JSON API и транслируем состояние в OBS — как было всё это время.
URL → Проверить → Запустить
Локально
Ведём табло вручную из встроенной панели управления — счёт, период, таймер, штрафы.
Поля → Запустить → Панель
Локальный шлюз для OBS
Hockey Scoreboard Host
Источник: внешний сервер · шлюз на :8787 · HTTP + WebSocket.
Источник и порт
Поле льда
Формат названий
Действия
Ссылка для OBS
Browser Source → вставьте URL.
http://127.0.0.1:8787/Предпросмотр табло
Зеркало того, что увидит OBS прямо сейчас.
Референс интерфейса: окно настольного хоста из открытого репозитория (v2).
Панель управления
Ведите счёт вручную. Стримьте мгновенно.
В локальном режиме хост открывает отдельный пульт: турнир и логотип, команды (короткое / полное / лого / счёт), период и таймер с шагом ±5/±10 секунд. Каждое изменение долетает до OBS по WebSocket за кадр.
Панель управления
Турнир · Период · Таймер
Турнир
Хозяева (H)
EAGПериод
Таймер
Интерактив
Управляйте табло как оператор.
Поставьте часы на паузу, забросьте гол — оверлей реагирует за миллисекунды. В игровой день под капотом та же обвязка.
Продукт
Два источника. Один оверлей.
Tauri-хост, Vite/React-оверлей, Rust gateway — shallow-merge `GameState` с вашего API _или_ ручной ввод из пульта, а потом дифф по WebSocket.
- 01
Сервер-источник
Опрос внешнего JSON; шлюз сливает данные в
GameState(~800 мс цикл, таймаут 5 с) и шлёт диффы. - 02
Локальный пульт
Веди счёт вручную из отдельного окна — команды, счёт, броски, период, таймер, штрафы — всё уходит в gateway и OBS в реальном времени.
- 03
Канал в реальном времени
WebSocket /ws+GET /api/stateна localhost. Browser Source остаётся синхронным с тем, кто ведёт табло. - 04
1 или 2 поля
Поддержка одного льда или двух параллельных кортов — переключение активного поля без рестарта шлюза.
- 05
Брендинг турнира и команд
Название и логотип турнира, лого команд с accent-рамками, режимы коротких / полных имён — всё из
GameStateи сразу в оверлей. - 06
Кроссплатформенный релиз
GitHub Actions собирает установщики для Windows · macOS · Linux. Артефакты — в
apps/desktop-host/src-tauri/target/release/bundle/.
Где заходит
От любительской лиги до эфира.
Один и тот же чёткий оверлей — с одного ноутбука в раздевалке или из ПТС-автобуса у арены.
Любительские лиги
Пятничные коробки и городские листы — хватает локального режима, один URL на бригаду, никакого сервера.
Стриминговые оверлеи
Прямо в OBS как Browser Source — типографика переживает битрейт и кропы, лого с accent-обводкой.
Турнирные дашборды
Перерывы и «комнаты войны» — серверный режим держит каждый каток на одном авторитетном времени.
Установка в один клик
Выберите систему. Откройте OBS.
Установщики собирает GitHub Actions — localhost:8787 поднимается за секунды, URL оверлея вставляется прямо в Browser Source OBS.
v2.0.0Собран из main через GitHub Actions · Tauri v2 · Rust gateway.
Или собрать из исходников
Открыть на GitHubTauri v2 · Vite · React · Rust gateway · OBS Browser Source