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

Align with running engine. engine#72

parent bf37ebaf
No related branches found
No related tags found
No related merge requests found
......@@ -94,7 +94,7 @@ The *Engine API syncronization node* always only stores the valid (i.e. actually
This top-down synchronization process of posting any incoming playlogs at the *Engine Node* also to the *Synchronization Node* can be called **Active Sync**. This **Active Sync**
doesn't work in every scenario, as there might be the case, that the *Synchronization Node* is not available e.g. due to network outage, maintenance etc. In this situation the playlog
obviously can not be synced. That means the local playlog at the *Engine Node* is marked as "not synced".
obviously can not be synced. That means the local playlog at the *Engine Node* is marked as "not synced".
##### Passive Sync
......@@ -213,9 +213,11 @@ sync_step_sleep=2
To run the API in an local development server execute:
```bash
./run.sh api-dev
./run.sh dev
```
This command implicitely activates the virtual environment before starting the API.
For convenience running a plain `./run.sh` also starts the development server.
In development mode Engine uses the default [Flask](https://palletsprojects.com/p/flask/) web server.
......@@ -238,9 +240,9 @@ For production Engine API defaults to using the WSGI HTTP Server [`Gunicorn`](ht
You might also want to pair Gunicorn with some proxy server, such as Nginx.
> Although there are many HTTP proxies available, we strongly advise that you use Nginx. If you choose another proxy
server you need to make sure that it buffers slow clients when you use default Gunicorn workers. Without this buffering
Gunicorn will be easily susceptible to denial-of-service attacks. You can use Hey to check if your proxy is behaving properly.
> Although there are many HTTP proxies available, we strongly advise that you use Nginx. If you choose another proxy
server you need to make sure that it buffers slow clients when you use default Gunicorn workers. Without this buffering
Gunicorn will be easily susceptible to denial-of-service attacks. You can use Hey to check if your proxy is behaving properly.
[**Gunicorn Docs**](http://docs.gunicorn.org/en/latest/deploy.html).
To run Gunicorn, you first need to create the Gunicorn configuration
......
#!/bin/bash
# Default mode
mode="api-dev"
mode="dev"
docker="false"
#
......@@ -8,7 +8,7 @@ docker="false"
#
# Call with one of these parameters:
#
# - api-dev
# - dev
# - api
# - test
# - recreate-database
......@@ -17,10 +17,10 @@ docker="false"
# - docker:build
# - docker:push
# - docker:api
#
#
if [[ $* =~ ^(api-dev|api-test-0|api-test-1|api-test-2|api|test)$ ]]; then
mode=$1
if [[ $* =~ ^(dev|api-test-0|api-test-1|api-test-2|api|test)$ ]]; then
mode=$1
fi
if [[ "$1" == *"docker:"* ]]; then
......@@ -32,6 +32,9 @@ fi
echo "[ Run mode=$mode ]"
echo "[ Docker=$docker ]"
# Check for the correct Python version (3.8+)
PYTHON_EXEC="python3"
echo "[ Using $(python3 -V) ]"
# +++ DEFAULT COMMANDS +++ #
......@@ -40,9 +43,9 @@ if [[ $docker == "false" ]]; then
### Runs the API Server (Development) ###
if [[ $mode == "api-dev" ]]; then
echo "Activating Python Environment"
source python/bin/activate
if [[ $mode == "dev" ]]; then
source python/bin/activate
echo "Running Engine API in Python Environment ($(python3 -V))"
echo "Starting API Server"
python src/app.py
fi
......@@ -51,22 +54,20 @@ if [[ $docker == "false" ]]; then
if [[ $mode == "api-test-0" ]]; then
echo "Starting API Server 0"
/usr/bin/env python3 src/app.py config=tests/config/engine-0-api.ini
/usr/bin/env python3 src/app.py config=tests/config/engine-0-api.ini
fi
if [[ $mode == "api-test-1" ]]; then
echo "Starting API Server 1"
/usr/bin/env python3 src/app.py config=tests/config/engine-1-api.ini
/usr/bin/env python3 src/app.py config=tests/config/engine-1-api.ini
fi
if [[ $mode == "api-test-2" ]]; then
echo "Starting API Server 2"
/usr/bin/env python3 src/app.py config=tests/config/engine-2-api.ini
/usr/bin/env python3 src/app.py config=tests/config/engine-2-api.ini
fi
### Runs the API Server using Gunicorn without a system daemon (Production) ###
if [[ $mode == "api" ]]; then
echo "Activating Python Environment"
source python/bin/activate
echo "Starting API Server"
gunicorn -c config/gunicorn.conf.py src.app:app
fi
......
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