Hardware is Raspberry Pi, OS is Raspbian which after booting automatically logs in the user fibel whose .bashrc specifies to launch xinit whose .xinitrec specifies to run chromium Frontend is running in chromium which loads index.html which loads all the rest.
Interaction between backend services / sensors and frontend takes place by means of websockets. Every backend service pipes it outputs into pipes located in /dev/fibel, these pipes are created by bunch of gwsocket-daemons launched at startup, config file for service2port associations is in /etc/fibel/sockets.
All necessary frontend code for dealing with sockets is in js/sockets.js