Commit 337b11ea authored by Ingo Leindecker's avatar Ingo Leindecker
Browse files

Merge branch 'master' of https://gitlab.servus.at/autoradio/meta

parents 91e8be66 95e104e8
Pipeline #442 failed with stages
```
[meta]: Hello, welcome, this is meta!
[you]: Oh, hi meta, what are you meta about?
[meta]: I am the place where all the work behind the 'real' work is happening.
[meta]: I collect stuff about the AuRa project and greet new visitors.
[you]: Ah, kool. Well... I am a new visitor, what can you tell me about this?
[meta]: **loading project overview info**
[meta]: Hello new visitor, here you go:
```
# AuRa - automated radio playout and management for community radio stations
What is this about? You probably already know. If not, here are some links
that explain in more detail what the community radio stations in .AT land and
.DE land are which call themselves _Freie Radios_ (literally it would be
translated to _free radios_, but as the thing with _free_ here is the same
as with [free software](https://en.wikipedia.org/wiki/Free_and_open-source_software#Free_software)
in general).
Unfortunately most of those links are in German language as our constituency
is located primarily in Austria and German. We will provide a short intro
in English language as soon as we find some time.
About _Freie Radios_:
* http://freie-radios.at - Website of the Austrian association of free radio stations
* http://www.freie-radios.de - Website of the German association of free radio stations
* https://cba.fro.at - Audio portal of Austrian free radio stations
* https://www.freie-radios.net - Audio portal of German free radio stations
**And what is this here now?**
_AuRa_ is an attempt to create a suite of program scheduling and playout
automation software that fits the needs of free radio stations. The initiative
took of in Austria, where several stations are still using and depending on
_Y.A.R.M._ (which is just yet another radio manager). _Y.A.R.M._ was an
awesome project that provided a software which was tailored to how
community radio stations create their diverse programmes. Unfortunately it
is also a piece of monolithic Java code that has come into the years.
Also it never really took of as a free software project and depended on
single developers. Today nobody really wants to touch its code anymore.
Now we urgently need something new, and all those other solutions out there
(FLOSS as well as commercial) do not really fulfill all our requirements.
Therefore we decided to pool our resources and develop something new, while
reusing a lot of work that has already been done at one or another stations.
# Architecural overview
Some of our core organisational and architectural requirements for _AuRa_ are:
* **modular build**: the whole suite should be made up of modular components which could be exchanged with other custom components
* **transparent API**: every component shall provide a well-documented API through which other components can interact with it, ideally as a REST API
* **reuse of existing components**: we do not want to reinvent the wheel. Several stations already developed single components as free software and we can adapt and build on those.
* **modern frameworks**: we do not code from scratch but use modern application development frameworks which provide maintainability as well as security
Out of these requirements we came to an architecture which visually represented
in the [components.png](/blob/master/compontents.png) file in this repository.
So we have four AuRa components for our architecture which we codenamed _autoradio_:
* [dashboard](https://gitlab.servus.at/autoradio/dashboard) - this is the frontend, were we get a good look on our shows and files to play.
* [steering](https://gitlab.servus.at/autoradio/pv) - this is the scheduling module, where the actual program schedule of the whole station is stored as well as all infos regarding single shows and emissions. Due to legacy reasons the _steering_ folder is still called `pv`, as we reused [Radio Helsinki's pv](https://git.helsinki.at/pv.git/) Module.
* [engine](https://gitlab.servus.at/autoradio/engine) - this is where the schedule is actually translated into some audio, our playout server. It is responsible for playing the right audio sources at the right times and to record everything.
* [tank](https://gitlab.servus.at/autoradio/tank) - just spleen without steam. Our tank is an importer module that is used to upload preprocessed emissions and to streamline all audio so our _engine_ gets only the good stuff to power our radio channels.
# I want to try it out
Currently we are not yet in a state where we could provide some simple
.deb packages or some kind of easy install script. So if you want to try it
out you will have to prepare for a little shell and config trickery. Also not
all components do provide all functionalities already. Here is a rough guide
on what to try. More info on the individual modules can be found in their
repos.
We suggest to try out / set up the components in the following order, as
they will partly only be insightful if they interact with each other.
## steering
Head over to https://gitlab.servus.at/autoradio/pv. The master branch still
represents Radio Helsinki's version. So it is important to work on the branch
`ingo-develop`. There you will also find a README.md with all necessary infos
to set up the steering module.
## dashboard
Head over to https://gitlab.servus.at/autoradio/dashboard. In the branch
`master` you find a README.md with all necessary infos to set up. You will
have to create some stuff in the _steering_ module first, to really use the
dashboard. E.g. an OIDC client. Look at the set up infos there. Also the
_steering_ module already brings some dummy data, but atm it might be more
feasible to first add some users and shows through the _steering_ admin.
## engine
Still pending.
## tank
Go to https://gitlab.servus.at/autoradio/tank and read the `README.md`.
If you want to play with OIDC based authentication you also need to run an
instance of the `steering` as found in https://gitlab.servus.at/autoradio/pv.
Check out the branch `tank-oidc` and start it using `run.sh`.
Once `the steering` is running follow the instructions of `README.md` inside
the `tank` repo to start a database server and finally build and run the
daemon itself.
`tank` includes a simple web-interface for testing purposes.
# Contributor guide
Still pending.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment