This version (2025/08/23 13:50) was approved by obel1x.The Previously approved version (2025/08/23 13:49) is available.
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Docker: TVHeadend
Very good community- Project to watch tv over network. Supports IPTV and DVB-S, like my Astra 19.2 Satellite Dash.
Forum/Docs: https://tvheadend.org/
IPTV- Channels Worldwide: https://github.com/iptv-org/iptv
or Kodinerds: https://github.com/jnk22/kodinerds-iptv
Satellite Dash Astra 19.2
Server- Web GUI TvHeadend (HTTP-Port 8891 and Stream 9982)
Clients can connect with E.g. Kodi and HTS- Addon on Port 9982 using the User, which can be created at first setup.
Hardware
I bought the PCIe/Twin-/ DVB-S- Card „Cine V7“ of Digital Devices, which i consider best choice for Linux.
Check with lspci „03:00.0 Multimedia controller: Digital Devices GmbH Cine V7“, it should be autoloaded with Kernel-Module STV0910.
Docker Compose
This is WIP !
You need
- Docker rootless as described in XXX
- Caddy as described in
As docker-user:
Create a Folder in docker_compose named tvheadend and a Folder for Records:
docker@pcserver2023:~/docker_compose> mkdir -p /home/docker/docker_compose/tvheadend docker@pcserver2023:~/docker_compose> mkdir -p /home/docker/videorecords
Create the file docker-compose.yml in docker_compose/tvheadend folder.
Currently the content looks like that:
services:
tvheadend:
# Bug in current image (20250823): https://github.com/tvheadend/tvheadend/issues/1901
# After resolve, the latest Tag should be used!
# image: ghcr.io/tvheadend/tvheadend:latest
image: ghcr.io/tvheadend/tvheadend:master-debian
cap_drop:
- all
ulimits:
nproc: 256
nofile:
soft: 8192
hard: 65535
devices:
- /dev/dvb/
# See Volumes/localtime
# environment:
# TZ: Europe/Berlin
volumes:
- tvheadend:/var/lib/tvheadend:rw
- /home/docker/videorecords:/var/lib/tvheadend/recordings:rw
- /etc/localtime:/etc/localtime:ro
networks:
- default
ports:
- "9981-9982:9981-9982/tcp"
command: --config '/var/lib/tvheadend' --nosatip --firstrun
restart: unless-stopped
#Not working on master-debian:
# healthcheck:
# test: wget -O - -q 'http://dockerstack-tvheadend-1:9981/ping' | grep -q 'PONG'
# Still needs to be defined while without it won't enable ipv6
networks:
default:
driver: bridge
enable_ipv6: true
volumes:
tvheadend:
Access to DVB- Inputs
If you have your DVB- Card in /dev/dvb, check if the settings allow user access like this:
docker@pcserver2023:~/docker_compose/tvheadend> ls -l /dev/dvb drwxrwxrwx 2 root root 120 23. Aug 11:03 adapter0 drwxrwxrwx 2 root root 120 23. Aug 11:03 adapter1
If not, change it like:
docker@pcserver2023:~/docker_compose/tvheadend> chmod -R go=rwX /dev/dvb
Caddy Service
After getting an Domainname and setting up DyDNS, add the Service to you Caddyfile ( https://obel1x.de/dokuwiki/doku.php?id=content:serverbasics:docker-caddy#caddy_configuration )
Add to Caddyfile:
# TVHeadend
https://tvheadend.domain.tld:443 {
header Strict-Transport-Security max-age=31536000;
reverse_proxy pcserver2023-tvheadend-1:9981
}
