diff --git a/docker-compose.yaml b/docker-compose.yaml
index 18f532986088bacbe161b2975ea0a129be99011d..93f97e77a68f7a5db36602b4baac3bfa8a5d43dd 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -21,13 +21,16 @@ services:
       - POSTGRES_USER=postgres
       - POSTGRES_PASSWORD=postgres
       - POSTGRES_HOST=db
+    entrypoint: /docker-entrypoint.sh
+    command: gunicorn --reload --reload-engine inotify ippisite.wsgi -b 0.0.0.0:8000
     volumes:
       - ./ippisite:/code # for dev purpose only !!!
     ports:
-      - "8000:8000"
+      - "8095:8000"
     depends_on:
       - db
 
 
+
 volumes:
   ippidb-dev-db-data:
diff --git a/ippisite/Dockerfile b/ippisite/Dockerfile
index 8eaf11f1b0908990d29427c864de22095f0ee9d9..530586f843fa165039295a075f46f61dbe22d80a 100644
--- a/ippisite/Dockerfile
+++ b/ippisite/Dockerfile
@@ -1,37 +1,36 @@
 FROM python:3.9
 
-RUN apt-get update \
+EXPOSE 8000
+ENV PYTHONPATH "${PYTHONPATH}:/usr/lib/python3/dist-packages"
+ENV PYTHONUNBUFFERED 1
+
+RUN addgroup --gid 1001 kiwi \
+ && adduser --disabled-password --gecos '' --uid 1001 --gid 1001 kiwi \
+ && apt-get update \
  && apt-get install -y \
         nano \
         wget \
         gettext \
         python3-dev \
-        cron \
-	apache2-dev \
+        python3-openbabel \
  && rm -rf /var/lib/apt/lists/* \
- && python -m pip install --upgrade pip
-RUN python -m pip install --upgrade pip setuptools
-
-RUN apt-get update && apt-get install -y python3-openbabel
-ENV PYTHONPATH "${PYTHONPATH}:/usr/lib/python3/dist-packages"
-
-
-ENV PYTHONUNBUFFERED 1
-EXPOSE 8000
-RUN mkdir /code
+ && python -m pip install --upgrade pip setuptools \
+ && mkdir /code
 WORKDIR /code
 
-COPY requirements.txt /code/
+COPY requirements*.txt /code/
 RUN pip install -r requirements.txt
+# && pip install -r requirements-dev.txt
 
-COPY . /code/
+COPY ./*-entrypoint.sh /
+RUN chmod a+x /*-entrypoint.sh
 
-#WORKDIR /code
-#RUN python manage.py migrate
+COPY . /code/
 
-RUN apt-get install -y libgraphviz-dev
-COPY requirements-dev.txt /code/
-RUN python -m pip install -r requirements-dev.txt
+ENV STATIC_ROOT /static_root
+ENV STATIC_ROOT_ON_STARTUP_COPY="/tmp${STATIC_ROOT}_on_startup_copy"
+RUN python manage.py collectstatic --noinput
 
+CMD ["gunicorn", "--bind", ":8000", "config.wsgi:application"]
 
-CMD ["gunicorn", "--reload", "--reload-engine", "inotify", "--bind", ":8000", "ippisite.wsgi:application"]
+USER kiwi
\ No newline at end of file
diff --git a/ippisite/docker-entrypoint.sh b/ippisite/docker-entrypoint.sh
new file mode 100644
index 0000000000000000000000000000000000000000..d097143629f3ca2cdd109b172f3c4b51b69e4e52
--- /dev/null
+++ b/ippisite/docker-entrypoint.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+function msg_info {
+   echo -e "\033[1;32m$1\033[0m"
+}
+
+function msg_warning {
+   echo -e "\033[1;33m$1\033[0m"
+}
+
+function msg_error {
+   echo -e "\033[1;31m$1\033[0m"
+}
+
+cd /code
+
+if [ "$1" == "hold_on" ]; then
+    msg_info "holding on util you delete /tmp/hold_on"
+    touch /tmp/hold_on
+    while [ -e "/tmp/hold_on" ]; do
+        sleep 1 ;
+        echo "holding on" ;
+    done
+fi
+
+msg_info "Applying database migrations"
+python manage.py migrate || exit 4
+
+if [ -e $STATIC_ROOT_ON_STARTUP_COPY ]; then
+  msg_info "Copying static files to $STATIC_ROOT_ON_STARTUP_COPY"
+  cp -rf ${STATIC_ROOT}/* ${STATIC_ROOT_ON_STARTUP_COPY} || exit 6
+else
+  msg_info "$STATIC_ROOT_ON_STARTUP_COPY absent, cannot copy static files on startup to this directory"
+fi
+
+exec "$@"
diff --git a/ippisite/ippisite/settings.py b/ippisite/ippisite/settings.py
index 221035d026964ab564b64ae065059bcf16621593..8770694538ad73e2e27b724c03492ca3dd9754b8 100644
--- a/ippisite/ippisite/settings.py
+++ b/ippisite/ippisite/settings.py
@@ -52,7 +52,7 @@ INSTALLED_APPS = [
     "live_settings",
     "formtools",
     "debug_toolbar",
-    "mod_wsgi.server",
+    # "mod_wsgi.server",
     "django.contrib.sites",
     "allauth",
     "allauth.account",
diff --git a/ippisite/requirements-dev.txt b/ippisite/requirements-dev.txt
index dc664a18671cc9787a5d0ac9a5231b2093b63086..41d6b5940bc10cb805053e0629811bd2aca83258 100644
--- a/ippisite/requirements-dev.txt
+++ b/ippisite/requirements-dev.txt
@@ -8,10 +8,6 @@ sphinx
 sphinx-argparse
 sphinx_rtd_theme
 sphinxcontrib-bibtex
-# coverage
-coverage
-# tests
-parameterized
 # dependencies to generate graph models using django-extensions
 pygraphviz
 pydot
diff --git a/ippisite/requirements.txt b/ippisite/requirements.txt
index 650332e44905cfd6609e2f87f597dc9d46482340..4f62602d06d7ee964ea39d767dbca2a8968b0dd1 100644
--- a/ippisite/requirements.txt
+++ b/ippisite/requirements.txt
@@ -1,5 +1,3 @@
-# modwsgi
-mod-wsgi
 # django and extensions
 Django
 django-extensions
@@ -39,4 +37,9 @@ git+https://gitlab.pasteur.fr/hub/django-biodblinks.git#egg=django-biodblinks==0
 cryptography
 # gunicorn
 inotify
-gunicorn
\ No newline at end of file
+gunicorn
+# coverage
+coverage
+# tests
+parameterized
+# End of file
\ No newline at end of file