GithubHelp home page GithubHelp logo

marco-buratto / signage-orchestrator Goto Github PK

View Code? Open in Web Editor NEW
14.0 1.0 4.0 2.02 MB

Signage Orchestrator

Home Page: https://www.binaryemotions.com

License: GNU General Public License v3.0

Shell 24.13% Python 33.40% CSS 12.16% JavaScript 6.86% HTML 0.35% Vue 23.10%
digital-signage raspberrypi slideshow

signage-orchestrator's Introduction

SIGNAGE ORCHESTRATOR

Signage Orchestrator is a central web interface you can use to schedule Raspberry Slideshow and Raspberry Digital Signage units (“players”) to slide media/display web urls in a calendar-based timetable.

All available players are enlisted in the Players table (in the image only Slideshow players are available), if configured to use the Orchestrator.

You can add each player to a Group.

Usage1 Usage2

Playlists are player configurations.

Essentially, for Raspberry Slideshow a playlist is the media.conf directives, plus the transition and blend time of images:

Usage3

For Raspberry Digital Signage, a playlist contains the following information:

Usage4

In the Events tab you can schedule a group of players to use a playlist (of course, Raspberry Slideshow players can only run Slideshow Playlists, while Raspberry Digital Signage players are only able to run Web Signage Playlists):

Usage5 Usage6

Please note that in the Events tab you need to select the Group, then all events related to it will be displayed.

When adding a new event, just give it a name, then click on it, use the modification icon and assign it a playlist (as in the last image here above).

In the images, for example, all the players associated to the "Mall public players group" will be scheduled, according to the calendar, to slide their associated playlist, which can be of course different from event to event.


Installation

A x86_64 Debian 12 Bookworm operating system is needed in order to deploy Signage Orchestrator (the platform is not meant to run on Pis; Pis are only used as players). System must be reachable by Raspberry Slideshow/Digital Signage players, so in the same network or correctly routed.

For testing purposes, a VirtualBox virtual machine with bridged network is fine.

Once installed the operating system, SSH in as root, then give the following commands:

apt update

cd /root
wget https://github.com/marco-buratto/signage-orchestrator/releases/download/v1.2/signage-orchestrator-backend_1.2-3_all.deb
wget https://github.com/marco-buratto/signage-orchestrator/releases/download/v1.2/signage-orchestrator-ui_1.2-1_all.deb

apt install -y /root/signage-orchestrator-*.deb

During the installation, debconf will ask you to set the timezone according to yours and to create a password for the admin user of Signage Orchestrator (use ONLY ALPHANUMERIC characters), in order to be able to login and connect players. The following images are shown as an example:

Installation1 Installation2 Installation3

Please be sure the time of the operating system is always correct: configure systemd-timesyncd or install another NTP service for the purpose.

Just a note, the following APT message you'll see at the end of the process is NOT an error:

N: Download is performed unsandboxed as root as file '/root/signage-orchestrator-backend_1.1-1_all.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

First access

From your browser of choice, browse to the IP address of the host/vm you have just installed and agree to the security warnings. The default installation is deployed with an auto-signed certificate.

Login with admin as user and the password you have chosen.

By the way, Signage Orchestrator is designed with security in mind, but of course in production environments or "untrusted networks", a valid TLS certificate is needed to be installed into Apache.


Players connection

All configured players (Pis running Raspberry Slideshow or Raspberry Digital Signage) are enlisted in the Players table, if configured. In order to configure a player, SSH into it as root, then:

apt install -y curl wget

cd /tmp
wget --no-check-certificate https://ORCHESTRATOR_ADDRESS/raspberry-player/player-connector.sh
# or wget https://ORCHESTRATOR_ADDRESS/raspberry-player/player-connector.sh with a valid certificate on the Orchestrator.

bash player-connector.sh --action install --player-type web|slideshow --orchestrator-address ORCHESTRATOR_ADDRESS --orchestrator-password "ORCHESTRATOR_PASSWORD" --player-name "PLAYER_NAME" --player-position "PLAYER_OPTIONAL_POSITION_NOTES" --player-comment "PLAYER_OPTIONAL_COMMENT" --check-tls yes|no
  1. player-type: on Raspberry Slideshow players use "slideshow"; on Raspberry Digital Signage players use "web".
  2. ORCHESTRATOR_ADDRESS is the IP address or fqdn of your Signage Orchestrator installation and ORCHESTRATOR_PASSWORD is the password chosen when installing.
  3. PLAYER_NAME, PLAYER_OPTIONAL_POSITION_NOTES, PLAYER_OPTIONAL_COMMENT are properties of the player (Raspberry unit) itself, so how it will be displayed in the Orchestrator interface.
  4. check-tls: use "no" unless you have installed a valid certificate on the Orchestrator.

Now you can schedule your first event on the Orchestrator GUI: if for example it's 10:07, schedule an event for 10:10 and then relax seeing your players show the playlist content :)

If you experience problems, please see the DEBUG docs.

signage-orchestrator's People

Contributors

marco-buratto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

signage-orchestrator's Issues

Player (Raspberry) can't be found

Hi,

the Signage Orchestrator was installed successfully on a VM (Debian 12.5 64 Bit). I get access to the web interface.
When I want to "register" the player, after downloading the player-connector script to the Raspberry via ssh and running it with the commands, there is no player shown in the player menu of the web interface.
The Raspberry Pi is a new one (RP5). Is there an issue with the new Raspberry or is there a list which Raspberry Pi I should use?

Thank you

Player can't be found

I have set up the player and orchestrator as instructed and followed the DEBUG.md to find this in the syslog: SIGNAGE DJANGO_API - User data incorrect: {'Signage Orchestrator Backend': {'error': "{'address': [ErrorDetail(string='This field may not be blank.', code='blank')]}"}}
DJANGO_API - --> Response: <Response status_code=400, "application/json">
DJANGO_API - Bad Request: /api/v1/backend/players/

When i fill out the player connection script, it seems to not take the address of the orchestrator as shown here
User data: {'data': {'uuid': 'd--------', 'player_type': 'slideshow', 'name': 'STV1', 'position': '', 'address': '', 'comment': '', 'metrics': 'uptime: 4days', 'ssh_public_key':

I just can't seem to find /api/v1/backend/players/ or i would input the address myself.

I am very new to working with raspberry pi's so I may be completely missing something. Any assistance would be greatly appreciated.

I am using the paid version

AxiosError: Request failed with status code 500

Dear Marco,

I have encountered a problem. I can navigate through the different tabs, but I keep getting this error and I can't add a slideshow playlist. Do you know how I can solve this problem?

Kind regards

Emil Senkel

AxiosError: Request failed with status code 500
Screenshot 2023-11-29 at 14 33 15

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.