StingrayTV Alice

Задача: Обеспечить двустороннюю коммуникацию между Яндексом и ресивером Триколора без модификации прошивки железа, гарантируя безопасность, низкую латентность и отказоустойчивость.

Ключевые технические решения:

1. Безопасность: - Реализация полного цикла OAuth 2.0 / OIDC (Authorization Code Flow) для безопасного линкинга аккаунтов. Токены не хранятся в явном виде, используется ротация refresh-токенов.

3. Сетевое взаимодействие и Discovery: - Реализация Zeroconf/mDNS (через JmDNS) для автоматического обнаружения IP-адреса ресивера в локальной сети. Пользователь не вводит настройки вручную — система самоконфигурируется.

4. DevOps и Infrastructure: - Контейнеризация через Docker (multi-stage build) для минимизации образа и быстрого деплоя на любые хосты (в т.ч. Raspberry Pi или домашний сервер).

Результаты: - Достигнута стабильная задержка выполнения команд. - Реализована полная поддержка сценариев Умного Дома: включение/выключение, переключение каналов, управление громкостью.

Стек: Java 25, Spring Boot 4, Spring Security, OAuth2/OIDC, JmDNS, Docker, REST API, Gradle.

Ссылка на репозиторий: https://github.com/oldzoomer-ru/stingraytv-alice