diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..2a71b46fba5b04b5b228398405dc11074fb2221f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/Pipfile.lock
+/settings.json
diff --git a/Pipfile b/Pipfile
new file mode 100644
index 0000000000000000000000000000000000000000..57670da9238a2206e81af38b576f992d6777a56e
--- /dev/null
+++ b/Pipfile
@@ -0,0 +1,20 @@
+[[source]]
+url = "https://pypi.python.org/simple"
+verify_ssl = true
+name = "pypi"
+
+[[source]]
+url = "https://pypi.thecodelabs.de"
+verify_ssl = true
+name = "TheCodeLabs"
+
+[requires]
+python_version = "3"
+
+[packages]
+flask = "==1.1.2"
+gevent = "==20.6.1"
+TheCodeLabs-BaseUtils = "*"
+TheCodeLabs-FlaskUtils = "*"
+
+[dev-packages]
diff --git a/settings-example.json b/settings-example.json
new file mode 100644
index 0000000000000000000000000000000000000000..53242406cc0f101246ca00badfe5bcb1aeeb5b1c
--- /dev/null
+++ b/settings-example.json
@@ -0,0 +1,10 @@
+{
+    "server": {
+        "listen": "0.0.0.0",
+        "port": 10003,
+        "secret": "",
+        "useSSL": false,
+        "keyfile": "",
+        "certfile": ""
+    }
+}
\ No newline at end of file
diff --git a/src/StorageLeaf.py b/src/StorageLeaf.py
new file mode 100644
index 0000000000000000000000000000000000000000..e3a6fa623a39f6ff1a3cde9e5a7a603ff89dfdfd
--- /dev/null
+++ b/src/StorageLeaf.py
@@ -0,0 +1,25 @@
+import os
+
+from TheCodeLabs_BaseUtils.DefaultLogger import DefaultLogger
+from TheCodeLabs_FlaskUtils.FlaskBaseApp import FlaskBaseApp
+
+from blueprints import Routes
+from logic import Constants
+from logic.Page import PageManager
+from logic.services.JenkinsSingleJobService import JenkinsSingleJobService
+
+LOGGER = DefaultLogger().create_logger_if_not_exists(Constants.APP_NAME)
+
+
+class StorageLeaf(FlaskBaseApp):
+    def __init__(self, appName: str):
+        super().__init__(appName, os.path.dirname(__file__), LOGGER, serveRobotsTxt=False)
+
+    def _register_blueprints(self, app):
+        app.register_blueprint(Routes.construct_blueprint(self._settings))
+        return app
+
+
+if __name__ == '__main__':
+    website = StorageLeaf(Constants.APP_NAME)
+    website.start_server()
diff --git a/src/__init__.py b/src/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/blueprints/Routes.py b/src/blueprints/Routes.py
new file mode 100644
index 0000000000000000000000000000000000000000..71013955af7eb529169f8d214bfaef3db0a12004
--- /dev/null
+++ b/src/blueprints/Routes.py
@@ -0,0 +1,11 @@
+from flask import Blueprint, render_template
+
+
+def construct_blueprint(settings):
+    routes = Blueprint('routes', __name__)
+
+    @routes.route('/', methods=['GET'])
+    def index():
+        return render_template('index.html')
+
+    return routes
diff --git a/src/blueprints/__init__.py b/src/blueprints/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/logic/Constants.py b/src/logic/Constants.py
new file mode 100644
index 0000000000000000000000000000000000000000..f70940826613d8b8d64ae0930fb61ed868388aff
--- /dev/null
+++ b/src/logic/Constants.py
@@ -0,0 +1,4 @@
+import os
+
+APP_NAME = 'StorageLeaf'
+ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
diff --git a/src/logic/__init__.py b/src/logic/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/version.json b/src/version.json
new file mode 100644
index 0000000000000000000000000000000000000000..f02f8c0412e5447b899e727a619b3cb960d78548
--- /dev/null
+++ b/src/version.json
@@ -0,0 +1,7 @@
+{
+    "version": {
+        "name": "v1.0.0",
+        "code": 1,
+        "date": "23.09.20"
+    }
+}
\ No newline at end of file