Skip to content

RacoonMediaServer/rms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Racoon Media Server

Architecture overview & Documentation

Концепт

Базовая идея была в том, чтобы иметь у себя дома удобную и вменяемую инфраструктуру, отвечающую следующим запросам:

  1. Загружать любой медиа-контент с торрентов по запросу (на стриминговых сервисах очень часто чего-то нет или неправильная озвучка);
  2. Возможность просматривать контент с различных устройств (телевизоры, приставка и пр.);
  3. Транскодировать контент в случае, если не удается воспроизвести на каком-то устройстве;
  4. Иметь связанную со всем этим "файло-помойку";
  5. Развернуть и интегрировать различные 3rd-party сервисы (органайзеры, календари и пр.), организовать для них точку входа;
  6. Привязать ко всему этому функционал системы видеонаблюдения, достаточный для домашнего использования.

Зачем?

  • Самому удобно;
  • Потренироваться в разработке на Go;
  • Поиметь небольшой опыт в System Design;
  • Показал друзьям - они такую же штуку захотели...

Features

Не все еще перенесено из приватных репозиториев и оформлено

  • Веб-интерфейс;
  • К некоторым функциям присутсвует доступ через Telegram-бот;
  • Поиск информации о фильмах/сериалах (IMDB, Кинопоиск);
  • Поиск и выбор оптимальных раздач (RuTracker.org, Rutor, The Pirate Bay);
  • Каталогизация контента (еще в разработке);
  • Оповещение через Telegram, E-Mail, SMS;
  • Транскодирование видео;
  • Система видеонаблюдения (в публичном репозитории отсутствует);
  • Рестриминг видео (в публичном репозитории отсутствует);
  • Сбор тревожных событий с камер и нотификация (в публичном репозитории отсутствует);
  • Ряд встроенных 3rd-party сервисов (Nextcloud, Serviio, Gitea).

Технологический стек

Архитектура

Microservices

  • Device - набор сервисов, которые выполняются на физическом устройстве пользователя (одноплатный компьютер, сервер и т. д.)
  • Remote Server - набор сервисов, которые работают на удаленном сервере (например, на моем VPS).

Device

У меня все эти компоненты работают на домашнем сервере. В дальнейшем планирую попробовать развернуть на одноплатный копмьютер...

Микросервисы

  • rms-libary - библиотека мультимедия;
  • rms-torrent - торрент-клиент;
  • rms-notifier - сервис рассылки уведомлений;
  • rms-web - веб-интерфейс;
  • rms-transcoder - сервис транскодирования видео.

Скрипты и конфиги

Запускается из под docker-compose. Вынесены в отдельный репозиторий.

Remote Server

Причины появления Remote Server

  • хотелось, чтобы один Telegram-бот мог обслуживать множество клиентов сразу. Делать бота для каждого Device не удобно;
  • на внешних сайтах, которые используются для поиска медиа периодически возникают изменения, и поиск перестает работать. Эта логика вынесена на удаленный сервер - чтоб там можно ее было починить и у всех пользователей все бы работало;
  • алгоритмы "эвристического" анализа также удобно улучшать собирая статистику с единой точки входа;
  • для доступа к торрент-трекерам из рунета все равно нужны VPS & VPN... Локальные средства на Device могут отвалиться и перестать работать.

Микросервисы

  • rms-media-discovery - сервис для поиска в Интернете информации о медиа и ссылок на загрузку;
  • rms-bot-server - Telegram-бот, которые может обсуживать сразу множество пользовательских устройств;
  • rms-users - сервис упрощенной идентификации пользователских устройств.

Скрипты и конфиги

Запускается из под docker-compose. Вынесены в отдельный репозиторий.

About

Overview & Documentation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published