RubinEagle

Готово к эфиру · оверлей для OBS · локальный шлюз

Hockey Scoreboard

Tauri-хост + Vite/React-оверлей + Rust gateway. Тянет GameState с вашего HTTP API _или_ ведётся вручную из встроенной панели — в обоих случаях шлюз раздаёт оверлей на localhost:8787 и шлёт дифф по WebSocket.

Регулярный турнир по хоккею с шайбой
A
EAG
2
2ПЕР
B
WLV
3
15:43
Сервер · ЛокальноHTTP + WebSocket на :8787Готовый Browser Source для OBS

Настольный хост

Два способа кормить табло.

На старте хост спрашивает, откуда брать данные: внешний JSON API или встроенный пульт в отдельном окне. Оба пути выводят на один и тот же URL оверлея, готовый для OBS.

01

С сервера

Опрашиваем внешний JSON API и транслируем состояние в OBS — как было всё это время.

URL → Проверить → Запустить

02

Локально

Ведём табло вручную из встроенной панели управления — счёт, период, таймер, штрафы.

Поля → Запустить → Панель

Локальный шлюз для OBS

Hockey Scoreboard Host

Источник: внешний сервер · шлюз на :8787 · HTTP + WebSocket.

Данные найдены

Источник и порт

Поле льда

Поле AПоле B

Формат названий

КороткоеПолное

Действия

Ссылка для OBS

Browser Source → вставьте URL.

http://127.0.0.1:8787/

Предпросмотр табло

Зеркало того, что увидит OBS прямо сейчас.

Регулярный турнир по хоккею с шайбой
A
EAG
0
1ПЕР
B
WLV
0
20:00

Референс интерфейса: окно настольного хоста из открытого репозитория (v2).

Панель управления

Ведите счёт вручную. Стримьте мгновенно.

В локальном режиме хост открывает отдельный пульт: турнир и логотип, команды (короткое / полное / лого / счёт), период и таймер с шагом ±5/±10 секунд. Каждое изменение долетает до OBS по WebSocket за кадр.

Панель управления

Турнир · Период · Таймер

онлайн

Турнир

Видимо

Хозяева (H)

EAG
Счёт
2

Период

Номер
2

Таймер

12:43
идёт

Интерактив

Управляйте табло как оператор.

Поставьте часы на паузу, забросьте гол — оверлей реагирует за миллисекунды. В игровой день под капотом та же обвязка.

идёт
Регулярный турнир по хоккею с шайбой
A
EAG
1
1ПЕР
B
WLV
1
11:48

Продукт

Два источника. Один оверлей.

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

Или собрать из исходников

Открыть на GitHub

Tauri v2 · Vite · React · Rust gateway · OBS Browser Source

RubinEagle

Лаборатория громких идей в тихом репозитории.

hello@rubineagle.ru · абсолютно реально (нет)

© 2026 RubinEagle. Топливо: , кривые Безье и «ещё один фикс» в два ночи.