tvid/README.md

86 lines
2.4 KiB
Markdown
Raw Normal View History

2020-03-10 13:44:28 +00:00
# tvid
2020-03-11 02:38:40 +00:00
## Problem
2020-03-10 13:44:28 +00:00
2020-03-11 02:38:40 +00:00
You want to deploy a bunch of cheap $150 giant TVs to display dashboards and
status stuff, but you don't want to image the Raspberry Pis separately or
hook up keyboards/mouse.
## Solution
Make a single OS image for all your display-driving SBCs that goes to a
non-unique URL: this app.
This app lets you set all the kiosk/display TVs in your organization to the
same URL. Each will be cookied with a unique ID that will display on each
display in big letters, with no preconfiguration required.
Log in to the admin panel (`/admin`) and enter the URL target for that
display, and within 60 seconds, that display will bounce to that URL, or any
other time it turns on.
2020-03-10 13:44:28 +00:00
2020-03-11 01:52:30 +00:00
You can reconfigure the target URL at any time, and the next time that
display reboots or reloads (you should be rebooting your displays daily) it
will get redirected to the new target.
# configuration knobs
## environment variables
* set `ADMIN_PSK` to the admin password (for `/admin` url)
## state storage
* writes sqlite database into `/data`, mount that volume somewhere
2020-03-10 13:44:28 +00:00
# todo
2020-03-11 16:13:50 +00:00
* fix CSRF bug
2020-03-11 01:52:30 +00:00
* fix FIXMEs
2020-03-11 16:13:50 +00:00
* fix logging output (that is, make it log anything)
2020-03-11 01:52:30 +00:00
* put git short id into version string
2020-03-11 02:38:40 +00:00
* make sure cookie expiration is correct
* sessions maybe
* configuration in db to support password changes
2020-03-11 16:13:50 +00:00
* perhaps load the target in a fullsize iframe so that the target can be
changed by the js on server update instead of having to reboot the display
box
2020-03-11 02:38:40 +00:00
# screenshots
## Display ID screen
(This is what gets displayed on a TV. It animates to avoid screenburn.)
![screenshot one](/sneak/tvid/raw/branch/master/screenshots/1.png)
## Login Page
![screenshot two](/sneak/tvid/raw/branch/master/screenshots/2.png)
## Admin Panel
![screenshot three](/sneak/tvid/raw/branch/master/screenshots/3.png)
2020-03-11 01:52:30 +00:00
# license
WTFPL
2020-03-10 13:44:28 +00:00
2020-03-11 16:13:50 +00:00
# status
This is not enterprise-production-grade software yet.
It has a CSRF bug (low severity) and it stores your unhashed auth password
in a cookie. I didn't even check how long the per-device cookie expirations
are, so it might have a big painful bug there too. I made it to scratch an
itch and I am running it in production; I may improve it further but it
works for my purposes (being able to flash a half-dozen display driver
raspberry pis with the same image) as-is.
Patches and improvements and bug reports are welcome. Send me an email at
the address below.
2020-03-10 13:44:28 +00:00
# author
sneak <[sneak@sneak.berlin](mailto:sneak@sneak.berlin)>