A fancy self-hosted digital signage tool. Free, simple and working.
Go to file
2024-05-05 18:51:26 +02:00
.github/workflows build only for push to master 2024-04-29 02:47:56 +02:00
data fully working slide cron schedule frontend 2024-05-03 03:10:10 +02:00
docs cron schedule fully working on backend 2024-05-02 21:57:57 +02:00
lang cron schedule fully working on backend 2024-05-02 21:57:57 +02:00
plugins add footer version 2024-04-29 18:57:33 +02:00
src check if selectables is None 2024-05-05 18:51:26 +02:00
system Rename reclame.service to obscreen.service 2024-02-18 23:04:28 +01:00
var/run add animations 2024-05-02 16:21:04 +02:00
views fully working slide cron schedule frontend 2024-05-03 03:10:10 +02:00
.dockerignore better config management 2024-04-29 02:21:31 +02:00
.env.dist add docker build 2024-04-29 02:35:08 +02:00
.gitignore add dummy file 2024-04-29 02:55:56 +02:00
docker-compose.dev.yml better config management 2024-04-29 02:21:31 +02:00
docker-compose.yml better config management 2024-04-29 02:21:31 +02:00
Dockerfile add docker 2024-03-22 14:59:23 +01:00
LICENSE Create LICENSE 2024-04-25 17:23:27 +02:00
obscreen.py fix path 2024-03-04 17:26:04 +01:00
README.md add cron slides to frontend, missing slide popup logic 2024-05-02 22:18:44 +02:00
requirements.txt use waitress to serve app 2024-05-05 18:47:50 +02:00
version.txt bump version 2024-05-03 03:13:43 +02:00

Obscreen

🧑‍🎄 Open to feature request and pull request

About

Use a RaspberryPi to show a full-screen slideshow (Kiosk-mode)

Docker Pulls

Features:

  • Dead simple chromium webview
  • Clear GUI
  • Fleet view to manage many devices easily
  • Very few dependencies
  • JSON database files
  • Plugin system
  • No stupid pricing plan
  • No cloud
  • No telemetry

Obscreen Screenshot

Installation and configuration (docker)

git clone https://github.com/jr-k/obscreen.git
cd obscreen
cp .env.dist .env

# be sure to have a valid file path for AUTOCONFIGURE_LX_FILE variable
# you should use ./var/run/dummy if you don't care about monitor and just want to test
nano .env

# run
docker compose up

Installation (manual)

sudo apt-get update
sudo apt-get install -y git chromium-browser unclutter

git clone https://github.com/jr-k/obscreen.git 
cd obscreen && pip3 install -r requirements.txt && cp data/db/slideshow.json.dist data/db/slideshow.json && cp .env.dist .env

Configure

  • Server configuration is available in .env file.
  • Application configuration is available in http://localhost:5000/settings page.

Run

Cli mode

./obscreen.py

Forever with systemctl

sudo ln -s "$(pwd)/system/obscreen.service" /etc/systemd/system/obscreen.service
sudo systemctl daemon-reload
sudo systemctl enable obscreen.service
sudo systemctl start obscreen.service

To troubleshoot you can check logs

sudo journalctl -u obscreen -f 

Usage

You are done now :)

  • If everything is set up correctly, the RaspberryPi shall start chromium in fullscreen directly after boot screen and after some seconds of showing the date & time (views/player/default.jinja.html) your slideshow shall start and loop endlessly.
  • Be sure that AUTOCONFIGURE_LX_FILE is writeable !

Additional

A. Hardware checks

However, I used this one: (2,82) = 1920x1080 60Hz 1080p

B. Nginx server to serve pages (useful for gzip compression for instance)

  1. Install
sudo apt install -y nginx
sudo rm /etc/nginx/sites-enabled/default 2>/dev/null
sudo ln -s "$(pwd)/system/nginx-obscreen" /etc/nginx/sites-enabled
sudo systemctl reload nginx
  1. Set autoconfigure_reverse_proxy_mode to true in .env file