epgd - a EPG daemon which fetches the EPG and additional data from various sources (like epgdata, eplists.constabel.net, ...) and provide it to the epg2vdr plugin via a database (MariaDB or MySQL).
The epgd obtains the EPG from the sources by plugins. A plugin for epgData, tvm and xmltv is contained.
It is designed to handle large amount of data and pictures in a distributed environment with one epg-server and many possible vdr-clients.
VDR EPG Daemon docker image based on debian or Ubuntu and s6-overlay.
- regular and timely application updates
- easy user mappings (PGID, PUID)
- integrated tvm and xmltv plugin
- scraper for tvsp mobile website to XMLTV
- epghttpd webinterface (including mostly german station logos)
- eMail notifications via msmtprc - a very simple and easy to use SMTP client
- log to file with built-in log rotation
The images are automatically rebuilt when any of the following sources receive an update:
- debian Official Docker Image - stable-slim
- Ubuntu Official Docker Image - latest
- vdr-epg-daemon GitHub repository
- epgd-plugin-tvm GitHub repository
- epgd-plugin-xmltv GitHub repository
A MariaDB or MySQL server with integrated epglv is required to store the epg details.
For example, you can use the mariadb-epglv docker image.
Here are some example snippets to help you get started creating a container.
Compatible with docker-compose v2 schemas. Take a look at the sample file.
services:
epgd:
container_name: vdr-epg-daemon
environment:
- LANG=de_DE.UTF-8 #other languages are currently not supported
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
hostname: epgd
image: ghcr.io/lapicidae/vdr-epg-daemon:latest
ports:
- 9999:9999
restart: unless-stopped
volumes:
- /path/to/cache:/epgd/cache
- /path/to/config:/epgd/config
- /path/to/epgimages:/epgd/epgimages
- /path/to/channellogos:/epgd/channellogos # optional
- /path/to/log:/epgd/log # optionaldocker run -d \
--name=vdr-epg-daemon \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/Berlin \
-e LANG=de_DE.UTF-8 `#other languages are currently not supported` \
-p 9999:9999 \
-v /path/to/cache:/epgd/cache \
-v /path/to/config:/epgd/config \
-v /path/to/epgimages:/epgd/epgimages \
-v /path/to/channellogos:/epgd/channellogos `#optional` \
-v /path/to/log:/epgd/log `#optional` \
--restart unless-stopped \
ghcr.io/lapicidae/vdr-epg-daemon:latestContainer images are configured using parameters passed at runtime.
These parameters are separated by a colon and indicate <external>:<internal> respectively.
For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.
| Parameter | Default | Function |
|---|---|---|
-p 9999 |
9999 | epghttpd Webinterface |
-e PUID=1000 |
1000 | for UserID - see below for explanation |
-e PGID=1000 |
1000 | for GroupID - see below for explanation |
-e TZ=Europe/London |
Europe/London | Specify a timezone to use (e.g. Europe/London) |
-e LANG=de_DE.UTF-8 |
de_DE.UTF-8 | Default locale; see list (only de_DE.UTF-8 is currently supported) |
-e UPDATE_CONF_EVENTSVIEW=false |
true | Optional - Do not keep the provided eventsview sql files up to date |
-e UPDATE_CONF_PLUGINS=false |
true | Optional - Do not keep the provided config files of the plugins up to date |
-e UPDATE_CONF_USEREXIT=false |
true | Optional - Do not keep the provided file userexit.sql up to date |
-e UPDATE_CONF_MISC=false |
true | Optional - Do not keep all other provided .dat, .py and .sql files up to date |
-e LOGO_INTERNAL=false |
true | Optional - Use your own station logos in /epgd/channellogos |
-e LOGO_OVERWRITE=false |
true | Optional - Do not overwrite existing logos in /epgd/channellogos (only relevant if internal logos are used) |
-e START_EPGHTTPD=false |
true | Optional - Disable webinterface (epghttpd) |
-e RESTART_EPGD=true |
false | Optional - Restart epgd once at 3:30 AM after the start of the container |
-e RESTART_EPGD_AT=3:30 |
3:30 | Optional - Change default restart time (examples) |
-e KNOCK_EPLISTS=false |
true | Optional - Disable the eplists.de connection check |
-e LOG2FILE=true |
false | Optional - Write log to file in /epgd/log |
-v /epgd/config |
Config files | |
-v /epgd/epgimages |
EPG images for use in other plugins (e.g. live plugin) | |
-v /epgd/cache |
Downloaded, temporary files | |
-v /epgd/channellogos |
TV station logos used in Webinterface | |
-v /epgd/log |
Logfiles if LOG2FILE=true |
When using volumes (-v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance PUID=1234 and PGID=4321, to find yours use id user as below:
$ id username
uid=1234(dockeruser) gid=4321(dockergroup) groups=4321(dockergroup)- VDR EPG Daemon Team
- Klaus Schmidinger (kls)
- vdr-portal.de
- just-containers
- linuxserver.io
- ...and all the forgotten ones