Самохостинг (часть 6) - Plex Media Server

Самохостинг (часть 6) - Plex Media Server
Photo by Chauhan Moniz / Unsplash

1. Введение

Что такое Plex?

Plex — это медиасервер, который помогает организовать вашу коллекцию фильмов, сериалов, музыки и фотографий. Он автоматически загружает метаданные (обложки, описания, актеров) и предоставляет удобный интерфейс для просмотра на любых устройствах. Plex также поддерживает удаленный доступ, что позволяет смотреть ваши медиафайлы из любой точки мира.


2. Подготовка каталогов медиатеки

Прежде чем развертывать Plex, важно правильно организовать вашу медиатеку. Plex требует четкой структуры каталогов для корректной работы.

Создание структуры каталогов

Создайте каталог для медиафайлов:

sudo mkdir -p /opt/media

Внутри этого каталога создайте подкаталоги для фильмов, сериалов и музыки:

sudo mkdir -p /opt/media/movies
sudo mkdir -p /opt/media/shows
sudo mkdir -p /opt/media/music
sudo mkdir -p /opt/media/youtube

Создайте каталог для конфигурации Plex:

sudo mkdir -p /opt/docker/plex/library

Этот каталог будет хранить настройки и метаданные Plex.

Рекомендации по именованию

  • Для фильмов:
    Используйте структуру Название фильма (Год)/Название фильма (Год).mkv.
    Пример: /opt/media/movies/Inception (2010)/Inception (2010).mkv.
  • Для сериалов:
    Используйте структуру Название сериала/Сезон XX/Название сериала SXXEXX.mkv.
    Пример: /opt/media/shows/Game of Thrones/Season 01/Game of Thrones S01E01.mkv.
  • Для Youtube можно использовать структуру как для сериалов. Это нам понадобится, когда мы сделаем автоматическое скачивание новых видео с Youtube.

3. Развертывание Plex в Docker

Теперь, когда каталоги подготовлены, перейдем к развертыванию Plex в Docker.

Создание docker-compose.yml

Создайте файл docker-compose.yml со следующим содержимым:

version: '3.3'
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Moscow
      - VERSION=docker
      - PLEX_CLAIM= #optional
    volumes:
      - /opt/docker/plex/library:/config
      - /opt/media:/media
      - /dev/dri:/dev/dri
    restart: unless-stopped

Разбор конфигурации

  • image: lscr.io/linuxserver/plex:latest: Используется официальный образ Plex от сообщества LinuxServer.
  • network_mode: host: Контейнер использует сетевой стек хоста для упрощения настройки.
  • PUID и PGID: Идентификаторы пользователя и группы, от имени которых работает контейнер. Убедитесь, что они соответствуют вашему пользователю на хосте.
  • TZ=Europe/Moscow: Устанавливает временную зону.
  • PLEX_CLAIM: Опциональный параметр для активации сервера. Получите токен на сайте Plex.
  • volumes:
    • /opt/docker/plex/library:/config: Хранит конфигурацию Plex.
    • /opt/media:/media: Доступ к медиафайлам.
    • /dev/dri:/dev/dri: Предоставляет доступ к устройствам для аппаратного ускорения.

Запуск контейнера

Выполните команду для запуска контейнера:

docker-compose up -d

Проверьте, что контейнер запущен:

docker ps

4. Настройка Plex

После запуска контейнера перейдите к настройке Plex через веб-интерфейс.

Активация сервера

  1. Откройте веб-интерфейс Plex по адресу http://localhost:32400/web.
  2. Если вы указали PLEX_CLAIM, сервер активируется автоматически. В противном случае следуйте инструкциям на экране.

Добавление медиатеки

  1. Перейдите в раздел Libraries.
  2. Нажмите Add Library и выберите тип медиа (фильмы, сериалы, музыка).
  3. Укажите путь к соответствующему каталогу (например, /media/movies для фильмов).
  4. Plex начнет сканирование и загрузку метаданных.

Настройка удаленного доступа

  1. Перейдите в SettingsRemote Access.
  2. Включите удаленный доступ, если хотите смотреть медиа извне вашей сети.

Оптимизация транскодирования

  1. Перейдите в SettingsTranscoder.
  2. Включите аппаратное ускорение, если ваш сервер поддерживает его.

Заключение

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

Если у вас возникнут вопросы, не стесняйтесь задавать их в комментариях!


Полезные ссылки

Удачного стриминга! 🎬

Read more

🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем? Облачные сервисы — удобно, но: * не хочется платить Google/Dropbox за хранение своих файлов * хочется моментально синхронизировать фото, документы и заметки между устройствами * и делать это на своём сервере, без отправки данных «в облако» 👉 Решение — Syncthing: децентрализованный, зашифрованный, open source-синк между любыми устройствами. 🚀 Что ты получишь? * 📂 Автосинк папок между сервером,

🎧 Свой подкаст-сервер за 5 минут: Podgrab

🎧 Свой подкаст-сервер за 5 минут: Podgrab

✨ Зачем? Подкасты — отличный способ учиться, развлекаться и быть в курсе мира. Но что, если: * Хочется слушать подкасты офлайн * Хочется архивировать любимые шоу * Не устраивают сторонние сервисы, реклама и трекеры Решение: Podgrab — простой подкаст-граббер, который автоматически скачивает новые выпуски с любого RSS. А в связке с Audiobookshelf ты получаешь полноценный медиасервер.

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Введение: Почему это важно В мире DevOps и системного администрирования существует простое правило: всё ломается. Особенно в самый неподходящий момент. Когда вы изменяете конфигурацию критического сервиса (например, Nginx), цена ошибки может быть очень высока — от простого даунтайма до потери данных. Ansible предлагает элегантное решение для безопасного внесения изменений через механизм

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Файл ~/.ssh/authorized_keys позволяет настроить команды, которые будут выполняться при входящих SSH-соединениях. Это полезный инструмент для управления доступом и обеспечения безопасности, особенно при работе с резервным копированием данных. Настройка резервного копирования с использованием authorized_keys В данном примере рассматривается использование authorized_keys для настройки резервного копирования базы данных Bacula