Skip to content
Snippets Groups Projects
Commit a86fc3e8 authored by David Trattnig's avatar David Trattnig
Browse files

Updated documentation for setup and running.

parent 53e6bbdf
No related branches found
No related tags found
No related merge requests found
Pipeline #589 failed
......@@ -13,7 +13,14 @@ specifically build for the requirements of community radios.
- [Architecture](#architecture)
- [Requirements](#requirements)
- [Installation](#installation)
- [Start the Engine](#start-the-engine)
- [Install System Libraries](#install-system-libraries)
- [Install Engine](#install-engine)
- [Setup Database](#setup-database)
- [Configuration](#configuration)
- [Running Engine](#running-engine)
- [Development](#development)
- [Production](#production)
- [API Server](#api-server)
- [Logging](#logging)
- [About](#about)
- [Resources](#resources)
......@@ -61,14 +68,15 @@ It is tested and coded on Debian Stretch and Ubuntu 18.0 with Python 3.6+.
git clone https://gitlab.servus.at/autoradio/engine
```
**Install System Libraries:**
### Install System Libraries
Aura Engine requires at least Node 13 and Python 3.7.
```bash
sudo apt install \
git \
nodejs\
supervisor \
nodejs \
python3.7 python3.7-pip python3.7-dev \
redis-server \
libsndfile1 ffmpeg \
......@@ -79,13 +87,21 @@ sudo apt install \
liquidsoap-plugin-all
```
**Install Engine Packages:**
### Install Engine
Development Environment:
```bash
sudo ./install.sh
```
**Setup Database:**
Production Environment:
```bash
sudo ./install.sh prod
```
### Setup Database
```bash
mysql -u root -p
......@@ -95,7 +111,7 @@ CREATE USER 'aura'@'localhost' IDENTIFIED BY 'secure-password';
GRANT ALL PRIVILEGES ON aura_engine.* TO 'aura'@'localhost';
```
**Configuration:**
### Configuration
Run
......@@ -111,10 +127,12 @@ your time to carefully review those settings!
Read more about detailed settings in the [Configuration Guide](docs/configuration-guide.md).
## Start the Engine
## Running Engine
### Development
**Development:** While developing there is a simple convencience script `run.sh`
While developing there is a simple convencience script `run.sh`
to get you started. Call the engine's components in following order:
```shell
......@@ -123,14 +141,19 @@ to get you started. Call the engine's components in following order:
./run.sh api # Starts the engine-api component
```
**Production:** In production the process is slightly different to ensure the
In development mode Engine uses the [Flask](https://palletsprojects.com/p/flask/) development server.
This server should not be used in your production environment.
### Production
In production the process is slightly different to ensure the
engine's components are always running i.e. restart themselves after some system
restart or crash. Therefore they are executed using a system service:
```bash
systemctl start aura-engine
systemctl start aura-lqs
systemctl start aura-api
```
and on system boot run following:
......@@ -140,9 +163,33 @@ and on system boot run following:
systemctl enable aura-lqs
```
#### API Server
For production Engine API uses the WSGI HTTP Server [`Gunicorn`](https://gunicorn.org/).
[`Supervisor`](http://supervisord.org/) is a preferable solution to run the gunicorn server
in the background and also start it automatically on reboot.
**Start the API service with Supervisor**
```shell
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl avail
sudo supervisorctl restart engine-api
```
In case you want to reload whole supervisor service
```shell
sudo service supervisor restart
```
## Logging
All Engine logs for production can be found in `/var/log/aura/engine`
You can access the service logs using one of:
```
......@@ -161,9 +208,12 @@ Aura Engine is the play-out engine of the Aura Radio Software Suite. Aura stands
| [Steering](https://gitlab.servus.at/autoradio/pv) | [Dashboard](https://gitlab.servus.at/autoradio/dashboard) | [Tank](https://gitlab.servus.at/autoradio/tank) | [Engine](https://gitlab.servus.at/autoradio/engine) |
## Resources ##
## Resources
* **Python**: https://docs.python.org/
* **Redis**: https://redis.io/
* **Liquidsoap**: https://www.liquidsoap.info/doc-1.4.0/
* **Jack Audio**: https://jackaudio.org/
* **Flask**: https://palletsprojects.com/p/flask/
* **Supervisor**: http://supervisord.org/
* **Gunicorn**: https://gunicorn.org/
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment