This is a docker repository for TVMosaic - a personal video recorder
With the support for satellite (DVB-S/S2), Cable (DVB-C and QAM), terrestrial (DVB-T/T2 and ATSC) and IPTV reception TVMosaic will record your favorite TV programs in original quality directly to a hard disk of your host system and let you watch live and recorded TV content within your home network and on the go.
Application highlights:
- Simultaneous support for multiple tuners of different types and from different manufacturers
- Easy-to-use configuration web interface
- Comprehensive TV recording functionality
- Desktop TVMosaic live and recorded TV client for Windows, Ubuntu/Debian and MacOS
- Free TVMosaic apps for iOS, AppleTV, Android, AndroidTV and FireTV devices
- Live and recorded TV for Kodi and DLNA clients
- Built-in support for TVAdviser service, providing rich program information and personalized TV recommendations
- XMLTV program information support
- SendTo function to archive or export your TV recordings (including video format conversion and comskip support)
TVMosaic CE (Community Edition)
Starting from the version 8.0.0 TVMosaic has become TVMosaic CE (Community Edition). This is an opensourced version of the commercial TVMosaic product. For the feature differences between TVMosaic and TVMosaic CE, please refer to TVMosaic CE gitlab repository.
Volumes
/opt/TVMosaic: this volume has to be mapped to a host directory, which will keep and persist across container restarts/updates TVMosaic settings, user accessible files and TV recordings.
Ports
The following ports are exposed:
- 9270: http command port
- 9271: http streaming port
- 9370: https command port
- 9371: https streaming port
Note: https ports are only accessible if TVMosaic is set up with a custom SSL certificate. See our Wiki for more details on how this can be done.
Configuration web interface
After container startup, the TVMosaic configuration web interface is available at
[***]
or, if used with https
[***]
Note: If macvlan network is used (see below) then container own IP address should be used instead of host IP address.
Network and network tuners
It is advisable that TVMosaic container runs in the local network context (this is mandatory for the following features: automatic server discovery, sat2ip/hdhomerun tuner support and DLNA server function).
The easiest way to achieve that is to use
--net=host command line parameter.
This option will also let you use a free TVMosaic functionality in combination with a Kodi or TVMosaic desktop client, running on the host.
On the host systems where --net=host parameter does not work properly a
macvlan network has to be created for TVMosaic container to use.
The command line to create such a network is
docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.200/32 -o parent=eth0 tvm-macvlan
You need to substitute subnet mask and default gateway with the values that make sense for your network.
Since macvlan network is not DHCP aware, --ip-range parameter is used to specify an IP address for TVMosaic container. Put there an unused IP addres of your network (preferably outside of DHCP range).
parent parameter points to the network interface, which is connected to your local network. To find out your interface use
ifconfig or
ip addr commands, depending on the host system.
TVButler tuner
TVButler TV USB tuner (DVB-T/T2/C) is supported on all host systems, which use /dev/bus/usb for USB devices (read - most of the linux hosts).
For TVMosaic container to access the tuner, you need to give privileged access to a container and map /dev/bus/usb volume:
--privileged -v /dev/bus/usb:/dev/bus/usb
Generic USB, PCI or PCIe tuners
Generic USB, PCI or PCIe tuners work with TVMosaic container, providing that they are supported with
video4linux on the host system.
Please use the following command line parameters in this case:
--privileged -v /dev:/dev
Automatic start on host boot
To automatically start TVMosaic container on host boot, add
--restart=always command line parameter.
Examples of TVMosaic container start command lines
The following command line start TVMosaic container with /opt/TVMosaic mapped to /home/build/tvmosaic directory, using host network and TVButler tuner:
docker run -d --restart=always -v /home/build/tvmosaic:/opt/TVMosaic -p 9270:9270 -p 9271:9271 --privileged -v /dev/bus/usb:/dev/bus/usb --net=host dvblogic/tvmosaic:1.0.0.***
The following command line start TVMosaic container with /opt/TVMosaic mapped to /home/build/tvmosaic directory, using previously created tvm-macvlan network for use with iptv or network tuners:
docker run -d --restart=always -v /home/build/tvmosaic:/opt/TVMosaic -p 9270:9270 -p 9271:9271 --net=tvm-macvlan dvblogic/tvmosaic:1.0.0.***
Example of TVMosaic yaml configuration file for use with Docker Compose
The following example configuration file can be used to run the TVMosaic Community Edition with Docker Compose:
version: "3"
services:
tvmosaic:
image: dvblogic/tvmosaic:8.0.0.20001
restart: always
network_mode: "host"
volumes:
- /share/CACHEDEV1_DATA/Video/TVMosaic:/opt/TVMosaic
Further information and support
Additional information is available on the TVMosaic CE gitlab repository and TVMosaic Wiki.
DVBLogic support can be reached via e-mail
opensource at dvblogic.com.
Acknowledgements
Big thanks to the docker hub community user https://hub.docker.com/u/fueller for the inspiration!