diff --git a/docs/developer-guide.md b/docs/developer-guide.md index 78570ce733fe92c64ea7a62bde0c357107b25d17..1f822f8544d8b49ca697d5ee439aa15a5b98f384 100644 --- a/docs/developer-guide.md +++ b/docs/developer-guide.md @@ -5,8 +5,8 @@ This page gives insights on extending Aura Engine internals or through the API. <!-- TOC --> - [Aura Engine Development Guide](#aura-engine-development-guide) - - [Architecture](#architecture) - - [Components](#components) + - [AURA Componentes](#aura-componentes) + - [Engine Components](#engine-components) - [API](#api) - [Required Data Sources](#required-data-sources) - [Provided API Endpoints](#provided-api-endpoints) @@ -18,14 +18,34 @@ This page gives insights on extending Aura Engine internals or through the API. <!-- /TOC --> -## Architecture +## AURA Componentes AURA Engine as part of the AURA Radio Suite uses an modulear architecture based on a REST API. All external information is retrieved using JSON data-structures. To get the basic architectural overview, visit the [Aura Meta](https://gitlab.servus.at/autoradio/meta) repository. -### Components +Starting development of engine can be quite tedious, as it requires all most all other AURA components to be up and running. + +For example: + + - Steering, to get the main incredient of an play-out engine: schedules (or "timeslots" in Steering terms), + which hold the actual information on playlists and their entries. + - Dashboard, to have a neat interface, being able to programm the schedules + - Tank, to get the references to audio files and other audio sources. Plus the actual files. + +If you need to test and develop against the Engine's API you'll also need to get the `engine-api` project running. + +For a start it's recommended to create a general `aura` project folder. In there you start cloning all the sub-projects. +After having all the sub-projects configured, and verified that they are working, take a look at the AURA `meta` project. + +There's a convenience script to start all of the three main dependencies (Steering, Dashboard, Tank) all at once: + +```bash + ~/code/aura/meta$ ./run.sh aura local +``` + +### Engine Components **engine-core.py**: It is the server which is connected to the external programme source (e.g. aura steering and tank), to liquidsoap and is listening for redis pubsub messages. This precious little server is telling liquidsoap what to play and when. @@ -61,7 +81,7 @@ to be played and its meta-data: api_tank_playlist="http://localhost:8040/api/v1/shows/${SLUG}/playlists" -More information you can find here: <https://gitlab.servus.at/autoradio/meta/blob/master/api-definition.md> +You can find more information here: <https://gitlab.servus.at/autoradio/meta/blob/master/api-definition.md> ### Provided API Endpoints @@ -100,7 +120,7 @@ Aura Engine requires a number of ports for internal and external communication. Those are the default port numbers: * `1234` ... Liquidsoap Telnet Server -* `3333` ... Exposes the Engine API +* `8008` ... Exposes the Engine API * `5000` ... Svelte development mode; dynamically uses some other port if occupied