Django-hosting » History » Revision 29
« Previous |
Revision 29/30
(diff)
| Next »
Nico Schottelius, 09/03/2024 02:24 PM
Django hosting by ungleich¶
- Table of contents
- Django hosting by ungleich
Status¶
This document is IN PRODUCTION (since 2016-04-08).
Pricing can be found on the ungleich products page.
Version 1: VM Based (obsolete as of 2023)¶
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')
Usually to generate/deploy the static files, you can use collectstatic:
python manage.py collectstatic
Deploy (first time)¶
You can login to your VM as user app:
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
- python3 venv
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 3 months ago · 29 revisions