diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..2c840829ae86929bace6c9c68396c7bd808a5679
--- /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 7b2f94df4416024d2a979c2a64c3c59027349e60..6db8e5ed52c791cc249ec9a21d61da362fd851a1 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
@@ -111,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 0000000000000000000000000000000000000000..da32571a5e100b30349c044ba3fded737f3777ac
--- /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/__init__.py b/note_kfet/settings/__init__.py
index c06c9984a6a474e017bf3f9b7f0c3d69f14f92fe..234e70b9dc2d805f6c975155cb61a5bc74f2020a 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 *
 
diff --git a/note_kfet/settings/development.py b/note_kfet/settings/development.py
index de46e35517cca35012c99291fc63b723e2a60d60..f6d48776f5a963009fafd26180bb353c8f0befe5 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'