vrr-infoscreen - Infoscreen for Public Transit Departures
vrr-infoscreen (formerly vrr-fakedisplay) shows departures at a public transit stop, serving both as infoscreen / webapp and LED departure monitor look-alike.
It supports most german local transit networks and also some austrian ones.
There's a public vrr-infoscreen service on finalrewind.org. You can also host your own instance via carton/cpanminus or Docker, see the Setup notes below.
Legacy Warning. As of 2017, vrr-infoscreen is not under active development anymore. Maintenance and bugfixes may not occur in a timely manner.
- perl ≥ 5.20
- carton or cpanminus
- build-essential (gcc/clang, make)
- libdb (Berkeley Database Libraries)
- libgd (GD Graphics Library)
After installing the dependencies, clone the repository using git, e.g.
git clone https://git.finalrewind.org/vrr-fakedisplay
Make sure that all files (including
.git, which is used to determine the
software version) are readable by your www user, and follow the steps in the
vrr-infoscreen depends on a set of Perl modules which are documented in
cpanfile. After installing the dependencies mentioned above, you can use
carton or cpanminus to install Perl depenencies locally.
In the project root directory (where
cpanfile resides), run either
cpanm -n --installdeps .
Next, you need to build App::VRR::Fakedisplay, which is required for the LED frontend and shipped with vrr-fakedisplay.
export PERL5LIB=local/lib/perl5 perl Build.PL ./Build ./Build manifest sudo ./Build install
You are now ready to start the web service. If you used carton, it boils down to
carton exec hypnotoad index.pl
Otherwise, you need to make the perl dependencies available by setting the PERL5LIB environment variable:
PERL5LIB=local/lib/perl5 local/bin/hypnotoad index.pl
Installation with Docker
A vrr-infoscreen image is available on Docker Hub. You can install and run it as follows:
docker pull derfnull/vrr-fakedisplay:latest docker run --rm -p 8000:8091 -v "$(pwd)/templates:/app/ext-templates:ro" vrr-fakedisplay:latest
docker run -e VRRFAKEDISPLAY_WORKERS=4 ... and similar to pass
environment variables to the vrr-infoscreen service.
vrr-infoscreen is configured via environment variables:
||IP and Port for web service|
|VRRFAKEDISPLAY_STATS||None||File in which the total count of (non-cached) backend API requests is written|
|VRRFAKEDISPLAY_WORKERS||2||Number of concurrent worker processes|
Set these as needed, create
templates/imprint.html.ep (imprint) and
pass requests for vrr-infoscreen to the appropriate port.
You can run the app using a Mojo::Server of your choice, e.g. perl
index.pl daemon -m production (quick&dirty, does not respect all variables)
or hypnotad (recommended). A systemd unit example is provided in