
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 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: Portainer, AdGuard 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.

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.
- Z prawego górnego rogu (pod twoim loginem) wybierz Add stack.
- 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,
- W prawym górnym rogu kliknij Add Proxy Hosts.
- 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.
- 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.
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.
- Zaloguj się do panelu administracyjnego AdGuard Home.
- Przejdź do zakładki Filtry, a następnie z menu wybierz opcję 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:
- Synology DS920+ 4-bay NAS Review: https://www.techpowerup.com/review/synology-ds920-4-bay-nas/
- Docker – Networking overview: https://docs.docker.com/network/
- TVHeadend – Overview: https://tvheadend.org
Przeczytaj także
- UniFi Network Application: Podłączenie Access Point z innej sieci / Odkryj jak podłączyć urządzenie od Ubiquiti UniFi z innej sieci do Network Application – na przykładzie tunelu IPSec w Mikrotiku.
- UniFi Controller w Dockerze: Migracja do UniFi Network Application / UniFi Controller: Odkryj krok po kroku, jak skutecznie przeprowadzić migrację do Network Application, wykorzystując Docker Compose.
- Home Assistant: Instalacja oświetlenia lustra na ESPHome / Skonfiguruj proste oświetlenie lustra z ESPHome w Home Assistant. Odkryj prostą integrację i steruj światłem z łatwością.
- ADS-B: Instalacja i konfiguracja odbiornika na Raspberry Pi / Odkryj tajniki instalacji i konfiguracji własnej anteny ADS-B na Raspberry Pi. Rozwijaj umiejętności i śledź samoloty w czasie rzeczywistym.
- Traccar: Przewodnik instalacji na Synology w Dockerze / Przewodnik krok po kroku: Instalacja Traccar na Synology za pomocą Docker. Skuteczne śledzenie pojazdów na własnym serwerze.
Komentarze (2)
rgrsays:
08/05/2024 at 11:12Dzień 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:18Tak, 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.