Skip to content
Snippets Groups Projects

Online survey creation tool

Prerequisites

Flask app with MariaDB

Check requirements.txt

Installing

Install python packages with pip and preferably in virtual environment:

virtualenv venv
source venv/bin/activate
pip install -r requirements.txt

Create user 'rating' and grant access to database 'rating_db'.

Create necessary tables by running the initialization script:

 mysql -u rating -p -D rating_db < create_rating_db.sql

Deployment

There are multiple deployment options, but one working solution is: nginx + gunicorn (with gevent worker)

Create systemd startup script in '/etc/systemd/system/gunicorn.service'

[Unit]
Description=Gunicorn instance to serve flask application
After=network.target

[Service]
User=nginx
WorkingDirectory=/srv/rating
Environment="PATH=/srv/rating/venv/bin"
ExecStart=/srv/rating/venv/bin/gunicorn run:app -b localhost:8000 -k gevent -w 1

[Install]
WantedBy=multi-user.target

Run 'systemctl daemon-reload' to reload units.

Enable and start gunicorn service:

service gunicorn enable
service gunicorn start

Logs

Error logs are saved to application folder (/srv/rating/logs/)

Optionally with journalctl: journalctl -u gunicorn.service

Restart server after updates

service gunicorn restart