vincentbernat / dashkiosk

Managing dashboards on various displays (especially those running on Android)
Other
365 stars 63 forks source link

This project is unmaintained. Due to the rapid decay of the JavaScript ecosystem, this project was too difficult for me to maintain. As of today, Dashkiosk relies mostly on unmaintained library versions that may not build on modern systems.

Dashkiosk

Build Status

Dashkiosk is a solution to manage dashboards on multiple screens. It comes as four components:

  1. A receiver runs in a browser attached to each screen and will display the requested dashboards. The receiver is quite dumb, it contacts the server and wait for it to tell which URL to display.

  2. A server which will manage the screens by sending them what they should display. An administration interface allows the user to manage those screens individually or in a group.

  3. An Android app that will run the receiver. This is mainly a fullscreen webview. There is also a Firefox app fulfilling the same purpose.

  4. A Chromecast custom receiver which will run the regular receiver if you want to display dashboards using Google Chromecast devices.

The full documentation is available on ReadTheDocs.

A live installation, reset every hour, is publicly available:

Here is a demonstration video:

Dashkiosk demo

Development

To run the server for development:

$ grunt serve

Android receiver

The Android receiver has moved to its own repository.

Chromecast receiver

The "official" Chromecast receiver has app ID 5E7A2C2C and is hosted in the gh-pages branch of this repository. To update it:

$ grunt dist
$ git worktree add ~/src/dashkiosk-gh-pages gh-pages
$ cd ~/src/dashkiosk-gh-pages
$ git rm -r *
$ rsync -rv --include '*chromecast*' --include '*/' --exclude '*' ~-dashkiosk/dist/public/* .
$ git add *
$ git commit -m "Update"

Docker

There is a Dockerfile to run Dashkiosk inside Docker. This will also work with Chromecast devices if your Docker host supports the --net=host option:

$ docker run --net=host \
             -v /var/lib/dashkiosk/database:/database \
             -e "chromecast__enabled=1" \
             -e "chromecast__receiver=http://<DOCKER_HOST_IP>:8081/receiver" \
             -e "port=8081" \
             ghcr.io/vincentbernat/dashkiosk:latest

To start without Chromecast support, simply run:

$ docker run -d -p 8080:8080 \
             -v /var/lib/dashkiosk/database:/database \
             ghcr.io/vincentbernat/dashkiosk:latest

Using latest can be broken from time to time. You may prefer a stable tag, like 2.7.9 or 2.7.