@ -1,3 +1,10 @@
|
||||
env/
|
||||
venv/
|
||||
venv/*
|
||||
.idea/
|
||||
__pycache__/
|
||||
__pycache__/*
|
||||
app/__pycache__/
|
||||
app/__pycache__/*
|
||||
app/static/dewatermark/
|
||||
app/static/dewatermark/*
|
@ -0,0 +1,88 @@
|
||||
# Run
|
||||
|
||||
## in Development
|
||||
`export FLASK_APP=run.py`
|
||||
`export FLASK_ENV=development`
|
||||
`flask run`
|
||||
|
||||
**Using gunicorn:**
|
||||
|
||||
`gunicorn --env SCRIPT_NAME=/watermarks -w 4 -b 127.0.0.1:5000 app:app --log-level debug`
|
||||
* `-w` workers
|
||||
* `-b` bind to address / unix socker
|
||||
|
||||
**And gunicorn with using unix sock:** (this how it should run in production)
|
||||
` gunicorn --env SCRIPT_NAME=/watermarks --workers 4 --bind unix:app.sock -m 007 app:app --log-level debug
|
||||
|
||||
## 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 --env SCRIPT_NAME=/watermarks --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 / {
|
||||
# if using gunicorn with app sock, use:
|
||||
proxy_pass http://unix:/var/www/TacticalApp/app.sock;
|
||||
# if using gunicord with port 5000, use:
|
||||
proxy_pass http://127.0.0.1:5000;
|
||||
}
|
||||
```
|
||||
|
||||
## 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
|
||||
|
||||
----
|
||||
09.06.2020 Handling url path /watermarks
|
||||
|
||||
* gunicorn has to be started with argument `--env SCRIPT_NAME=/watermarks` which defines its path:
|
||||
`gunicorn --env SCRIPT_NAME=/watermarks --workers 4 --bind unix:app.sock -m 007 app:app --log-level debug`
|
||||
* allows for the following URLs
|
||||
* http://127.0.0.1/watermarks
|
||||
* http://127.0.0.1/watermarks/uploadbook
|
||||
* http://127.0.0.1/watermarks/about
|
||||
|
||||
* added page /test `watermarks/test` for testing url_for() - correct
|
||||
* made urls relative
|
||||
* service file with `--env SCRIPT_NAME=/watermarks` see above
|
||||
*
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue