Django-hosting » History » Revision 24
« Previous |
Revision 24/30
(diff)
| Next »
Nico Schottelius, 01/15/2020 11:24 AM
Django hosting by ungleich¶
- Table of contents
- Django hosting by ungleich
Status¶
This document is IN PRODUCTION (since 2016-04-08)
How to use¶
- Configure your app
- Deploy your app
- Install project specific python requirements into the pyvenv
- Restart uwsgi to restart your app
- Go to http://your-hostname/ and enjoy!
Configure your app¶
WSGI¶
- Ensure that there is projectname/wsgi.py in your project root
Database¶
Add the following to your settings.py:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'app', } }
Static and media files¶
Static files should be placed in /home/app/app/static and media files in /home/app/app/media.
Use the following code for configuration:
PROJECT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) STATIC_ROOT = os.path.join(BASE_DIR, "static/") MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media')
Deploy (first time)¶
You can login to your VM as user app (for the django app) and root (in case you need to change settings):
ssh app@MYHOSTNAME git clone <path-to-your-project> ~/app
- Deploy / update your app into the folder ~app/app (that is the app folder in the home of the user app)
- We recommended to use git to deploy it
Deploy (update)¶
ssh app@MYHOSTNAME cd ~/app git pull
Install python requirements into the pyvenv¶
Pyvenv has been installed to ~app/pyvenv for you.
Required packages for the hosting like PostgreSQL support and uwsgi support have already been placed.
You need to use pyvenv found in ~app/pyvenv, as uwsgi loads this pyvenv before loading your app.
To install your requirements use:
. ~/pyvenv/bin/activate pip install ...
Restarting the app¶
- sudo systemctl restart uwsgi
Viewing logfiles¶
- nginx access log: tail -F /var/log/nginx/access.log
- nginx error log: tail -F /var/log/nginx/error.log
- uwsgi log: tail -F /var/log/uwsgi/app/app.log
Description of the stack¶
Technologies¶
- Debian
- nginx
- PostgreSQL
- uwsgi
- pyvenv
Configuration¶
- user "app"
- in group "adm" (to view logfiles)
- PostgreSQL with
- database "app"
- Listens only on localhost / socket (no remote connections)
Updated by Nico Schottelius almost 5 years ago · 24 revisions