Naciśnij ESC, aby zamknąć

TVHeadend: Przewodnik instalacji na Synology w Docker Compose

Spis treści

Cześć!

Dziś pokażę Ci, jak zainstalować TVHeadend na serwerze Synology, wykorzystując konteneryzację w Dockerze. Całą instalację przeprowadzimy przy użyciu Docker Compose za pośrednictwem narzędzia Portainer. Następnie skonfigurujemy odwrotne proxy przy użyciu już zainstalowanego Nginx Proxy Manager. Abyśmy uzyskać dostęp do Traccara po nazwie domeny w sieci lokalnej, skonfigurujemy przepisywanie DNS przy użyciu AdGuard Home.

Wstęp do naszego projektu

Czym jest TVHeadend?

TVHeadend, LogoTVHeadend to zaawansowana platforma serwerowa do przesyłania strumieniowego telewizji cyfrowej. Jest to otwarte oprogramowanie, które umożliwia przesyłanie sygnału telewizyjnego na różne urządzenia w sieci domowej lub firmowej. TVHeadend wspiera różne standardy transmisji, w tym DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T oraz IPTV.

TVHeadend jest popularny wśród entuzjastów telewizji cyfrowej i hobbystów, dzięki swojej elastyczności i możliwości konfiguracji. Możliwość instalacji na serwerze NAS Synology poprzez Docker Compose znacząco upraszcza proces instalacji i zarządzania, czyniąc go dostępnym dla szerszego grona użytkowników.

Kluczowe cechy oprogramowania to:

  • Zarządzanie Kanałami: Użytkownicy mogą przeglądać, zarządzać i nagrywać kanały telewizyjne.
  • DVR i Nagrywanie: Oferuje funkcje cyfrowego nagrywania wideo (DVR), pozwalając na zaplanowanie i nagranie programów telewizyjnych.
  • Elektroniczny Program Telewizyjny (EPG): Wspiera EPG, umożliwiając użytkownikom przeglądanie programów telewizyjnych i planowanie nagrań.
  • Strumieniowanie: Możliwość strumieniowania treści telewizyjnych na różne urządzenia w sieci, w tym smartfony, tablety i komputery.
  • Obsługa wielu użytkowników: Pozwala na obsługę wielu użytkowników jednocześnie, każdy z własnymi ustawieniami i dostępem.
  • Możliwość integracji z różnymi systemami CA, co jest kluczowe przy odbieraniu zakodowanych kanałów telewizyjnych. Pozwala to użytkownikom na legalne dekodowanie i oglądanie płatnych kanałów, o ile posiadają odpowiednie uprawnienia i sprzęt.

Informacja prawna dotycząca dostępu warunkowego (CA)

Przed przystąpieniem do konfiguracji TVHeadend w połączeniu z OSCam, ważne jest, aby być świadomym kwestii prawnych związanych z wykorzystaniem card sharing i dostępu warunkowego do kanałów telewizyjnych. Card sharing, czyli współdzielenie karty dostępu warunkowego w sieci, może mieć różne konotacje prawne w zależności od kraju.

W wielu państwach korzystanie z card sharing dla odblokowania płatnych kanałów telewizyjnych bez posiadania odpowiedniej licencji lub subskrypcji jest uznawane za naruszenie praw autorskich i może podlegać sankcjom prawnym. Jest to szczególnie istotne w kontekście komercyjnych usług telewizyjnych, gdzie dostęp do treści jest regulowany umowami licencyjnymi i abonamentami.

Użytkownicy, którzy rozważają wykorzystanie card sharing w celu dostępu do zakodowanych kanałów, powinni dokładnie zapoznać się z lokalnymi przepisami prawnymi i upewnić się, że ich działania są w pełni legalne. Zaleca się korzystanie z card sharing wyłącznie w legalnych scenariuszach, takich jak udostępnianie sygnału w obrębie jednego gospodarstwa domowego przy posiadaniu ważnej subskrypcji.

Przygotowanie

W celu przygotowania poradnika, przyjmiemy ustaloną nazwę domeny oraz określone nazwy konfiguracyjne, przedstawione poniżej. Dla dostosowania konfiguracji do własnych potrzeb, należy zastosować ustawienia według indywidualnych wymagań.

  • Pełna nazwa domeny (FQDN) Synology DSM: https://dsm.xyz.com,
  • Pełna nazwa domeny (FQDN) TVHeadend: https://tvh.xyz.com,
  • Zainstalowany na Synology poprzez Docker: PortainerAdGuard Home,
  • Zainstalowany na Synology poprzez Centrum pakietów: Container Manager,
  • Na serwerze DHCP routera, wskazany adres IP serwera DNS (AdGuard Home) zainstalowanego na Synology.

Hardware

  • 1x Synology DS920+
    • Wspomniany model posiada wbudowaną kartę graficzną, co umożliwia lepszą obsługę operacji związanych z przetwarzaniem wideo, takich jak transkodowanie. To szczególnie ważne, gdy mówimy o strumieniowaniu treści multimedialnych, które mogą wymagać dodatkowych zasobów obliczeniowych.

Nginx Proxy Manager (opcjonalnie)

Na moim Synology skonfigurowałem reverse proxy przy użyciu Nginx Proxy Manager, co umożliwia dostęp do panelu TVHeadend za pomocą adresu URL (https://tvh.xyz.com) zamiast standardowego adresu IP. Jest to rozwiązanie zwiększające wygodę zarządzania urządzeniami UniFi, oferując łatwiejszy do zapamiętania i bardziej intuicyjny adres dostępny w sieci LAN. Jesteś zainteresowany tym jak to zrobić? Zajrzyj tutaj.

Dodatkowo, lokalne przekierowanie DNS realizowane jest przez serwer DNS AdGuard, również działający na serwerze Synology w wersji kontenerowej.

Kontener od LinuxServer.io

Repozytorium kontenerowej wersji TVHeadend stworzonej przez LinuxServer.io jest dostępne tutaj. W oparciu o te dane będziemy tworzyć nowy Stack w Portainerze.

Krok 1 – Konfiguracja w Synology DSM

Jeśli korzystasz z systemu jednokrotnego logowania Authentik, możesz ułatwić sobie proces logowania, integrując system operacyjny od Synology DSM z Authentikiem. Instrukcje dotyczące integracji znajdziesz w dedykowanym poradniku.

  • Zaloguj się na swoim serwerze plików Synology i uruchom aplikację File Station.
  • Następnie, przejdź do wcześniej utworzonego folderu współdzielonego o nazwie docker. Wewnątrz tego folderu utwórz folder tvheadend.
Synology DSM, File Station tvheadend

Krok 2 – Konfiguracja Docker Compose w Portainerze

Zaloguj się do Portainera, aby rozpocząć proces tworzenia nowego stosu (Stack), który będzie potrzebny do utworzenia kodu Docker Compose.

  • Zaloguj się na swoje konto i przejdź do interfejsu administracyjnego Portainera.
    • Jeżeli korzystasz z systemu jednokrotnego logowania Authentik, możesz ułatwić sobie proces logowania, integrując Portainer z Authentikiem. Instrukcje dotyczące integracji znajdziesz w dedykowanym poradniku.
  • Wybierz swoje środowisko (eng: Environments) w którym będziesz edytować konfigurację utworzonego Docker Compose. Następnie przejdź do Stacks.

Przewodnik instalacji Traccar na Synology w Dockerze

  • Z prawego górnego rogu (pod twoim loginem) wybierz Add stack.

Przewodnik instalacji Traccar na Synology w Dockerze

  • Wypełnij tworzenie pliku Docker Compose przy użyciu następujących wartości:
    • Name: tvheadend
    • Build method: Web editor
    • Web editor: skopiuj zawartość opisaną poniżej i wklej

Opcja A: Network mode – Host

Jeżeli używasz IPTV, Dekodera SAT>IP lub HDHomeRun, powinieneś utworzyć kontener z użyciem opcji host. Dzieje się tak, ponieważ TVHeadend wymaga do pracy z tymi usługami adresu multicastowego 239.255.255.250 oraz portu UDP 1900, co nie jest możliwe w trybie mostkowania Dockera.

---
version: "2.1"

services:
  tvheadend:
    image: lscr.io/linuxserver/tvheadend:latest
    container_name: tvheadend_server
    hostname: tvheadend-server
    network_mode: "host"
    environment:
      - PUID=1026
      - PGID=100    
      - TZ=Europe/Warsaw
    volumes:
      - /volume2/docker/tvheadend:/config
      - /volume1/video/dtv:/recordings
    devices:
      - /dev/dri:/dev/dri
    restart: unless-stopped

Opcja B: Network mode – Bridge

---
version: "2.1"

services:
  tvheadend:
    image: lscr.io/linuxserver/tvheadend:latest
    container_name: tvheadend_server
    hostname: tvheadend-server
    environment:
      - PUID=1026
      - PGID=100    
      - TZ=Europe/Warsaw
    volumes:
      - /volume2/docker/tvheadend:/config
      - /volume1/video/dtv:/recordings
    ports:
      - 9981:9981
      - 9982:9982
    devices:
      - /dev/dri:/dev/dri
    restart: unless-stopped

Parametry

Podczas uruchamiania możemy określić parametry konfigurujące kontenery (takie jak te zawarte powyżej). Parametry te są rozdzielane dwukropkiem i wskazują kolejno <zewnętrzny>:<wewnętrzny>. Na przykład, -p 8080:80 sprawi, że port 80 wewnątrz kontenera będzie dostępny z zewnątrz kontenera, z IP hosta, na porcie 8080.

  • Wykaz wszystkich parametrów do tego Stacku jest dostępna pod tym linkiem.
Porty
  • WebUI: 9981
  • HTSP Server: 9982
    • Home TV Streaming Protocol w TVHeadend jest używany do przesyłania strumieniowego treści telewizyjnych do klientów, czyli oprogramowania lub urządzeń końcowych, które odbierają i wyświetlają transmisje telewizyjne.
Time Zone
  • Po wklejeniu kodu w edytorze, zmień wartość dla strefy czasowej (TZ), wybierając odpowiednią strefę czasową z tej listy.
PUID i PGID

Gdy używasz woluminów (parametru -v), mogą wystąpić kwestie związane z uprawnieniami pomiędzy systemem operacyjnym gospodarza a kontenerem. Aby obejść te problemy, dajemy możliwość wyboru identyfikatora użytkownika (PUID) oraz grupy użytkownika (PGID).

  • Przed wklejeniem powyższego kodu w obszar edytora, zmień wartości numerów dla PUID i PGID na swoje własne wartości PUID i PGID. Wartości PUID i PGID odnoszą się do danego konta istniejącego na Synology. Musisz wpisać swoje własne wartości.
  • Aby sprawdzić swoje wartości PUID i PGID na systemie Linux, możesz użyć terminala. Wpisz komendę id nazwa_użytkownika (zastępując nazwa_użytkownika własną nazwą użytkownika na komputerze). Wynik tej komendy pokaże Twoje identyfikatory PUID (UID) i PGID (GID). Te wartości są niezbędne do prawidłowej konfiguracji kontenerów Docker, gdyż pozwalają na dopasowanie uprawnień plików i katalogów w kontenerze do Twojego systemu.
id jkowalski
uid=1026(jkowalski) gid=100(users) groups=100(users),101(administrators)
  • Kliknij przycisk Deploy the stack, a następnie poczekaj, dopóki Portainer nie pobierze zawartości i nie utworzy kontenera.
  • Gdy proces przebiegnie pomyślnie, w prawym górnym rogu ekranu pojawi się komunikat Success: Stack successfully deployed. Wówczas, w liście kontenerów ukaże się nowo utworzony stos kontenerów.

Krok 3 – Konfiguracja w Nginx Proxy Manager

Web access po HTTPS (Certyfikat SSL)

Jeżeli posiadasz wgrany certyfikat SSL dla swojej domeny obsługujący subdomeny (certyfikat typu Wildcard):

  • Zaloguj się do konta administratora w Nginx Proxy Manager.
  • Kliknij w Hosts, a następnie z menu wybierz Proxy Hosts,

Pulpit Nginx Proxy Manager

  • W prawym górnym rogu kliknij Add Proxy Hosts.

Add Proxy Host w Nginx Proxy Manager

  • Uzupełnij parametry następującymi wartościami:
    • Domain Names: tvh.xyz.com
    • Scheme: http
    • Forward Hostname/IP: IP-ADRES-SYNOLOGY
    • Forward Port: 9981
  • W oknie Edit Proxy Host na zakładce Details zaznacz:
    • Cache Assets,
    • Websockets Support,
    • oraz Block Common Exploits.

Edit Proxy Host w Nginx Proxy Manager

  • Następnie przejdź do zakładki SSL, wybierz swój certyfikat SSL i zaznacz wszystkie dostępne opcje dodatkowe:
    • Force SSL,
    • HTTP/2 Support,
    • HSTS Enabled,
    • oraz HSTS Subdomains.

Edit Proxy Host, SSL w Nginx Proxy Manager

Krok 4 – Konfiguracja w AdGuard Home

Aby uzyskać dostęp z naszego komputera do Netboxa poprzez zdefiniowaną w Proxy Managerze nazwę domeny (np. netbox.xyz.com) w naszej sieci lokalnej, konieczne jest skonfigurowanie serwera DNS, aby wskazywał na lokalizację tej strony.

AdGuard Home Pulpit

  • Zaloguj się do panelu administracyjnego AdGuard Home.
  • Przejdź do zakładki Filtry, a następnie z menu wybierz opcję Przepisywanie DNS.

Przepisywanie DNS

  • Kliknij Dodaj przepisywanie DNS, a następnie wypełnij pola z następującymi wartościami:
    • Wpisz nazwę domeny, który chcesz przepisać: tv.xyz.com
    • Adres IP: IP-ADRES-SYNOLOGY
  • Gotowe! Poczekaj chwilę, aż konfiguracja zostanie zapisana. Po zakończeniu procesu, dostęp do serwera będzie możliwy pod adresem tvh.xyz.com. 🚀

Krok 5 – Zaloguj się do serwera TVHeadend

Końcowym etapem naszej instalacji jest zalogowanie się na prawach administratora do wdrożonej przed chwilą aplikacji. 

  • Otwórz Interfejs Webowy TVHeadend: Po pomyślnej instalacji i uruchomieniu TVHeadend, otwórz przeglądarkę internetową i wpisz https://tvh.xyz.com lub wprowadź adres IP serwera Synology z dodanym portem, na którym działa TVHeadend (domyślnie 9981), na przykład http://IP-ADRES-SYNOLOGY:9981.
  • Strona Logowania: Na stronie startowej TVHeadend pojawi Ci się okno konfiguracji serwera. Ponieważ domyślnie TVHeadend nie ma skonfigurowanych użytkowników, będziesz musiał przejść przez proces konfiguracji konta administratora.
  • Konfiguracja Konta Administratora: Na ekranie konfiguracji konta, postępuj zgodnie z instrukcjami, aby ustawić nazwę użytkownika i hasło dla konta administratora. Upewnij się, że wybierasz silne i bezpieczne hasło, ponieważ konto administratora ma pełny dostęp do wszystkich funkcji i ustawień TVHeadend.
  • Zaloguj się jako Administrator: Po zakończeniu konfiguracji, użyj nowo utworzonych danych logowania, aby zalogować się do TVHeadend jako administrator.
  • Dostosuj Ustawienia: Jako administrator, masz teraz możliwość dostosowania ustawień TVHeadend, w tym konfiguracji kanałów, EPG, nagrywania i zarządzania dostępem użytkowników.

Pamiętaj, że zaleca się również skonfigurowanie dodatkowych użytkowników z odpowiednimi uprawnieniami, jeśli planujesz udostępnić dostęp do TVHeadend innym osobom w sieci. Po zalogowaniu się jako administrator, możesz w pełni korzystać z funkcjonalności TVHeadend i dostosowywać go do swoich potrzeb.

Instalacja i konfiguracja dekodera SAT>IP

Chcesz rozszerzyć swoje możliwości związane z TVHeadend? Przeczytaj moją szczegółową instrukcję instalacji dekodera SAT>IP. Dzięki temu krokowi zyskasz dostęp do kanałów satelitarnych, co pozwoli ci maksymalnie wykorzystać potencjał TVHeadend. 📡 🖥️ 🚀

👉 Kliknij tutaj i dowiedz się, jak krok po kroku skonfigurować dekoder sat-ip na swoim serwerze!

Dodatkowe źródła i Informacje

W celu dalszego zgłębienia tematu i uzyskania szczegółowych informacji, polecam sprawdzenie poniższych linków. Są one wartościowymi źródłami, które zostały wykorzystane podczas opracowywania tego poradnika:

Przeczytaj także

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Komentarze (2)

  • Gravatar

    rgrsays:

    08/05/2024 at 11:12

    Dzień dobry,

    Rozumiem że docker musi widzieć podłączony tuner przez USB? Czyli NAS powinien mieć odpowiednie sterowniki sprzętowe?
    Pytam bo próbowałem podpiąć tuner XBOX pod NAS ale Qnap i zainstalować docker ale bez powodzenia.

    • Filip Chochółsays:

      08/05/2024 at 11:18

      Tak, musisz przekazać do monitorowania przez kontener port USB dla TVHeadend. Nie testowałem nigdy konfiguracji z tunerem od Xboxa.
      Tak, w tym momencie QNAP powinien mieć zainstalowane sterowniki do obsługi tunera. Ale na szybko zdążyłem sprawdzić w sieci, że nie tylko Ty masz problem aby ten tuner działał z TVHeadend.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.