diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..9f57564ff85dbcb5e50d88e757ed6e0089caadfa
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,29 @@
+
+FROM debian:stretch 
+    
+# Python Packages 
+RUN apt-get update && apt-get install -y \ 	
+    python3 \ 	
+    python3-pip 
+
+# Upgrade pip    
+RUN pip3 install --upgrade pip 
+
+# pip Packages
+RUN pip3 install \     
+    flask==1.0.2 \     
+    pytz \
+    uwsgi \     
+    --upgrade 
+    
+# start Script 
+COPY entrypoint_dev.sh /opt/entrypoint_dev.sh 
+COPY entrypoint_prod.sh /opt/entrypoint_prod.sh 
+RUN chmod +x /opt/entrypoint* 
+
+EXPOSE 5000
+VOLUME ["/opt/warpapi"] 
+
+CMD ["/opt/entrypoint_prod.sh"] 
+
+
diff --git a/README.md b/README.md
index 0a79f2f19af4ec030c443a038177405c76ed151d..c973f464eb66962c1f29eb314b13ac26eeb767a2 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,9 @@
-# warpapi
+
+# SpaceAPI Implementierung 
+Verfügbar unter https://api.warpzone.ms 
+
+Eigenständuge und kompakte Reimplementierung der SpaceAPI als eigenständige Flask Applikation 
+
+Die Standard SpaceAPI wird unter /spaceapi bereitgestellt.
+Für die Einbindung auf cpu.ccc.de ist /cccapi vorgesehen.
 
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b69f2afaef6b76828a8614b23cbca7aa7027e40f
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,11 @@
+version: "3"
+
+services:
+  
+  app:
+
+    build: .
+    ports:
+      - 0.0.0.0:5000:5000
+    volumes:
+      - ./warpapi/:/opt/warpapi
diff --git a/entrypoint_dev.sh b/entrypoint_dev.sh
new file mode 100644
index 0000000000000000000000000000000000000000..b33dd21fe349629ddf02d11f812c56fe69967562
--- /dev/null
+++ b/entrypoint_dev.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+export LC_ALL=C.UTF-8
+export LANG=C.UTF-8
+export FLASK_APP=warpapi.py
+export FLASK_ENV=development
+
+cd /opt/warpapi/
+flask run --host=0.0.0.0
diff --git a/entrypoint_prod.sh b/entrypoint_prod.sh
new file mode 100644
index 0000000000000000000000000000000000000000..8062b809227952bbd61d3bbeb5f3848602aa533b
--- /dev/null
+++ b/entrypoint_prod.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+export LC_ALL=C.UTF-8
+export LANG=C.UTF-8
+export FLASK_APP=warpapi.py
+export FLASK_ENV=production
+
+cd /opt/warpapi/
+uwsgi --uid=www-data --gid=www-data --socket 0.0.0.0:5000 --protocol=http -w wsgi:app
diff --git a/run_dev.bat b/run_dev.bat
new file mode 100644
index 0000000000000000000000000000000000000000..18a5ef07ff13d05b123e0a85d1dbd8eb029f4724
--- /dev/null
+++ b/run_dev.bat
@@ -0,0 +1,7 @@
+
+docker kill warpapi 
+docker rm warpapi 
+docker rmi warpapi 
+
+docker build . -t warpapi 
+docker run -v %cd%/warpapi:/opt/warpapi -p 5000:5000 --name warpapi -it warpapi /opt/entrypoint_dev.sh
diff --git a/run_prod.bat b/run_prod.bat
new file mode 100644
index 0000000000000000000000000000000000000000..4e4c48c82936a17e6c7149bf56172c215e36fd22
--- /dev/null
+++ b/run_prod.bat
@@ -0,0 +1,7 @@
+
+docker kill warpapi 
+docker rm warpapi 
+docker rmi warpapi 
+
+docker build . -t warpapi 
+docker run -v %cd%/warpapi:/opt/warpapi -p 5000:5000 --name warpapi -it warpapi 
diff --git a/warpapi/static/warpzone_closed.png b/warpapi/static/warpzone_closed.png
new file mode 100644
index 0000000000000000000000000000000000000000..18d79efc4ea6bde3d10032da6807e1121ab38def
Binary files /dev/null and b/warpapi/static/warpzone_closed.png differ
diff --git a/warpapi/static/warpzone_logo.png b/warpapi/static/warpzone_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..632d0167bbd64156747159c1577f023dac944e54
Binary files /dev/null and b/warpapi/static/warpzone_logo.png differ
diff --git a/warpapi/static/warpzone_open.png b/warpapi/static/warpzone_open.png
new file mode 100644
index 0000000000000000000000000000000000000000..f502ab7c856319b2998909075ad05726632c1556
Binary files /dev/null and b/warpapi/static/warpzone_open.png differ
diff --git a/warpapi/warpapi.py b/warpapi/warpapi.py
new file mode 100644
index 0000000000000000000000000000000000000000..98985ec57cf3d75ebd81795f014ff2c4cf99671d
--- /dev/null
+++ b/warpapi/warpapi.py
@@ -0,0 +1,83 @@
+import datetime
+import pytz
+from flask import Flask
+from flask import request
+from flask import redirect
+from flask import send_from_directory
+from flask import json
+
+app = Flask(__name__, static_url_path='')
+
+if __name__ == "__main__":
+    app.run()
+
+@app.route('/')
+def hello_world():
+    return 'Warpzone API'
+
+@app.route('/static/<path:path>')
+def send_static(path):
+    return send_from_directory('static', path)
+
+@app.route('/cccapi')
+def cccapi():
+    return redirect('/spaceapi', code=302)
+
+@app.route('/spaceapi')
+def spaceapi():
+    spaceopen = False
+    now = datetime.datetime.now(pytz.timezone('Europe/Berlin'))
+    dayofweek = now.strftime("%w") 
+    # Hardcode Mittwoch Abend offen 
+    if dayofweek == "3":
+        if now.hour >= 18:
+            spaceopen = True 
+    # Hardcode Samstag Abend offen 
+    if dayofweek == "6":
+        if now.hour >= 18:
+            spaceopen = True 
+    data = {
+        "api": "0.13",
+        "space": "warpzone ", 
+        "logo": "https://api.warpzone.ms/static/warpzone_logo.png",
+        "url": "https://www.warpzone.ms",
+        "location": {
+            "address": "warpzone e.V., Am Hawerkamp 31 Maus G, 48155 Münster, Germany",
+            "lat": "51.943376",
+            "lon": "7.638216",
+        },
+        "contact": {
+            "phone": "+49 251 39500271",
+            "twitter": "@warpzone_ms",
+            "email": "office@warpzone.ms",
+            "irc": "irc://irc.freenode.net/#warpzone",
+            "ml": "warpzone@warpzone.ms",
+        },
+        "issue_report_channels": [ 
+            "email" 
+        ],
+        "feeds": {
+            "blog": { 
+                "type": "application/rss+xml",
+                "url": "https://www.warpzone.ms/feed/",
+            },
+            "calendar": {
+                "type": "application/calendar",
+                "url": "https://www.google.com/calendar/ical/hc82sdjshuf1ru9f9eqcfq9bvs%40group.calendar.google.com/public/basic.ics",
+            },
+        },
+        "state": {
+            "open": spaceopen,
+            "icon": {
+                "open": "https://api.warpzone.ms/static/warpzone_open.png",
+                "closed": "https://api.warpzone.ms/static/warpzone_closed.png",
+            },
+        },
+    }
+    
+    response = app.response_class(
+        response=json.dumps(data),
+        status=200,
+        mimetype='application/json'
+    )
+    return response
diff --git a/warpapi/wsgi.py b/warpapi/wsgi.py
new file mode 100644
index 0000000000000000000000000000000000000000..663cd316b0dea57ec38d1d1a10a83df2089ea27d
--- /dev/null
+++ b/warpapi/wsgi.py
@@ -0,0 +1,4 @@
+from warpapi import app
+
+if __name__ == "__main__":
+    app.run()
\ No newline at end of file