From 3ddc757e25ba6821608f950e2118558314a6f5f5 Mon Sep 17 00:00:00 2001 From: Pierre-antoine Comby Date: Sun, 2 Feb 2020 13:41:43 +0100 Subject: [PATCH 1/2] add ALLOWED_HOSTS to local variables --- README.md | 13 ++++++++++--- note_kfet/settings/__init__.py | 1 + 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7b2f94df..c4d6d228 100644 --- a/README.md +++ b/README.md @@ -36,13 +36,18 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n 4. uwsgi et Nginx + Un exemple de conf est disponible : + + $ cp nginx_note.conf_example nginx_note.conf + +*** Modifier le fichier pour etre en accord avec le reste de votre config *** + On utilise uwsgi et Nginx pour gérer le coté serveu : $ sudo ln -sf /var/www/note_kfet/nginx_note.conf /etc/nginx/sites-enabled/ - **Modifier la config nginx pour l'adapter à votre server!** - Si l'on a un emperor (plusieurs instance uwsgi): + Si l'on a un emperor (plusieurs instance uwsgi): $ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/sites/ @@ -50,6 +55,8 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n $ sudo ln -sf /var/www/note_kfet/uwsgi_note.ini /etc/uwsgi/apps-enabled/ + Le touch-reload est activé par défault, pour redémarrer la note il suffit donc de faire `touch uwsgi_note.ini`. + 5. Base de données En prod on utilise postgresql. @@ -95,7 +102,7 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n DJANGO_APP_STAGE='prod' DJANGO_DB_PASSWORD='le_mot_de_passe_de_la_bdd' DJANGO_SECRET_KEY='une_secret_key_longue_et_compliquee' - + ALLOWED_HOSTS='le_ndd_de_votre_instance' 6. Variable d'environnement et Migrations diff --git a/note_kfet/settings/__init__.py b/note_kfet/settings/__init__.py index c06c9984..234e70b9 100644 --- a/note_kfet/settings/__init__.py +++ b/note_kfet/settings/__init__.py @@ -32,6 +32,7 @@ if app_stage == 'prod': from .production import * DATABASES["default"]["PASSWORD"] = os.environ.get('DJANGO_DB_PASSWORD','CHANGE_ME_IN_ENV_SETTINGS'); SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY','CHANGE_ME_IN_ENV_SETTINGS'); + ALLOWED_HOSTS.append(os.environ.get('ALLOWED_HOSTS','localhost')); else: from .development import * From 74189f1f4e1d6d586a88b6ac06f927b35c0c734f Mon Sep 17 00:00:00 2001 From: ynerant Date: Mon, 3 Feb 2020 11:50:42 +0100 Subject: [PATCH 2/2] Docker --- Dockerfile | 18 ++++++++++++++++++ README.md | 27 +++++++++++++++++++++++++-- entrypoint.sh | 8 ++++++++ note_kfet/settings/development.py | 2 +- 4 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 Dockerfile create mode 100755 entrypoint.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..2c840829 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3-buster + +ENV PYTHONUNBUFFERED 1 + +RUN mkdir /code +WORKDIR /code + +RUN apt update && \ + apt install -y gettext nginx uwsgi uwsgi-plugin-python3 && \ + rm -rf /var/lib/apt/lists/* + +COPY requirements.txt /code/ +RUN pip install -r requirements.txt + +COPY . /code/ + +ENTRYPOINT ["/code/entrypoint.sh"] +EXPOSE 8000 diff --git a/README.md b/README.md index c4d6d228..6db8e5ed 100644 --- a/README.md +++ b/README.md @@ -118,13 +118,36 @@ Ensuite on (re)bascule dans l'environement virtuel et on lance les migrations 7. Enjoy + +## Installer avec Docker + +Il est possible de travailler sur une instance Docker. + +1. Cloner le dépôt là où vous voulez : + $ git clone git@gitlab.crans.org:bde/nk20.git + +2. Dans le fichier `docker_compose.yml`, qu'on suppose déjà configuré, ajouter les lignes suivantes, en les adaptant à la configuration voulue : + + nk20: + build: /chemin/vers/nk20 + volumes: + - /chemin/vers/nk20:/code/ + restart: always + labels: + - traefik.domain=ndd.exemple.com + - traefik.frontend.rule=Host:ndd.exemple.com + - traefik.port=8000 + +3. Enjoy : + + $ docker-compose up -d nk20 ## Installer en local -Il est tout a fait possible de travailler en local, vive `./manage.py runserver` ! +Il est tout-à-fait possible de travailler en local, vive `./manage.py runserver` ! -1. Cloner le dépot là ou vous voulez: +1. Cloner le dépôt là où vous voulez : $ git clone git@gitlab.crans.org:bde/nk20.git diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 00000000..da32571a --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,8 @@ +#!/bin/bash +python manage.py compilemessages +python manage.py makemigrations +sleep 5 +python manage.py migrate + +# TODO: use uwsgi in production +python manage.py runserver 0.0.0.0:8000 diff --git a/note_kfet/settings/development.py b/note_kfet/settings/development.py index de46e355..f6d48776 100644 --- a/note_kfet/settings/development.py +++ b/note_kfet/settings/development.py @@ -24,7 +24,7 @@ DATABASES = { DEBUG = True # Mandatory ! -ALLOWED_HOSTS = ['127.0.0.1','note.comby.xyz'] +ALLOWED_HOSTS = ['*'] # Emails EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'