Merge branch 'master' of gitlab.crans.org:bde/nk20

This commit is contained in:
Pierre-antoine Comby 2020-02-03 13:58:29 +01:00
commit 69dd8b50a5
5 changed files with 63 additions and 6 deletions

18
Dockerfile Normal file
View File

@ -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

View File

@ -36,11 +36,16 @@ On supposera pour la suite que vous utiliser debian/ubuntu sur un serveur tout n
4. uwsgi et Nginx 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 : 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/ $ 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):
@ -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/ $ 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 5. Base de données
En prod on utilise postgresql. 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_APP_STAGE='prod'
DJANGO_DB_PASSWORD='le_mot_de_passe_de_la_bdd' DJANGO_DB_PASSWORD='le_mot_de_passe_de_la_bdd'
DJANGO_SECRET_KEY='une_secret_key_longue_et_compliquee' DJANGO_SECRET_KEY='une_secret_key_longue_et_compliquee'
ALLOWED_HOSTS='le_ndd_de_votre_instance'
6. Variable d'environnement et Migrations 6. Variable d'environnement et Migrations
@ -112,12 +119,35 @@ Ensuite on (re)bascule dans l'environement virtuel et on lance les migrations
7. Enjoy 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 ## 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 $ git clone git@gitlab.crans.org:bde/nk20.git

8
entrypoint.sh Executable file
View File

@ -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

View File

@ -32,6 +32,7 @@ if app_stage == 'prod':
from .production import * from .production import *
DATABASES["default"]["PASSWORD"] = os.environ.get('DJANGO_DB_PASSWORD','CHANGE_ME_IN_ENV_SETTINGS'); 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'); SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY','CHANGE_ME_IN_ENV_SETTINGS');
ALLOWED_HOSTS.append(os.environ.get('ALLOWED_HOSTS','localhost'));
else: else:
from .development import * from .development import *

View File

@ -24,7 +24,7 @@ DATABASES = {
DEBUG = True DEBUG = True
# Mandatory ! # Mandatory !
ALLOWED_HOSTS = ['127.0.0.1','note.comby.xyz'] ALLOWED_HOSTS = ['*']
# Emails # Emails
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'