diff --git a/Dockerfile b/Dockerfile
index 1195139c4bd49866488590045839ce9d263c8356..fc83756dc78b7e3d80826b91307a76a80bf21c3b 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
 
-FROM debian:stretch 
+FROM debian:buster 
     
 # Python Packages 
 RUN apt-get update && apt-get install -y \ 	
@@ -13,16 +13,19 @@ RUN apt-get update && apt-get install -y \
     libssl-dev \
     netcat \
     python3 \ 	
-    python3-pip 
+    python3-pip \
+    python3-pyasn1
 
 # Upgrade pip    
 RUN pip3 install --upgrade pip 
 
 # pip Packages
 RUN pip3 install \     
-    django \   
-    django-mysql \
+    django>=2.0.2 \   
     django-auth-ldap \
+    django-bootstrap-static>=4.0 \
+    django-mysql \
+    django-settings-export \
     ldap3 \
     mysqlclient \
     uwsgi \
diff --git a/README.md b/README.md
index 0edccd0b8a841d529c8f9fc3229331a3031a8a36..e868497c1ec3da42a3cf569368da5f405f774943 100644
--- a/README.md
+++ b/README.md
@@ -57,3 +57,4 @@ Die Anwendung wird auf Port 5000 bereitgestellt.
 Alle Umgebungsspezifischen Konfigurationen erfolgen in der Datei config.ini.
 Diese Datei wird beim deployment der Anwendung angepasst.
 
+
diff --git a/app/app/settings.py b/app/app/settings.py
index ecf95ff8b62023a2cd7ae11684605f9fd829864d..1191644083166d5496b832827891ae7ce4473a86 100644
--- a/app/app/settings.py
+++ b/app/app/settings.py
@@ -24,6 +24,8 @@ ALLOWED_HOSTS = []
 
 
 # Application definition
+APP_NAME = config.get('common', 'APP_NAME')
+
 
 INSTALLED_APPS = [
     'django.contrib.admin',
@@ -32,6 +34,8 @@ INSTALLED_APPS = [
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
+    'bootstrap',
+    'fontawesome',
 ]
 
 MIDDLEWARE = [
@@ -49,7 +53,9 @@ ROOT_URLCONF = 'app.urls'
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [],
+        'DIRS': [
+            os.path.join(BASE_DIR, 'templates')
+        ],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
@@ -57,6 +63,7 @@ TEMPLATES = [
                 'django.template.context_processors.request',
                 'django.contrib.auth.context_processors.auth',
                 'django.contrib.messages.context_processors.messages',
+                'django_settings_export.settings_export',
             ],
         },
     },
@@ -124,9 +131,22 @@ STATIC_URL = '/static/'
 
 STATIC_ROOT = os.path.join(BASE_DIR, 'static')
 
-#LOGIN_URL = 'two_factor:login'
-#LOGOUT_URL = 'logout'
-#LOGIN_REDIRECT_URL = '/'
+STATICFILES_FINDERS = [
+    'django.contrib.staticfiles.finders.FileSystemFinder',
+    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
+]
+
+STATICFILES_DIRS = (
+    os.path.join(BASE_DIR, 'static_files'),
+)
+
+#
+# Login and Auth Settings 
+#
+
+LOGIN_URL = '/login'
+LOGOUT_URL = '/logout'
+LOGIN_REDIRECT_URL = '/'
 
 AUTHENTICATION_BACKENDS = (
     'django_auth_ldap.backend.LDAPBackend',
@@ -192,3 +212,12 @@ LOGGING = {
         },
     },
 }
+
+#
+# Make Settings available in Templates 
+#
+
+SETTINGS_EXPORT = [
+    'DEBUG',
+    'APP_NAME'
+]
diff --git a/app/app/urls.py b/app/app/urls.py
index 3ba3d80b63bb31741fffca7e5c83ec3e181a0428..50fe1c46651e0e5da5db8dd96a36698467ad2de1 100644
--- a/app/app/urls.py
+++ b/app/app/urls.py
@@ -1,21 +1,15 @@
-"""app URL Configuration
-
-The `urlpatterns` list routes URLs to views. For more information please see:
-    https://docs.djangoproject.com/en/1.11/topics/http/urls/
-Examples:
-Function views
-    1. Add an import:  from my_app import views
-    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
-Class-based views
-    1. Add an import:  from other_app.views import Home
-    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
-Including another URLconf
-    1. Import the include() function: from django.conf.urls import url, include
-    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
-"""
+from django.urls import include, path
 from django.conf.urls import url
 from django.contrib import admin
+from app.views import * 
+from django.contrib.auth import views as auth_views
 
 urlpatterns = [
     url(r'^admin/', admin.site.urls),
+
+    url(r'^login/$',auth_views.LoginView.as_view(template_name="login.html"), name="login"),
+    url(r'^logout/$', logout_view, name='logout'),
+
+    url(r'^$', main, name='Main'),
+    url(r'^about/$', about, name='About'),
 ]
diff --git a/app/app/views.py b/app/app/views.py
new file mode 100644
index 0000000000000000000000000000000000000000..d7215fb9d6eb559f631694008aea50d8cac9cab0
--- /dev/null
+++ b/app/app/views.py
@@ -0,0 +1,21 @@
+from django.conf import settings
+from django.http import HttpResponse
+from django.shortcuts import render, redirect
+from django.contrib.auth.decorators import login_required
+from django.contrib.auth import logout
+from django.utils.html import escape
+
+
+@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None)
+def main(request):
+    return HttpResponse(render(request, 'main.html'))
+
+
+def about(request):
+    return HttpResponse(render(request, 'about.html'))
+
+@login_required(login_url=settings.LOGIN_URL, redirect_field_name=None)
+def logout_view(request):
+    logout(request)
+    return redirect('/')
+
diff --git a/app/static_files/warpzone.png b/app/static_files/warpzone.png
new file mode 100644
index 0000000000000000000000000000000000000000..42c08b291d0540edd6f4df3be8fa367814f367bf
Binary files /dev/null and b/app/static_files/warpzone.png differ
diff --git a/app/templates/about.html b/app/templates/about.html
new file mode 100644
index 0000000000000000000000000000000000000000..81a9053aa295bafd3bd522679f2da0842f1bef54
--- /dev/null
+++ b/app/templates/about.html
@@ -0,0 +1,19 @@
+{% extends 'base.html' %}
+
+{% block title %}About{% endblock %}
+
+{% block content %}
+
+  <div class="jumbotron">
+    <h1 class="display-4">About {{ settings.APP_NAME }}</h1>
+    <hr class="my-4">
+    <p>
+        Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
+      </p>
+    <p class="lead">
+      <a class="btn btn-primary btn-lg" href="#" role="button">More Info</a>
+    </p>
+  </div>
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/base.html b/app/templates/base.html
new file mode 100644
index 0000000000000000000000000000000000000000..06fc850c91b87ded3c88273e7a5d15c81fe4a53c
--- /dev/null
+++ b/app/templates/base.html
@@ -0,0 +1,75 @@
+{% load static %}
+
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>{% block title %}Django Auth Tutorial{% endblock %}</title>
+  <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
+  <script defer src="{% static 'fontawesome/js/fontawesome-all.min.js' %}"></script>
+</head>
+<body>
+
+    <header>
+ 
+            <nav class="navbar navbar-expand-lg navbar-light bg-light">
+
+            <div class="container">
+                <div class="navbar-header">
+                    <a class="navbar-brand" href="/">
+                        <img style="display: inline; text-align:left"  height="25" width="25" src="{% static 'warpzone.png' %}" /> {{ settings.APP_NAME }}
+                    </a>
+
+                    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+                        <span class="navbar-toggler-icon"></span>
+                    </button>
+
+                    <div class="collapse navbar-collapse" id="navbarSupportedContent">
+                        <ul class="navbar-nav mr-auto">
+
+                          {% if request.user.is_authenticated %}
+                          <!--
+                            <li class="nav-item">
+                              <a class="nav-link" href="/sample">Sample Link</span></a>
+                            </li>
+                          -->
+                          {% endif %}
+
+                          <li class="nav-item">
+                            <a class="nav-link" href="/about">About</span></a>
+                          </li>
+
+                          {% if request.user.is_authenticated %}
+                            <li class="nav-item">
+                              <a class="nav-link" href="/logout">Logout</span></a>
+                            </li>
+                          {% endif %}
+    
+                          {% if user.is_superuser %}
+                            <li class="nav-item">
+                              <a class="nav-link" href="/admin">Admin</span></a>
+                            </li>
+                          {% endif %}
+
+                          {% if settings.DEBUG %}
+                          <li class="nav-item">
+                            <a class="nav-link disabled" href="#">DEBUG is ON</span></a>
+                          </li>
+                         {% endif %}
+
+                        </ul>
+                      </div>
+
+                </div>
+            </div>
+        </nav>
+    </header>
+
+  <main>
+    {% block content %}
+    {% endblock %}
+  </main>
+
+  <script src="{% static 'bootstrap/js/jquery.min.js' %}"></script>
+  <script src="{% static 'bootstrap/js/bootstrap.bundle.min.js' %}"></script>
+</body>
+</html>
\ No newline at end of file
diff --git a/app/templates/login.html b/app/templates/login.html
new file mode 100644
index 0000000000000000000000000000000000000000..0659617541515716c43d94f08206b64a31324b2e
--- /dev/null
+++ b/app/templates/login.html
@@ -0,0 +1,14 @@
+{% extends 'base.html' %}
+
+{% block title %}Login{% endblock %}
+
+{% block content %}
+<h2>Login</h2>
+<form method="post">
+  <div class="form-group">
+  {% csrf_token %}
+  {{ form.as_p }}
+  </div>
+  <button type="submit">Login</button>
+</form>
+{% endblock %}
\ No newline at end of file
diff --git a/app/templates/main.html b/app/templates/main.html
new file mode 100644
index 0000000000000000000000000000000000000000..508f1f3975b7222a4c4e6a30b4785f7ce54842d8
--- /dev/null
+++ b/app/templates/main.html
@@ -0,0 +1,24 @@
+{% extends 'base.html' %}
+
+{% block title %}Home{% endblock %}
+
+{% block content %}
+
+  <div class="jumbotron">
+    <h1 class="display-4">Hi {{ user.username }}!</h1>
+    <hr class="my-4">
+    <p>
+      Do some stuff
+    </p>
+    <p class="lead">
+      <a class="btn btn-primary btn-lg" href="#" role="button">Do other Stuff</a>
+    </p>
+  </div>
+
+{% if user.is_authenticated %}
+  Hi {{ user.username }}!
+{% else %}
+  <p>You are not logged in</p>
+  <a href="{% url 'login' %}">login</a>
+{% endif %}
+{% endblock %}
\ No newline at end of file
diff --git a/app/uwsgi.ini b/app/uwsgi.ini
index 1ade1e86fe9ac3cd81a2a8a25f9b1716a7646ab7..95d64a5deffa486a8042b830d072dc4f34cae7b7 100644
--- a/app/uwsgi.ini
+++ b/app/uwsgi.ini
@@ -7,4 +7,6 @@ vacuum = True
 http-socket = :5000
 max-requests = 5000
 processes = 5
-static-map = /static=/opt/app/static
\ No newline at end of file
+static-map = /static=/opt/app/static
+uid = www-data
+gid = www-data
diff --git a/config.ini b/config.ini
index 83b01540f8dc225ca6bfa17a0e975cc18d96427a..ae96e7162fea96984ab91c97aea2aa031d4752f2 100644
--- a/config.ini
+++ b/config.ini
@@ -1,5 +1,6 @@
 
 [common]
+APP_NAME = Django LDAP Sample
 DEBUG = True
 
 [database]
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index eeb672335d109cdde73459a95ee69d48563cd62e..34edb56648548def64b7f729ce4c8429ed1297bb 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -41,6 +41,7 @@ services:
 
     build: .
     entrypoint: /opt/entrypoint_dev.sh
+    restart: always
     depends_on:
       - mariadb 
       - openldap