diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9d939af8534a27f05a20e70145fd4331600c8d7a..3345b793d4a07d29ce89cd2d4fcb11b5a7229c04 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -49,6 +49,16 @@ ngbuild:
     paths:
       - "$BUILD_DIR"
 
+docker_image:
+  stage: deploy
+  tags:
+    - kaniko
+  dependencies:
+    - ngbuild
+  script:
+    - echo "$DOCKER_REGISTRY_CONFIG" > /kaniko/.docker/config.json
+    - /kaniko/executor --context "$CI_PROJECT_DIR" --dockerfile "$CI_PROJECT_DIR/docker/Dockerfile" --destination "$DOCKER_REGISTRY_HOST/arsnova-app/lite-frontend" --build-arg "ARSNOVA_BUILD_DIR=`echo $BUILD_DIR`"
+
 #review:
 #  stage: review
 #  script:
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5db2879d57e324870ce6ee0653ebb9a68533a1be
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,9 @@
+FROM nginx
+LABEL maintainer "Daniel Gerhardt <code@dgerhardt.net>"
+
+ARG ARSNOVA_BUILD_DIR
+
+COPY docker/arsnova.nginx.conf /etc/nginx/conf.d/arsnova.conf
+COPY "$ARSNOVA_BUILD_DIR" /opt/arsnova/lite
+
+RUN rm /etc/nginx/conf.d/default.conf
diff --git a/docker/arsnova.nginx.conf b/docker/arsnova.nginx.conf
new file mode 100644
index 0000000000000000000000000000000000000000..edd727180cda35d40ec061e1c96fc17bce4d7685
--- /dev/null
+++ b/docker/arsnova.nginx.conf
@@ -0,0 +1,14 @@
+server {
+  listen 80 default_server;
+  listen [::]:80 default_server;
+  server_name _;
+
+  root /opt/arsnova/lite;
+
+  location / {
+    try_files $uri $uri/ /index.html;
+    gzip on;
+    gzip_types application/javascript application/json text/css image/svg+xml;
+    gzip_vary on;
+  }
+}