diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..fe2f40984658d46f50f2e3a970e1bb87d98faf71
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+*.md
+.git*
+LICENSE.txt
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..d235be9d1a2c7120bbfcf71936ee2e1b2a0deb8d
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,6 @@
+FROM python:3.8
+WORKDIR /opt/waldorf
+COPY requirements.txt ./
+RUN pip install --no-cache-dir -r requirements.txt
+COPY waldorf ./waldorf
+USER nobody
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4e156fb434754a1df4d83fd8281a552b9d9e72e8
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,2 @@
+flask>=1.1
+celery[librabbitmq]>=4.4
diff --git a/waldorf/__init__.py b/waldorf/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391