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