Skip to content

lapicidae/vdr-epg-daemon

Repository files navigation

epgd

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.

GitHub Repo stars Docker Pulls Docker Stars GitHub Workflow Status

VDR EPG Daemon docker image based on debian or Ubuntu and s6-overlay.

Features

  • 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

Note

The images are automatically rebuilt when any of the following sources receive an update:

Getting Started

Dependencies

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.

Usage

Here are some example snippets to help you get started creating a container.

docker-compose (recommended)

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                    # optional

docker cli

docker 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:latest

Parameters

Container 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

User / Group Identifiers

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)

Thanks

About

VDR EPG Daemon docker image based on debian or Ubuntu

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors