sudo apt install python3-pip python3-dev libpq-dev curl
Environnement virtuel
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.10-venv
mkdir ~/my_website
cd ~/my_website
python3.10 -m venv my_venv
source my_venv/bin/activate
python3.10 -m pip install --upgrade pip
pip install django gunicorn psycopg2-binary
Créer un projet démo pour Django
django-admin startproject my_app ~/my_app
On modifie les hÎtes acceptés par Django settings
import os
ALLOWED_HOSTS = ['your_server_domain_or_IP', 'second_domain_or_IP', . . ., 'localhost']
On lie la base de donnĂ©es (attention il ne faut pas mettre ces donnĂ©es en clair, lâidĂ©al est de tout passer en variables dâenvironnement), mais ici il sâagit juste dâune dĂ©monstration de principe
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'my_app',
'USER': 'remi',
'PASSWORD': 'XXXXXXXXXXX',
'HOST': 'localhost',
'PORT': '',
}
}
Configuration du répertoire static, il faudra penser à configurer nginx pour directement distribuer ces fichiers
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
Initialisation habituelle de Django
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py collectstatic
On ouvre le port correspondant dans le pare-feu
sudo ufw allow 8000
python manage.py runserver 0.0.0.0:8000
cd ~/my_app
gunicorn --bind 0.0.0.0:8000 my_app.wsgi