Skip to content

Latest commit

 

History

History
112 lines (75 loc) · 5.22 KB

README.md

File metadata and controls

112 lines (75 loc) · 5.22 KB

Tvheadend Docker Image

Orginaly just made for ARM architecture but now also supporting x86/x64 platform, see Dockerfile.x86_64 and/or get the x86_64-image!

Turn your Raspberry PI (or x86_64 machine) within 15 minutes into a TV streaming and recording server for your local network! This project uses the well known Tvheadend software, is based on alpine Linux, which is with ~5 MB much smaller than most other distribution base, and thus leads to a slimmer Tvheadend target image.

Find the full source code at GitHub or the ready-to-run images in the DockerHub for the ARM or x86_64 platform and do not forget to star the repository ;-)

Requirements

Setup

  • Install a debian Docker package, which you download here and install with dpkg -i package_name.deb. Alternatively install HypriotOS, which is based on Raspbian a debian derivate and results to a fully working docker host, see Getting Started!
  • Get the right DVB-C/S/T Linux firmware, e.g.
/lib/firmware $ wget https://www.linuxtv.org/downloads/firmware/dvb-usb-vp7045-01.fw
  • Change your network interface to a static IP
$ cat /etc/network/interfaces
  ...
  allow-hotplug eth0
  iface eth0 inet static
    address 192.168.PI.IP
    netmask 255.255.255.0
    gateway 192.168.XXX.XXX
  ...
  • Integrate your NAS permanently
$ cat /etc/fstab
  ...
  192.168.NAS.IP:/nfs/Public /mnt nfs auto  0 0
  ...

Alternatively ... if you are lazy, use a docker volume plugin, which enables the volume type NFS to be mounted directly within the container, see Netshare docker plugin. After install you can use it like this

$ docker run -it --volume-driver=nfs --volume NFShost/path:/data alpine /bin/ash
$ cd /data
$ touch testfile
  • Pull the respective docker image $ docker pull netzfisch/rpi-tvheadend

Build

To build the image and/or compile by yourself from git source, use Dockerfile.build

$ cat Dockerfile.build
$ docker build -f Dockerfile.build -t netzfisch/tvheadend:git-build .
$ docker tag netzfisch/tvheadend:git-build netzfisch/tvheadend:4.1_git20161008

Find the automated build for that at DockerHub.

Usage

Get ready to roll and run the container:

$ docker run --detach \
             --name tvheadend \
             --restart unless-stopped \
             --volume /mnt/Configs/tvh-config:/config \
             --volume /mnt/Movies:/recordings \
             -p 9981-9982:9981-9982 \
             --privileged netzfisch/rpi-tvheadend

Finally configure Tvheadend via the web interface at http://192.168.PI.IP:9981. An initial user is created, so you will be logged in flawless, and setup wizard should start immediately!

HEADS UP If you are running into problems like

2016-10-02 18:32:25.705 dvr: Unsupported charset ASCII using ASCII
2016-10-02 18:32:25.705 dvr: Recording error: Unable to create file

check the Web-GUI [ Recording > DVR-Profile > Advanced View > Filename Charset ] if set to a supported charset format, e.g. UTF-8! At my installation it was set to ASCII which failed to write to the NAS, and cost me too much time to debug ;-( ... encoding in 2016 still sucks!

Debugging

If you run into trouble, try to get a clean setup at docker host level

$ docker stop tvheadend && docker rm tvheadend # stop and remove container
$ rmmod dvb_usb_vp7045 dvb_usb dvb_core        # remove DVB-T linux modules
$ modprobe dvb_usb_vp7045                      # reload DVB-T linux modules
$ docker run --detach \                        # create new containter
             --name tvheadend \
             ...

and than go into the container for further debugging:

$ docker exec -it tvheadend /bin/ash

Contributing

If you find a problem, please create a GitHub Issue.

Have a fix, want to add or request a feature? Pull Requests are welcome!

License

The MIT License (MIT), see LICENSE file.