From b3724d60d2e50dd19e61140406aa85dff981ac16 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Mon, 29 Jan 2018 14:15:49 +0000 Subject: startup script: adapting for gunicorn --- bin/genenetwork2 | 16 ++++++++++++++++ wqflask/__init__.py | 1 - wqflask/gunicorn/__init__.py | 0 wqflask/gunicorn/genenetwork2.py | 10 ++++++++++ wqflask/gunicorn/wsgi.py | 5 +++++ wqflask/runserver.py | 2 ++ 6 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 wqflask/gunicorn/__init__.py create mode 100644 wqflask/gunicorn/genenetwork2.py create mode 100644 wqflask/gunicorn/wsgi.py diff --git a/bin/genenetwork2 b/bin/genenetwork2 index c6b08771..f32c76eb 100755 --- a/bin/genenetwork2 +++ b/bin/genenetwork2 @@ -22,6 +22,14 @@ # a -c switch, e.g. # # env GN2_PROFILE=~/opt/gn-latest-guix ./bin/genenetwork2 ~/my_overrides.json -c ./wqflask/maintenance/gen_select_dataset.py +# +# For development you may want to run +# +# env GN2_PROFILE=~/opt/gn-latest-guix WEBSERVER_MODE=DEBUG LOG_LEVEL=DEBUG ./bin/genenetwork2 +# +# For production we use gunicorn. Run with +# +# env GN2_PROFILE=~/opt/gn-latest-guix ./bin/genenetwork2 ./etc/default_settings.py -gunicorn "--bind 0.0.0.0:8000 --workers=2 --chdir wqflask/gunicorn/ wsgi" SCRIPT=$(readlink -f "$0") GN2_BASE_DIR=$(dirname $(dirname "$SCRIPT")) @@ -123,6 +131,14 @@ if [ "$1" = '-c' ] ; then python $cmd exit 0 fi +if [ "$1" = '-gunicorn' ] ; then + cd $GN2_BASE_DIR + cmd=${2} + echo PYTHONPATH=$PYTHONPATH + echo RUNNING COMMAND gunicorn $cmd + gunicorn $cmd + exit 0 +fi echo "Starting the redis server:" echo -n "dir $TMPDIR diff --git a/wqflask/__init__.py b/wqflask/__init__.py index 315b709e..e69de29b 100644 --- a/wqflask/__init__.py +++ b/wqflask/__init__.py @@ -1 +0,0 @@ -from wqflask import app diff --git a/wqflask/gunicorn/__init__.py b/wqflask/gunicorn/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/wqflask/gunicorn/genenetwork2.py b/wqflask/gunicorn/genenetwork2.py new file mode 100644 index 00000000..afbdc934 --- /dev/null +++ b/wqflask/gunicorn/genenetwork2.py @@ -0,0 +1,10 @@ +from flask import Flask +application = Flask(__name__) + +@application.route("/") +def hello(): + return "

Hello There!

" + +if __name__ == "__main__": + application.run(host='0.0.0.0') + diff --git a/wqflask/gunicorn/wsgi.py b/wqflask/gunicorn/wsgi.py new file mode 100644 index 00000000..8c14ee6b --- /dev/null +++ b/wqflask/gunicorn/wsgi.py @@ -0,0 +1,5 @@ +from genenetwork2 import application + +if __name__ == "__main__": + application.run() + diff --git a/wqflask/runserver.py b/wqflask/runserver.py index 50f134db..e62e34f2 100644 --- a/wqflask/runserver.py +++ b/wqflask/runserver.py @@ -1,5 +1,7 @@ # Starts the webserver with the ./bin/genenetwork2 command # +# This uses Werkzeug WSGI, see gunicorn.py for the alternative +# # Please note, running with host set externally below combined with # debug mode is a security risk unless you have a firewall setup, e.g. # -- cgit v1.2.3