forked from Screenly/Anthias
-
Notifications
You must be signed in to change notification settings - Fork 0
Developer Documentation
Emyll Almonte edited this page Oct 21, 2020
·
1 revision
(this document is in its initial phase)
Here is a high-level overview of the different components that make up the Screenly-OSE system.
- Screenly-Viewer is what drives the screen (Ex: shows web page or image or video)
- Screenly-Server is what the user interacts with (Ex: Web GUI)
- Screenly-Celery is for task/queue/asynchronously executing work outside the HTTP request-response cycle (Ex: periodic cleanup task, upgrade via web)
- Screenly-WebSocket is used for forwarding requests from NGINX to backend Screenly-Server (Ex: )
- Redis is used as a database, cache and message broker. (Ex: )
- SQLite is used as the database for storing the assets information.
These components and their dependencies are mostly installed and handled with Ansible and respective playbooks.
There are currently three versions of Screenly-OSE..
Version: Branch: Comment:
Developer master This is where we test things and apply latest fixes
Production production This is the branch disk images are built from and should be properly tested
Experimental experimental This is the branch with the experimental browser
/home/pi/screenly/
All of the files/folders from the Github repo should be cloned into this directory.
/home/pi/.screenly/
celerybeat-schedule -> stores the last run times of the celery tasks.
default_assets.yml -> configuration file which contains the default assets that get added to the Assets if enabled.
device_id -> randomly generated string to identify device.
initialized -> tells whether hotspot service runs or not.
latest_screenly_sha -> shows the version of branch in hashed value.
screenly.conf -> configuration file for web interface settings.
screenly.db -> database file containing current Assets information.
/etc/systemd/system/
matchbox.service ->
screenly-celery.service ->
screenly-viewer.service ->
screenly-web.service ->
screenly-websocket_server_layer.service ->
wifi-connect.service ->
/etc/nginx/sites-enabled/
screenly_assets.conf ->
screenly.conf ->
/etc/sudoers.d/screenly_overrides -> sudoers configuration file that allows pi user to execute certain sudo commands without being superuser.
/usr/share/plymouth/themes/screenly
screenly.plymouth ->
splashscreen.png ->
screenly.script ->
/usr/local/sbin/upgrade_screenly.sh -> bash installation script that gets called through celery task from web interface when users need to upgrade version of screenly to Latest or Production without requiring superuser.
/usr/local/bin/screenly_usb_assets.sh -> script file that handles assets in USB file.
/other/directories/here/.. from ansible roles
The Experimental branch uses a different web browser which is maintained on a different Github repo here:
https://github.com/Screenly/screenly-ose-webview
(need more details about this process and how exactly the experimental browser is installed.