diff --git a/Dockerfile b/Dockerfile
index d6ae0dc6f422f975333e9f2842cc7411620849d5..5164b39bf3070cdc2d36e0e0b4036392eef4404a 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,4 +16,5 @@ RUN \
 
 EXPOSE 8000
 
-CMD python manage.py runserver 0.0.0.0:8000
+# hostname [::] binds both on ipv4 and ipv6, see https://github.com/benoitc/gunicorn/issues/1138#issuecomment-158358666
+CMD ["gunicorn", "--bind", "[::]:8000", "--workers", "4", "project.wsgi:application"]
diff --git a/requirements.txt b/requirements.txt
index 01d8c05270030db9a14f841b1bd288f443bb30e2..9b669e5167c41d5c5ae011e5430bfb22db358186 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,5 @@
 Django==5.0.7
 djangorestframework==3.15.2
 djangorestframework-dataclasses==1.3.1
+gunicorn==22.0.0
 rdflib==7.0.0