From f7639c06dd4543bd6b8fa80570d9f82a24e7b120 Mon Sep 17 00:00:00 2001 From: Castro0o Date: Sat, 23 May 2020 14:16:14 +0200 Subject: [PATCH] instructions for deploying in README.md --- README.md | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 42d971f..ddc9b30 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,71 @@ `export FLASK_ENV=development` `flask run` -# in production +**Using gunicorn:** + `gunicorn -w 4 -b 127.0.0.1:5000 app:app` * `-w` workers * `-b` bind to address / unix socker -or using unix sock: -`gunicorn --workers 4 --bind unix:app.sock -m 007 wsgi:app ` \ No newline at end of file +**And gunicorn with using unix sock:** (this how it should run in production) +`gunicorn --workers 4 --bind unix:app.sock -m 007 app:app ` + +## in Production with gunicorn and unix sockets +Based on https://medium.com/faun/deploy-flask-app-with-nginx-using-gunicorn-7fda4f50066a + +### systemd service file + +Add to /etc/systemd/system/watermarks.service + +``` +[Unit] +After=network.target + +[Service] +User=psc +Group=www-data +WorkingDirectory=/var/www/TacticalApp +Environment="PATH=/var/www/TacticalApp/venv/bin" +ExecStart=/var/www/TacticalApp/venv/bin/gunicorn --workers 4 --bind unix:app.sock -m 007 app:app + +[Install] +WantedBy=multi-user.target +``` + +## enable & start service file +`systemctl enable watermarks.service` + +`systemctl start watermarks.service` + +It is also a good idea to check the status of the service +`systemctl status watermarks.service` + +## Nginx config + +``` +location / { + include proxy_params; + # it will pass the requests to the socket + proxy_pass http://unix:/var/www/TacticalApp/app.sock; + # @andre: unsure whether we need a proxy_redirect as well + # if so, it might be somthing like + # http://unix:/var/www/TacticalApp/app.sock $scheme://$host:80/; + } +``` + +## debug. + +It might be helpful to enable gunicorn logging, while in development, to check what is going on, + by replacing in watermarks.service, the `ExecStart=` value with: + +`ExecStart=/var/www/TacticalApp/venv/bin/gunicorn --log-level debug --error-logfile /var/www/TacticalApp/app.log --workers 4 --bind unix:app.sock -m 007 app:app` + +And reloading the services +`systemctl daemon-reload` + +`systemctl restart watermarks.service` + +and the start following app.log: +`tail -f /var/www/TacticalApp/app.log` + +But in the long run logging should be disabled \ No newline at end of file