diff --git a/backend/Dockerfile b/backend/Dockerfile
index 0712ac02067ae6fbb1bca4b42513abcce9d9f3fb..9c4ea4f3c2762acd4201688009d35ef31a4b657a 100644
--- a/backend/Dockerfile
+++ b/backend/Dockerfile
@@ -5,7 +5,7 @@ ENV PYTHONUNBUFFERED 1
 
 # Install pipenv
 RUN pip install pipenv
-RUN apt update && apt install vim cron -y
+RUN apt update && apt install vim -y
 
 WORKDIR /code
 RUN rm -rf Dockerfile
diff --git a/backend/metagenedb/api/catalog/views/admin_commands.py b/backend/metagenedb/api/catalog/views/admin_commands.py
index 1d3c70817f549a867461a22a0317a15b3f9b4592..f2eb411554bb893dd22cc71a9786bf23b593dea3 100644
--- a/backend/metagenedb/api/catalog/views/admin_commands.py
+++ b/backend/metagenedb/api/catalog/views/admin_commands.py
@@ -1,3 +1,5 @@
+import logging
+
 from rest_framework import permissions
 from rest_framework.response import Response
 from rest_framework.status import HTTP_500_INTERNAL_SERVER_ERROR
@@ -8,6 +10,8 @@ from metagenedb.apps.catalog.management.commands.compute_stats import (
     ComputeCounts, ComputeGeneLength, ComputeTaxonomyRepartition
 )
 
+logger = logging.getLogger(__name__)
+
 
 class AdminCommandsAPI(APIView):
     authentication_classes = [JSONWebTokenAuthentication]
@@ -24,7 +28,8 @@ class ComputeStatisticsAPI(AdminCommandsAPI):
             self.compute_class().all()
             # ComputeGeneLength().all()
             # ComputeTaxonomyRepartition().all()
-        except Exception:
+        except Exception as exception:
+            logger.warning(exception)
             return Response({"message": self.error_message},
                             status=HTTP_500_INTERNAL_SERVER_ERROR)
         return Response({"message": self.success_message})
diff --git a/backend/metagenedb/settings/django.py b/backend/metagenedb/settings/django.py
index fd14467b70c5ee664e00feee19801f6d1778afe4..efdcda28f064f58abd25e5aa71e6d355a416a1fa 100644
--- a/backend/metagenedb/settings/django.py
+++ b/backend/metagenedb/settings/django.py
@@ -150,3 +150,22 @@ SECRET_KEY = env.str('SECRET_KEY', default='')
 
 # -- key for API when additional information is added to the payload
 API_KEY_ADDITIONAL_INFO = env.str('API_KEY_ADDITIONAL_INFO', default='metagenedb_additional_info')
+
+LOGGING = {
+    'version': 1,
+    'disable_existing_loggers': False,
+    'handlers': {
+        'console': {
+            'class': 'logging.StreamHandler',
+        },
+    },
+    'loggers': {
+        'django': {
+            'handlers': ['console'],
+            'level': env.str('DJANGO_LOG_LEVEL', 'INFO'),
+        },
+        'metagenedb': {
+            'level': env.str('DJANGO_LOG_LEVEL', 'INFO'),
+        },
+    },
+}
diff --git a/backend/scripts/start.sh b/backend/scripts/start.sh
index 77e27511784131419658d0f3b1effad856561baf..300f77b5c56dba08d6dd097ab49df91dc45f6a71 100755
--- a/backend/scripts/start.sh
+++ b/backend/scripts/start.sh
@@ -7,4 +7,4 @@ if [ -z $PORT ];then PORT=8000;fi  # Need to fix to get value from .env file
 python ${SCRIPTS_PATH}/manage.py collectstatic --no-input
 python ${SCRIPTS_PATH}/manage.py makemigrations
 python ${SCRIPTS_PATH}/manage.py migrate
-python ${SCRIPTS_PATH}/manage.py runserver 0.0.0.0:${PORT}
+gunicorn metagenedb.wsgi:application --capture-output --bind 0.0.0.0:${PORT}
diff --git a/docker-compose.yaml b/docker-compose.yaml
index ac00f7debea7b52f3dd4a4c19c02693d9e72ffdb..8ad43f1b358d997dbde32c255c933d8a8f67883c 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -15,7 +15,7 @@ services:
       DEBUG: "true"
     depends_on:
       - postgresql
-    command: /code/scripts/start_dev.sh
+    command: /code/scripts/start.sh
     networks:
       - main