/openepg

Open Source EPG generator for DVB Multiplexers

Primary LanguageJavaScriptGNU Affero General Public License v3.0AGPL-3.0

openepg

Open Source EPG generator for DVB Multiplexers

openepg is a lightweight node.js program built around cherryepg, a perl library for generating a MPEG-TS stream with EIT (Event Information Table) data, ment to be run on a Raspberry Pi. It depends on node-perl to be able to use the library. UI was built using tutorial from Krol(){tech}

##Dependencies ###Perl (on Debian Wheezy)

sudo apt-get install perl libperl-dev

###Perl (on Raspbian)

sudo apt-get install perl libdbi-perl
sudo ln -s /usr/lib/libperl.so.5.14 /usr/lib/libperl.so

###Node.js (on Debian Wheezy)

sudo apt-get install nodejs

###Node.js (on Raspbian)

wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb

##Install ###Download

git clone https://github.com/avcsa/openepg.git

###Install (Production)

cd openepg
make install

###Install (Development)

cd openepg
make install-dev

##Run openepg consist on 5 modules:

  • Status server (serves status info from and to all modules, it always must be run first)
  • Gui server (serves the HTTP server for the GUI)
  • Importer server (handles the importation of EIT data from a provider)
  • EIT updater server (updates current EIT data to be sent to the multiplexer)
  • Carousel server (sends current EIT data to the multiplexer)

You can run all modules together or one by one (last recommended)

###Together (Production)

make serve

###Together (Development)

make serve-dev

###Status server (Production & Development)

make serve_status

###Importer server (Production & Development)

make serve_importer

###EIT Updater server (Production & Development)

make serve_eitupdater

###Carousel server (Production & Development)

make serve_carousel

###GUI server (Production)

make serve_gui

###GUI server (Development)

make build-dev
make serve_gui

##Monit Inside the 'monit' folder you will find a series of bash scripts along with a monitrc file to use with Monit. Take them as examples and modify to suit your enviroment.
For making monit run at startup and start OpenEPG and shut it down on system shutdown, you cand add this lines to /etc/inittab (modify to suit your enviroment):

mo:2345:respawn:su - pi -c '/usr/bin/monit -Ic /home/pi/openepg/monit/monitrc'
mon:2345:wait:su - pi -c '/usr/bin/monit -Ic /home/pi/openepg/monit/monitrc start all'
moff:06:wait:su - pi -c '/usr/bin/monit -Ic /home/pi/openepg/monit/monitrc stop all'

##Configuration All configuration options are inside conf.json file. ##Importer You will see there is a ftp importer and a reportv dataprovider. Most probably you will have another data provider, so take a look at these files and make your own implementation. Both (importer and data provider) can be configured in conf.json ##TODO

  • Replace cherryepg with a pure js implementation
  • Allow config to be changed from the gui
  • Hot reload of config on changes
  • Move to a pure Backbone data implementation, with push and pagination
  • Write an autoupdate to be controlled from the GUI for automated download and install of new versions

##Feedback Please let me know how does it go to you on github issues! ##LICENSE GNU Affero General Public License

Enjoy!