Architecture overview & Documentation
Базовая идея была в том, чтобы иметь у себя дома удобную и вменяемую инфраструктуру, отвечающую следующим запросам:
- Загружать любой медиа-контент с торрентов по запросу (на стриминговых сервисах очень часто чего-то нет или неправильная озвучка);
- Возможность просматривать контент с различных устройств (телевизоры, приставка и пр.);
- Транскодировать контент в случае, если не удается воспроизвести на каком-то устройстве;
- Иметь связанную со всем этим "файло-помойку";
- Развернуть и интегрировать различные 3rd-party сервисы (органайзеры, календари и пр.), организовать для них точку входа;
- Привязать ко всему этому функционал системы видеонаблюдения, достаточный для домашнего использования.
Зачем?
- Самому удобно;
- Потренироваться в разработке на Go;
- Поиметь небольшой опыт в System Design;
- Показал друзьям - они такую же штуку захотели...
Не все еще перенесено из приватных репозиториев и оформлено
- Веб-интерфейс;
- К некоторым функциям присутсвует доступ через Telegram-бот;
- Поиск информации о фильмах/сериалах (IMDB, Кинопоиск);
- Поиск и выбор оптимальных раздач (RuTracker.org, Rutor, The Pirate Bay);
- Каталогизация контента (еще в разработке);
- Оповещение через Telegram, E-Mail, SMS;
- Транскодирование видео;
- Система видеонаблюдения (в публичном репозитории отсутствует);
- Рестриминг видео (в публичном репозитории отсутствует);
- Сбор тревожных событий с камер и нотификация (в публичном репозитории отсутствует);
- Ряд встроенных 3rd-party сервисов (Nextcloud, Serviio, Gitea).
- Device - набор сервисов, которые выполняются на физическом устройстве пользователя (одноплатный компьютер, сервер и т. д.)
- Remote Server - набор сервисов, которые работают на удаленном сервере (например, на моем VPS).
У меня все эти компоненты работают на домашнем сервере. В дальнейшем планирую попробовать развернуть на одноплатный копмьютер...
- rms-libary - библиотека мультимедия;
- rms-torrent - торрент-клиент;
- rms-notifier - сервис рассылки уведомлений;
- rms-web - веб-интерфейс;
- rms-transcoder - сервис транскодирования видео.
Запускается из под docker-compose. Вынесены в отдельный репозиторий.
- хотелось, чтобы один Telegram-бот мог обслуживать множество клиентов сразу. Делать бота для каждого Device не удобно;
- на внешних сайтах, которые используются для поиска медиа периодически возникают изменения, и поиск перестает работать. Эта логика вынесена на удаленный сервер - чтоб там можно ее было починить и у всех пользователей все бы работало;
- алгоритмы "эвристического" анализа также удобно улучшать собирая статистику с единой точки входа;
- для доступа к торрент-трекерам из рунета все равно нужны VPS & VPN... Локальные средства на Device могут отвалиться и перестать работать.
- rms-media-discovery - сервис для поиска в Интернете информации о медиа и ссылок на загрузку;
- rms-bot-server - Telegram-бот, которые может обсуживать сразу множество пользовательских устройств;
- rms-users - сервис упрощенной идентификации пользователских устройств.
Запускается из под docker-compose. Вынесены в отдельный репозиторий.