Медиа сервер на ubuntu своими руками

Добавил пользователь Валентин П.
Обновлено: 10.09.2024

Парадокс в том, что несмотря на UTF -8 кодировку системы по умолчанию русские шрифты в консоли не работают, вместо букв – квадратики. Правда, в репозитории Ubuntu имеется средство для решения этой проблемы. Набираем в командной строке:

$ sudo apt - get install console - cyrillic

После установки можно попробовать инициализировать эти шрифты командой

Но для корректной работы дополнения необходимо его сконфигурировать

$ sudo dpkg - reconfigure console - cyrillic

мы теперь имеем красивый Unicode в консоли. Установим mc

$sudo apt-get install mc

Теперь мы можем использовать удобный файловый менеджер для дальнейшей настройки. Сначала установим включение кириллицы при загрузке. Для этого в файл / etc / rc . local ДО строки exit 0 добавим строку setupcon .

После перезагрузки кириллица будет включаться автоматически.

Настроим сеть. В файле / etc / network / interfaces укажем статические адреса для сетевого интерфейса (Вы, конечно, укажете свои):

iface eth0 inet static

$ sudo apt - get install phpmyadmin

Настраиваем для использования апача.

pic30

Настраиваем подключение к базе данных.

pic31

Далее от Вас потребуется только правильно ввести пароль для подключения к MySQL .

Ultimate Smart Home Media Server с Docker и Ubuntu 18.04 - базовый уровень

Docker может помочь вам создать Home Media Server за считанные минуты без сложных настроек. В этой статье я покажу вам, как создать идеальный домашний сервер для умного дома, используя Docker и Ubuntu. Этот универсальный медиа-сервер Docker автоматизирует загрузку мультимедиа, потоковую передачу и удовлетворяет ваши потребности домашней автоматизации.

Ultimate Smart Home Media Server с Docker и Ubuntu 18.04 - базовый уровень

Похожие записи

Изменить интервал синхронизации времени Windows?

План новичка: полное руководство по установке Monit

Google OAuth Tutorial для Docker и Traefik - аутентификация для сервисов

Установите Guacamole на Docker - VNC, SSH, SFTP и RDP, как босс!


Что-то свежее

9 основных шагов по устранению неполадок для устранения проблем с динамиками домашнего кинотеатра!

Можно ли использовать проектор в гостиной?

Что такое короткофокусный проектор? Объяснение коэффициента броска!

Категории

Что читают

9 основных шагов по устранению неполадок для устранения проблем с динамиками домашнего кинотеатра!

Можно ли использовать проектор в гостиной?

Что такое короткофокусный проектор? Объяснение коэффициента броска!

Как настроить медиа-сервер для домашнего кинотеатра

Как настроить Logitech Harmony Hub - Руководство по настройке и настройке



Полезное:

Kodi v16.1 Jarvis выпустила: некоторые исправления здесь и там

Руководство для начинающих Kodi p2: Как использовать Kodi для вашего HTPC

Соц. сети

Настраиваем домашний DLNA-сервер на базе MiniDLNA, он же ReadyMedia в Linux Debian или Ubuntu Server.

Содержание

Установка MiniDLNA

Простейшим способом установки является, установка пакета из репозитория вашего дистрибутива:

Установка Sudo

Если в вашей системе отсутствует команда sudo, желательно ее установить. Sudo нам потребуется в процессе настройки, для тестирования прав доступа к папкам с медиа-файлами.

Добавляем пользователя в группу sudo:

Выходим из системы и входим заново, чтобы изменение группы вступило в силу.

Настройка MiniDLNA

Правим файл конфигурации:

Как минимум, потребуется задать путь к папке с медиа-файлами, параметр: "media_dir". Также можно задать имя сервера, отображаемое клиентом, параметр: "friendly_name".

В случае если наш DLNA-сервер по совместительству является интернет-шлюзом, также необходимо задать внутренний сетевой интерфейс, параметр: "network_interface".

Параметры в комментариях файла конфигурации содержат значения по умолчанию.

Проверяем параметры init-скрипта /etc/default/minidlna:

Обычно корректировка не требуется. Если файл отсутствует, при первичной установке из исходников, копируем листинг:

Поскольку служба работает под пользователем с ограниченными правами, публикуемые папки и файлы должны быть доступны на чтение для всех пользователей, следовательно, иметь разрешения 644: " rw- r-- r-- ", для файлов и 755: " rwx r-x r-x ", для папок.

Проверяем доступность для каждой папки, заданной в minidlna.conf, командой:

Если папка недоступна, задаем права доступа:

Вышестоящие папки также должны быть доступны на чтение всем пользователям. Проверяем доступность на чтение каждой папки, указанной в пути. Для вышестоящих папок используем chmod без ключа -R, если не требуется сброс разрешений для всех дочерних файлов и папок.

В качестве альтернативы смене разрешений, можно запустить MiniDLNA от имени пользователя или группы-владельца файлов. Для этого необходимо задать параметры USER и GROUP в /etc/default/minidlna, и сменить владельца папки /var/lib/minidlna командой:

Запуск MiniDLNA

Проверяем, работает ли служба, также смотрим параметры запуска:

Проверяем, слушается ли порт:

В случае успешного старта, лог должен быть примерно следующим:

Если видим: " WARNING: Inotify max_user_watches [8192] is low. ", необходимо увеличить число дескрипторов слежения inotify до 100 000. Для этого в файл /etc/sysctl.conf добавим строки:

Или копипастом команды:

Изменение параметра вступит в силу после перезагрузки системы.

Настройка DLNA/UPnP-AV сервера завершена.

Если был установлен пакет:

При установке из исходников:

Перезапускаем MiniDLNA с повторным сканированием библиотеки.

Сканирование медиа-библиотеки MiniDLNA

При появлении ошибок в каталоге, необходимо выполнить повторное сканирование файлов.

Для этого удалим базу Minidlna и перезапустим службу:

Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ запуска: "-R" в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку системы.

Полное формирование каталога может занять несколько минут. Сканирование папок выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с редко воспроизводимым контентом имеет смысл размещать в конфиге последними.

Установка MiniDLNA из исходников

Дальнейший материал был написан во времена Debian 7 и не тестировался на современных версиях.
Как минимум, инит-скрипты и юнит-файлы берем из deb-пакета.

Устанавливаем сборочные зависимости:

Если при установке зависимостей возникает ошибка: "Невозможно найти пакет с исходным кодом для minidlna". Значит, пакет MiniDLNA отсутствует в вашей версии дистрибутива. В этом случае придется установить зависимости вручную:

Создаем папку для исходников в профиле пользователя и переходим в нее:

Сборка стабильной версии MiniDLNA

Загружаем исходники последней стабильной версии:

С ключом --trust-server-name, будет сохранено исходное имя файла: "minidlna-1.1.4.tar.gz", номер версии может отличаться. Если ключ не указан, файл будет сохранен под именем: "download".

Переходим в папку с исходниками:

Сборка текущей разрабатываемой версии MiniDLNA из Git-репозитория

Для сборки из Git-репозитория, потребуются дополнительные пакеты:

Переходим в папку с исходниками:

Создаем скрипт автоконфигурации:

Установка

Удаляем пакет, если он был установлен ранее:

Устанавливаем собранную версию:

При первичной установке, копируем minidlna.conf в папку /etc:

Для дистрибутивов на базе Debian 6 в init-скрипте необходимо скорректировать параметр PIDDIR, для современных дистрибутивов корректировка не требуется.

Разрешаем запуск скрипта:

Активируем запуск init-скрипта в rc.d:

По умолчанию служба запускается под пользователем minidlna, создаем учетную запись:

Также, при первичной установке, потребуется создать файл параметров init-скрипта (/etc/default/minidlna), рассмотренный далее, в процессе настройки.

При установке из исходников, minidlna.conf требует дополнительной корректировки. В пакете Debian пути по умолчанию были изменены, теперь их необходимо прописать явно.

Задаем путь для хранения базы данных, используем домашнюю папку пользователя minidlna, созданного на предыдущем шаге:

Задаем путь к лог-файлу:

Отключение запроса способа отображения файлов: All Files, Folders

Настраиваем отображение содержимого папок Music, Pictures, Video без промежуточного запроса способа их отображения.

Частично вопрос можно решить установкой параметра: "root_container=B" в minidlna.conf. При этом сам запрос не отключается, но содержимое папок отображается непосредственно в корневом контейнере.

В случае если устройство, в качестве корневого контейнера, отображает свой собственный стартовый экран, корректировка файла конфигурации не даст результата. Для полного отключения запроса способа отображения файлов, придется внести изменения в код программы.

Отключение виртуальных папок в MiniDLNA версии 1.1.4 и выше

Для версии 1.1.4 применяем патч, и добавляем параметр disable_extended_directories=yes в minidlna.conf. Данный патч войдет в состав следующей версии MiniDLNA, для более поздних версий достаточно задать параметр в файле конфигурации.

Получаем и устанавливаем пакет с исходниками, как описано в разделе: "Установка или обновление MiniDLNA из исходников".

Переходим в папку с исходниками:

Загружаем и применяем патч:

Собираем и устанавливаем исправленную версию:

Редактируем файл конфигурации:

Перезапускаем службу с повторным сканированием медиа-библиотеки:

В системах на базе systemd для повторного сканирования потребуется удалить базу данных вручную:

Отключение виртуальных папок в MiniDLNA версии 1.1.3 и ниже

Получаем и устанавливаем пакет с исходниками, как описано в разделе: "Установка или обновление MiniDLNA из исходников".

Переходим в папку с исходниками:

Необходимые константы идентификаторов папок объявлены в scanner.h

Обработка запросов клиента реализована в файле upnpsoap.c.

Сохраняем резервную копию файла:

Активируем поиск (F6), ищем процедуру: "BrowseContentDirectory".

В начале процедуры выполняется разбор SOAP/XML-запроса, затем его обработка и возврат результата.

Далее реализован выбор корневого контейнера в зависимости от конфигурационного параметра root_container:

Сразу после этого блока и перед блоком с запросами к БД добавляем код перенаправления папок для видео, музыки и изображений:

В итоге правленный фрагмент должен выглядеть следующим образом:

Собираем и устанавливаем исправленную версию:

Проверяем результат. Папки должны открываться без запроса способа отображения.


Из-за очередного приступа параноии, я решил сменить Google Drive на собственное решение и хранить свои файлики поближе к телу. Выбор был между: поднимать в каком-нибудь DigitalOcean виртуалку и хранить там, или собрать дома свое хардварное решение. Подсчитав сколько будет стоить виртуалка с нужным объемом диска, выбор был сделан в пользу домашнего NAS-сервера.

Выбор

У меня было примерно 100 ГБ данных на момент съезда из Google Drive. Виртуалка в DigitalOcean на 160ГБ стоит 40$ в месяц, то есть в год будет выходить ~500$. Дорого. За эти деньги можно дома собрать NAS на терабайт с SSD дисками. Есть ещё вариант брать маленькую виртуалку, и к нему подключить S3 хранилище, но софт, который я планировал использовать, не умеет работать с S3.

Итак, вариант с виртуалкой в облаке я отмёл и пошел смотреть, что нынче есть на рынке домашних NAS серверов. Так как я живу в маленькой квартире, NAS я планировал ставить в жилой комнате, и, если он будет шуметь вентиляторами и вибрировать HDD-дисками, то житья в комнате не будет. Поэтому я хотел найти NAS с пассивным охлаждением и вставить туда SSD диски. Не самое дешевое решение, но за тишину приходится платить.

Как выяснилось, на рынке практически нет NAS с пассивным охлаждением. Почему так я не понимаю, по опыту использования — максимальная температура дисков за год использования у меня была 47.0 C (наверно когда я переносил все данные), в покое — 36.0 C, крышка NAS-а чуть теплая. 90% времени диски простаивают и зачем им вентилятор я не понимаю.

Вот модели с пассивным охлаждением которые я смог найти — QNAP HS-210 , QNAP HS-251 , QNAP HS-251+ (он же QNAP S2 ), QNAP HS-453 . У всех моделей обычный x64-процессор, не ARM. Получается маленькая такая desktop-тачка с местом для двух HDD.

  • HS-210 - 512 МБ ОЗУ мало.
  • HS-251 - 1ГБ ОЗУ мало
  • HS-251+ - 2ГБ ОЗУ норм
  • HS-453 - 4 или 8 ГБ ОЗУ. Ultimate решение, но не продается в России и стоит космос.

У Synology бесшумных решений я не нашел. Собирать системник тоже не хотелось - он не получится таким же маленьким и бесшумным как QNAP. В общем выбрал золотую середину - QNAP HS-251+ (QNAP S2).

Из дисков я выбрал WD BLUE 3D NAND SATA SSD 1 TB (WDS100T2B0A). Взял две штуки. Они без проблем заходят в NAS. Итого вышло:

Не самое дешевое решение для NAS, но самое дешевое из подходящих под требования. Кроме этого, чтобы создать свое облако потребуется статический “белый” IP-адрес дома. Чтобы подключаться из интернета к домашнему серверу. Обычно такая услуга есть у любого провайдера.

Программная часть

После покупки и установки самого NAS-а, решил попробовать использовать софт от самого QNAP. Стоит сказать, что он очень разнообразный - полностью заменяет публичные облака и даже умеет запускать виртуальные машины. Из себя он представляет некую ОС (на основе Debian, кажется), с веб-интерфейсом а-ля iPad и проприетарными приложениями.

QNAP OS

К сожалению все работает довольно медленно, да и менять один проприетарный продукт на другой, внутренний параноик мне не позволил, поэтому я установил на NAS обыкновенный чистый Linux.

Так как это обычный x86_64 ПК, я записал на флешку свежий дистрибутив, зашел в BIOS и загрузился с нее:

Загрузка с флешки NAS

В этом NAS-е есть постоянная память размером 512 МБ куда установлена дефолтная прошивка. Ее я не перезаписывал (при желании можно будет вернуться на нее), и поставил Ubuntu 18.04 на software RAID, собранный из двух установленных дисков. На каждом диске создается по партиции одинакового размера, и они объединяются в RAID1. На одном диске также раздел для загузчика и /boot:

Установка LINUX на Software RAID

Домашнее облако

Выбор был между ним и Nextcloud/ownCloud, но после тестовых установок выбрал Seafile. До 3-х пользователей можно использовать Enterprise версию - её и взял. В ней есть поиск по файлам и еще несколько полезных функций, вот здесь есть сравнение бесплатной и enterprise версий. Разворачивал с помощью Docker — очень просто и быстро, на сайте есть подробный мануал

У Seafile есть веб-интерфейс, desktop-приложение для всех ОС и мобильный клиент.

Nextcloud/ownCloud гораздо богаче по функционалу и хранят файлы в открытом виде, то есть их можно интегрировать в другие серверные приложения, но жуткие тормоза при аплоаде файлов и на веб-интерфейсе делают их неработопригодными.

Seafile тоже не идеален, всё что он умеет — просто хранить файлы. Особенности использования:

    хранит данные в бинарных файлах. То есть их нельзя просматривать на диске. Получаем высокую скорость при доступе к данным, но теряем в гибкости. Вот так выглядят данные на ФС:

есть приложение для Android/iOS. Довольно скромное, но заливать фотки с телефона и просматривать файлы умеет.

Seafile android клиент

Домашний NAS и медиа-плеер

Так как в NAS-е есть HDMI выход, я его подключил к телевизору и сделал из него медиа-плеер. В комплекте также есть пульт ДУ:

Медиа плеер QNAP и пульт

Вот так выглядит интерфейс Kodi на телевизоре:

Kodi

Как я использую Kodi:

  • плеер фильмов, которые лежат на NAS-диске
  • плеер IPTV вместо MAG-250. Умеет показывать multicast-потоки
  • проигрыватель YouTube (приложение не очень удобное, но юзабельное)
  • в поездках с помощью приложения Kodi для Android подключаюсь к своему NAS и смотрю с него фильмы. Получается такой self-hosted онлайн-кинотеатр
  • для скачивания новых фильмов на NAS установил Transmission + web-интерфейс

Также на NAS поставил FTP и Samba, чтобы подключаться с девайсов в локальной сети и NFS для монтирования сетевого диска.

Такой схемой я пользуюсь около года и вот какие выводы сделал:

  • приложения Яндекс.Диск/Google Photo удобнее и быстрее. Да, opensource-аналоги не дают такого удобства использования — то тут, то там встречаются мелкие косяки (например в android-приложении seafile фотки при просмотре скачиваются полностью, т.е. не превью сжатое, а фото если весит 5МБ — оно все полетит на телефон, это медленно и занимает место на телефоне; хотя в веб-морде есть превьюхи). Ну и поиск в Гугл.фото по содержанию фотографий (когда в поиске вводишь “горы”, и он показывает все фотографии гор из вашей библиотеки) — это вообще киллер фича, такого в бесплатные аналоги не знаю когда завезут.
  • скорость загрузки файлов в Seafile гораздо выше, чем в публичные облака
  • смотреть фильмы теперь супер удобно. Особенно в поездках. 4G есть практически везде в России, и теперь не надо закачивать кучу фильмов на телефон — смотрю онлайн, подключаясь с телефона к домашнему серверу. В случае отсутствия связи, например в поезде, подключаюсь по FTP и скачиваю перед отправлением.
  • Kodi — супер комбайн, но хотелось бы научиться стримить телевизионный сигнал на телефон, чтобы смотреть ТВ не из дома. Этого еще не понял как сделать.
  • чтобы все это настроить пришлось покурить мануалы и подзаморочиться с установкой и наладкой.

Хочу ли я вернуться в публичные облака (Google Drive, Яндекс.Диск)? Нет, не хочу. На мой взгляд, плюсов в такой схеме все же больше, чем минусов. А внутренний параноик теперь спит сладким сном.

Читайте также: