W tej części postaram się opisać jakie aplikacje używam do organizacji media serweru. Tak jak w poprzedniej części wszystkie te serwisy są hostowane na oddzielnej maszynie: media. Na końcu będzie docker-compose plik ze wszystkimi serwisami.

Media server

Plex vs Jellyfin Link to heading

TL.RD: jest to serwer który pozwala obejrzeć własne media (filmy z bluray) lub personalne nagrania poprzez przyjemny UI.

Plex vs Jellyfin

Czym jest plex? Plex pozwala streamować własne multimedia na prawie każde urządzenie. To jest oprogramowanie, za pomocą którego zarządzasz swoimi multimediami i masz do nich dostęp z poziomu wielu urządzeń. Plex jest darmowy i pozwala na instalacje serwera prawie wszędzie. Tylko że nie jest do końca darmowy. Na początek już wymaga rejestracji konta w ich serwisie. I domyślnie ma włączony dostęp do własnego serwera przez internet. Co mi się wydaje dość dziwnie że ktoś chcę mieć własny media serwer który jest też dostępny dla każdego pracownika plex. I nie ma problemu wyłączyć i zabronić na taki dostęp w ustawieniach. Ale jakoś od samego początku mi się nie spodobało takie podejście. Po kilku miesiącach użytkowania plex w końcu zdecydowałem się przejrzeć jakie są alternatywy dla niego. Ponieważ miałem dość spory problem z aplikacją Plex na WebOS (LG TB). I nie zbyt mi przypadł interfejs Plex. Po przejrzeniu kilku stron zrozumiałem że są 3 opcje:

Plex już przetestowany, po przeczytaniu opinii o emby zrozumiałem że to jest alternatywa bardzo podobna do plex i oferuje darmowe funkcje jak i posiada płatne. Nie zbyt chciałem testować to samo co plex tylko w innym wydaniu. Kolejnym serwerem na liście był jellyfin. I od początku ten serwer wydaje się bardzo ciekawy: open source, wszystkie funkcje darmowe, nie prosi o rejestracje gdzieś w ich systemie. Niestety za tym idzie jeden minus: nie jest na tyle dopracowany jak poprzednie dwa. Ale dla mnie większym plusem jest to że jest to jednak personalny media serwer nad którym mam kontrolę, a nie self hosted wersja płatnego serwisu który na otwarcie ustawień prosi o wykupienie super wersji. Dużym plusem dla mnie było to że jellyfin posiada aplikacje na WebOS dostępną do pobrania w ich sklepie. Ale kilka razy korzystałem z ich web wersji, i czasami nawet lepiej działa niż aplikacja. No cóż, nie można mieć wszystkiego.

Jellyfin

Wszystkie media są trzymam na NAS. Wystarczy podłączyć NAS jako NFS do proxmox i zamontować ten folder do lxc kontenera. W taki sposób wszystkie media będą przechowywane na NAS. Ale jednocześnie będą dostępne w Jellyfin.

Sonarr oraz radarr Link to heading

Sonarr monitoruje wiele źródeł w poszukiwaniu nowych/nadchodzących odcinków ulubionych programów i pobiera je, sortuje i zmienia nazwy. Sonarr automatycznie pobierze każdy nowy odcinek i dodaje go do twojej biblioteki. Radarr jest zasadniczo kopią Sonarr, ale służy do zarządzania filmami.

Sonarr

Do pracy sonarr/radarr jest potrzebny indexer oraz torrent klient. Indekser służy do organizacji źródeł gdzie sonarr/radarr szuka nowy odcinków/filmów. Najpopularniejszym jest Jackett. Jest bardzo prostu w konfiguracji. Wystarczy po zainstalowaniu podać źródła i potem dodać link i klucz do jackett w sonarr/radarr.

Kolejnym elementem jest torrent. Od dawna korzystam z transmission. Jest jednym z najprostszych i najlepszych klientem torrent.

PS: nie widzę potrzeby zbyt mocno opisywać konfiguracje sonarr/radarr. Jest na ten temat dużo artykułów. I chyba nie do końca jestem ok z opisywaniem czegoś takiego.

docker-compose.yaml Link to heading

servises:

  jellyfin:
    image: jellyfin/jellyfin:10.9.9
    hostname: jellyfin
    restart: always
    volumes:
      - /mnt/media/jellyfin:/config
      - ./cache:/cache
      - type: bind
        source: /mnt/media
        target: /media
    environment:
      - TZ=Europe/Warsaw
    ports:
      - 8096:8096
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  jackett:
    image: lscr.io/linuxserver/jackett:0.21.2628
    hostname: jackett
    restart: always
    environment:
      - PUID=1000
      - PGID=101
      - TZ=Europe/Warsaw
    volumes:
      - ./jackett:/config
    ports:
      - 9117:9117
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  sonarr:
    image: lscr.io/linuxserver/sonarr:4.0.7
    hostname: sonarr
    restart: always
    environment:
      - PUID=1000
      - PGID=101
      - TZ=Europe/Warsaw
    volumes:
      - ./sonarr:/config
      - type: bind
        source: /mnt/media
        target: /mnt/media
      - type: bind
        source: /mnt/media/transmission/downloads
        target: /downloads
    ports:
      - 8989:8989
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

  radarr:
    image: lscr.io/linuxserver/radarr:5.7.0
    hostname: radarr
    restart: always
    environment:
      - PUID=1000
      - PGID=101
      - TZ=Europe/Warsaw
    volumes:
      - ./radarr:/config
      - type: bind
        source: /mnt/media
        target: /mnt/media
      - type: bind
        source: /mnt/media/transmission/downloads
        target: /downloads
    ports:
      - 7878:7878
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"