diff --git a/core/Dockerfile b/core/Dockerfile
index 63c8458b12449fb4526b55b88e8b86ac3f706423..41493e9290c1af20b12d81817f27946389503f0d 100644
--- a/core/Dockerfile
+++ b/core/Dockerfile
@@ -1,6 +1,6 @@
 #------------------------------------------------------------------------------
 #
-# Project: prism data access server
+# Project: prism view server
 # Authors: Stephan Meissl <stephan.meissl@eox.at>
 #
 #------------------------------------------------------------------------------
@@ -25,68 +25,53 @@
 # IN THE SOFTWARE.
 #-----------------------------------------------------------------------------
 
-FROM ubuntu:18.04
-MAINTAINER EOX
-LABEL name="prism data access server core" \
+FROM eoxa/eoxserver:latest
+
+LABEL name="prism view server core" \
       vendor="EOX IT Services GmbH <https://eox.at>" \
       license="MIT Copyright (C) 2019 EOX IT Services GmbH <https://eox.at>" \
-      type="prism data access server core" \
+      type="prism view server core" \
       version="0.0.1-dev"
 
 USER root
 
 RUN apt update && \
-    DEBIAN_FRONTEND=noninteractive apt install -y software-properties-common && \
-    add-apt-repository -y ppa:ubuntugis/ppa && \
-    apt update && \
-    DEBIAN_FRONTEND=noninteractive apt install -y \
-      python \
-      python-pip \
-      libpq-dev \
-      python-mapscript \
-      python-gdal \
-      gdal-bin \
-      postgresql-client \
-      python-redis && \
+    apt install -y \
+      libpq-dev && \
   apt autoremove -y && \
   apt clean && \
   rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
-# Install EOxServer (TODO: Use final release package)
-RUN mkdir /opt/eoxserver/
 
-WORKDIR /opt/eoxserver
-ADD eoxserver/eoxserver eoxserver
-ADD eoxserver/tools tools
-ADD eoxserver/setup.cfg eoxserver/setup.py eoxserver/MANIFEST.in eoxserver/README.rst eoxserver/requirements.txt ./
-RUN pip install -r requirements.txt && \
-    pip install . && \
-    pip install python-keystoneclient python-swiftclient
+RUN pip3 install . && \
+    pip3 install python-keystoneclient python-swiftclient redis
 
-ENV INSTANCE_ID="prism-data-access-server_core" \
+ENV INSTANCE_ID="prism-view-server_core" \
+    INSTANCE_NAME="pvs_instance"\
+    INSTANCE_DIR="/var/www/pvs/dev/pvs_instance/" \
     COLLECTION= \
     DB_USER= \
     DB_PW= \
     DB_HOST= \
     DB_PORT= \
     DB_NAME= \
-    INSTALL_DIR="/var/www/pdas/" \
+    INSTALL_DIR="/var/www/pvs/dev/" \
     DJANGO_USER="admin" \
     DJANGO_MAIL="office@eox.at" \
     DJANGO_PASSWORD="***REMOVED***" \
     DATA_DIR="/data/" \
-    APACHE_CONF="/etc/httpd/conf.d/010_pdas.conf" \
-    APACHE_ServerName="pdas_instance" \
+    APACHE_CONF="/etc/httpd/conf.d/010_pvs.conf" \
+    APACHE_ServerName="pvs_instance" \
     APACHE_ServerAdmin="office@eox.at" \
-    APACHE_ALIAS="pdas" \
+    APACHE_ALIAS="pvs" \
     REDIS_HOST= \
     REDIS_PORT= \
     REDIS_REGISTER_QUEUE_KEY= \
-    REDIS_REGISTERED_SET_KEY=
+    REDIS_REGISTERED_SET_KEY= \
+    INIT_SCRIPTS="/configure.sh"
 
 ADD rgbnir_definition.json \
     configure.sh \
-    wait-for-database.sh \
     run-httpd.sh \
     run-registrar.sh \
     registrar.py \
@@ -96,7 +81,6 @@ ADD rgbnir_definition.json \
 
 RUN chmod -v +x \
     /configure.sh \
-    /wait-for-database.sh \
     /run-registrar.sh \
     /run-httpd.sh
 #    /run-redis-manager.sh
diff --git a/core/configure.sh b/core/configure.sh
index 13a7f9602c24798b1b33c2bb6e05557b2c713aca..812ac0c3049738b2a4c713ea29fcf534683579cd 100644
--- a/core/configure.sh
+++ b/core/configure.sh
@@ -1,29 +1,8 @@
 #!/bin/bash
 echo "Running configure.sh"
 
-echo "Generating PDAS directory"
-mkdir -p "${INSTALL_DIR}"
-cd "${INSTALL_DIR}"
-
-if [ ! -d pdas_instance ] ; then
-    echo "Creating PRISM Data Access Server (PDAS) instance"
-    eoxserver-admin.py create_instance pdas_instance
-
-    echo "Configure PRISM Data Access Server (PDAS) instance"
-    cd "pdas_instance"
-
-    # Configure DBs
-    INSTALL_DIR_ESCAPED=`echo ${INSTALL_DIR} | sed -e 's,/$,,' | sed -e 's,/,\\\&,g'`
-    sed -e "s/'ENGINE': 'django.contrib.gis.db.backends.spatialite',/'ENGINE': 'django.contrib.gis.db.backends.postgis',/" -i pdas_instance/settings.py
-    sed -e "s/'NAME': join(PROJECT_DIR, 'data\/config.sqlite'),/'NAME': '${DB_NAME}',/" -i pdas_instance/settings.py
-    sed -e "/#'TEST_NAME': join(PROJECT_DIR, 'data\/test-config.sqlite'),/d" -i pdas_instance/settings.py
-    sed -e "s/'USER': '',/'USER': '${DB_USER}',/" -i pdas_instance/settings.py
-    sed -e "s/'PASSWORD': '',/'PASSWORD': '${DB_PW}',/" -i pdas_instance/settings.py
-    sed -e "s/'HOST': '',/'HOST': '${DB_HOST}',/" -i pdas_instance/settings.py
-    sed -e "s/'PORT': '',/'PORT': '${DB_PORT}',/" -i pdas_instance/settings.py
-
     # Configure instance
-    sed -e "s/'disable_existing_loggers': True,/'disable_existing_loggers': False,/" -i pdas_instance/settings.py
+    sed -e "s/'disable_existing_loggers': True,/'disable_existing_loggers': False,/" -i pvs_instance/settings.py
     HANDLERS="'handlers': {\n
         'null': {\n
             'level':'DEBUG',\n
@@ -43,47 +22,46 @@ if [ ! -d pdas_instance ] ; then
             'propagate': False,\n
         },
     }"
-    sed -e "/^    'handlers': {$/,/^    },$/c `echo ${HANDLERS}`" -i pdas_instance/settings.py
-    sed -e "/^    'loggers': {$/,/^    }$/c `echo ${LOGGERS}`" -i pdas_instance/settings.py
+    sed -e "/^    'handlers': {$/,/^    },$/c `echo ${HANDLERS}`" -i pvs_instance/settings.py
+    sed -e "/^    'loggers': {$/,/^    }$/c `echo ${LOGGERS}`" -i pvs_instance/settings.py
 
-    sed -e "s,http_service_url=http://localhost:8000/ows,http_service_url=${APACHE_ALIAS}/ows," -i pdas_instance/conf/eoxserver.conf
-    sed -e "s/resampling_method=average/resampling_method=near/" -i pdas_instance/conf/eoxserver.conf
+    sed -e "s,http_service_url=http://localhost:8000/ows,http_service_url=${APACHE_ALIAS}/ows," -i pvs_instance/conf/eoxserver.conf
+    sed -e "s/resampling_method=average/resampling_method=near/" -i pvs_instance/conf/eoxserver.conf
     # TODO maxsize...
 
-    echo "EOXS_VALIDATE_IDS_NCNAME = False" >> pdas_instance/settings.py
-    echo "EOXS_OPENSEARCH_RECORD_MODEL = 'eoxserver.resources.coverages.models.Product'" >> pdas_instance/settings.py
+    echo "EOXS_VALIDATE_IDS_NCNAME = False" >> pvs_instance/settings.py
+    echo "EOXS_OPENSEARCH_RECORD_MODEL = 'eoxserver.resources.coverages.models.Product'" >> pvs_instance/settings.py
 
     echo "CACHES = {
     'default': {
         'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
         'LOCATION': '/var/tmp/django_cache',
     }
-}" >> pdas_instance/settings.py
+}" >> pvs_instance/settings.py
 
-    sed -e "/TEMPLATE_DEBUG = DEBUG/d" -i pdas_instance/settings.py
+    sed -e "/TEMPLATE_DEBUG = DEBUG/d" -i pvs_instance/settings.py
 
-    sed -e 's/DEBUG = True/DEBUG = False/' -i pdas_instance/settings.py
+    sed -e 's/DEBUG = True/DEBUG = False/' -i pvs_instance/settings.py
 
     # Further configuration
-    echo "ALLOWED_HOSTS = ['*']" >> pdas_instance/settings.py
-    echo "USE_X_FORWARDED_HOST = True" >> pdas_instance/settings.py
-    echo "SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')" >> pdas_instance/settings.py
+    echo "ALLOWED_HOSTS = ['*']" >> pvs_instance/settings.py
+    echo "USE_X_FORWARDED_HOST = True" >> pvs_instance/settings.py
+    echo "SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')" >> pvs_instance/settings.py
 
-    python manage.py migrate --noinput
 
-    # Check if collection exits in database and initialize database only if not
-    if python manage.py id check "${COLLECTION}"; then
+# Check if collection exits in database and initialize database only if not
+    if python3 manage.py id check "${COLLECTION}"; then
         echo "Initialize database"
 
-        python manage.py coveragetype import /rgbnir_definition.json --traceback
+        python3 manage.py coveragetype import /rgbnir_definition.json --traceback
 
         if [ "${COLLECTION}" == "VHR_IMAGE_2018" ]; then
             echo "Initializing collection '${COLLECTION}'."
 
             # PL00
-            python manage.py producttype create "${COLLECTION}"_Product_PL00 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_PL00 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_PL00 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PL00 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -93,7 +71,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PL00 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PL00 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -103,7 +81,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PL00 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PL00 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -113,13 +91,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PL00 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PL00 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # DM02
-            python manage.py producttype create "${COLLECTION}"_Product_DM02 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_DM02 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_DM02 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_DM02 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -129,7 +107,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_DM02 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_DM02 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -139,7 +117,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_DM02 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_DM02 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -149,13 +127,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_DM02 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_DM02 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # KS03
-            python manage.py producttype create "${COLLECTION}"_Product_KS03 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_KS03 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_KS03 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS03 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -165,7 +143,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_KS03 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS03 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -175,7 +153,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_KS03 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS03 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -185,13 +163,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_KS03 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS03 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # KS04
-            python manage.py producttype create "${COLLECTION}"_Product_KS04 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_KS04 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_KS04 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS04 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -201,7 +179,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_KS04 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS04 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -211,7 +189,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_KS04 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS04 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -221,13 +199,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_KS04 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_KS04 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # PH1A
-            python manage.py producttype create "${COLLECTION}"_Product_PH1A --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_PH1A --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A  --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A  --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -237,7 +215,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -247,7 +225,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -257,13 +235,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # PH1B
-            python manage.py producttype create "${COLLECTION}"_Product_PH1B --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_PH1B --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -273,7 +251,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -283,7 +261,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -293,13 +271,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # SP06
-            python manage.py producttype create "${COLLECTION}"_Product_SP06 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_SP06 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_SP06 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP06 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -309,7 +287,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SP06 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP06 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -319,7 +297,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SP06 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP06 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -329,13 +307,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SP06 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP06 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # SP07
-            python manage.py producttype create "${COLLECTION}"_Product_SP07 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_SP07 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_SP07 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP07 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -345,7 +323,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SP07 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP07 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -355,7 +333,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SP07 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP07 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -365,13 +343,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SP07 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SP07 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # SW00
-            python manage.py producttype create "${COLLECTION}"_Product_SW00 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_SW00 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_SW00 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SW00 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -381,7 +359,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SW00 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SW00 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -391,7 +369,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SW00 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SW00 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -401,13 +379,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_SW00 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_SW00 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # TR00
-            python manage.py producttype create "${COLLECTION}"_Product_TR00 --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_TR00 --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_TR00 --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_TR00 --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -417,7 +395,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_TR00 "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_TR00 "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -427,7 +405,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_TR00 "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_TR00 "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -437,10 +415,10 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_TR00 "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_TR00 "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
-            python manage.py collectiontype create "${COLLECTION}"_Collection --traceback \
+            python3 manage.py collectiontype create "${COLLECTION}"_Collection --traceback \
                 --coverage-type "RGBNir" \
                 --product-type "${COLLECTION}"_Product_PL00 \
                 --product-type "${COLLECTION}"_Product_DM02 \
@@ -454,21 +432,21 @@ if [ ! -d pdas_instance ] ; then
                 --product-type "${COLLECTION}"_Product_TR00
 
             # Create collections for all/Level-1/Level-3 products
-            python manage.py collection create "${COLLECTION}" --type "${COLLECTION}"_Collection --traceback
-            python manage.py collection create "${COLLECTION}_Level_1" --type "${COLLECTION}"_Collection --traceback
-            python manage.py collection create "${COLLECTION}_Level_3" --type "${COLLECTION}"_Collection --traceback
+            python3 manage.py collection create "${COLLECTION}" --type "${COLLECTION}"_Collection --traceback
+            python3 manage.py collection create "${COLLECTION}_Level_1" --type "${COLLECTION}"_Collection --traceback
+            python3 manage.py collection create "${COLLECTION}_Level_3" --type "${COLLECTION}"_Collection --traceback
 
             # Register mask type
-            python manage.py masktype create --validity "${COLLECTION}"_Product_PL00 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_DM02 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_KS03 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_KS04 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_PH1A validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_PH1B validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_SP06 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_SP07 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_SW00 validity
-            python manage.py masktype create --validity "${COLLECTION}"_Product_TR00 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_PL00 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_DM02 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_KS03 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_KS04 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_PH1A validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_PH1B validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_SP06 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_SP07 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_SW00 validity
+            python3 manage.py masktype create --validity "${COLLECTION}"_Product_TR00 validity
 
         elif [ "${COLLECTION}" == "Emergency" ]; then
             echo "Initializing collection '${COLLECTION}'."
@@ -498,9 +476,9 @@ if [ ! -d pdas_instance ] ; then
             # SP07
 
             # PH1A
-            python manage.py producttype create "${COLLECTION}"_Product_PH1A --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_PH1A --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A  --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A  --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -510,7 +488,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -520,7 +498,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -530,13 +508,13 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1A "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1A "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
             # PH1B
-            python manage.py producttype create "${COLLECTION}"_Product_PH1B --traceback \
+            python3 manage.py producttype create "${COLLECTION}"_Product_PH1B --traceback \
                 --coverage-type "RGBNir"
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -546,7 +524,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B "TRUE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B "TRUE_COLOR" --traceback \
                 --red "red" \
                 --green "green" \
                 --blue "blue" \
@@ -556,7 +534,7 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B "FALSE_COLOR" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B "FALSE_COLOR" --traceback \
                 --red "nir" \
                 --green "red" \
                 --blue "green" \
@@ -566,21 +544,21 @@ if [ ! -d pdas_instance ] ; then
                 --red-nodata 0 \
                 --green-nodata 0 \
                 --blue-nodata 0
-            python manage.py browsetype create "${COLLECTION}"_Product_PH1B "NDVI" --traceback \
+            python3 manage.py browsetype create "${COLLECTION}"_Product_PH1B "NDVI" --traceback \
                 --grey "(nir-red)/(nir+red)" --grey-range -1 1
 
-            python manage.py collectiontype create "${COLLECTION}"_Collection --traceback \
+            python3 manage.py collectiontype create "${COLLECTION}"_Collection --traceback \
                 --coverage-type "RGBNir" \
                 --product-type "${COLLECTION}"_Product_PH1A \
                 --product-type "${COLLECTION}"_Product_PH1B
 
-            python manage.py collection create "${COLLECTION}" --type "${COLLECTION}"_Collection --traceback
+            python3 manage.py collection create "${COLLECTION}" --type "${COLLECTION}"_Collection --traceback
 
         else
             echo "Provided collection '${COLLECTION}' not valid."
-       fi
+        fi
 
-        python manage.py storageauth create auth-cloud-ovh "${OS_AUTH_URL_SHORT}" \
+        python3 manage.py storageauth create auth-cloud-ovh "${OS_AUTH_URL_SHORT}" \
             --type keystone \
             -p auth-version "${ST_AUTH_VERSION}" \
             -p identity-api-version="${ST_AUTH_VERSION}" \
@@ -591,24 +569,16 @@ if [ ! -d pdas_instance ] ; then
             -p region-name "${OS_REGION_NAME}"
 
         for bucket in "data10" "data11" "data12" "data13" "data14" "data15" "data16" "data17" "data18" "data20" "data21" "data22" "data23" "data24" "data25" "data26"; do
-            python manage.py storage create \
+            python3 manage.py storage create \
                 ${bucket} ${bucket} \
                 --type swift \
                 --storage-auth auth-cloud-ovh
         done
 
-        echo "Creating admin user"
-        python manage.py shell -c "from django.contrib.auth.models import User; User.objects.create_superuser('${DJANGO_USER}', '${DJANGO_MAIL}', '${DJANGO_PASSWORD}')"
 
     else
         echo "Using existing database"
     fi
 
-    # Collect static files
-    python manage.py collectstatic --noinput
-
     chmod g+w -R .
-    chgrp users -R .
-else
-    echo "Using existing PRISM Data Access Server (PDAS) instance"
-fi
+    chgrp users -R .
\ No newline at end of file
diff --git a/core/registrar.py b/core/registrar.py
index 7b75541857f77d6d9b0bff24187ec9b9003f9169..76c502cb1958f05d9bf92e8884d95673a3fca232 100644
--- a/core/registrar.py
+++ b/core/registrar.py
@@ -44,11 +44,11 @@ import django
 from django.db import transaction
 from django.contrib.gis.geos import GEOSGeometry
 
-path = os.path.join(os.getenv('INSTALL_DIR', "/var/www/pdas"), "pdas_instance")
+path = os.path.join(os.getenv('INSTALL_DIR', "/var/www/pvs"), "pvs_instance")
 if path not in sys.path:
     sys.path.append(path)
 
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pdas_instance.settings")
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pvs_instance.settings")
 django.setup()
 
 from eoxserver.backends import access
diff --git a/core/run-httpd.sh b/core/run-httpd.sh
index bc85173f279c2978761ed3f228fe9f5ee189a606..cf381e95de02940f056813c7fa3b5ad76690eafa 100644
--- a/core/run-httpd.sh
+++ b/core/run-httpd.sh
@@ -1,6 +1,5 @@
 #!/bin/bash
 
-/configure.sh
 
 echo "Running gunicorn"
-exec gunicorn --chdir ${INSTALL_DIR}/pdas_instance/ --bind :80 pdas_instance.wsgi:application --workers 8 --timeout 600 --access-logfile - --error-logfile - --log-level warning --disable-redirect-access-to-syslog
+exec gunicorn --chdir ${INSTALL_DIR}/pvs_instance/ --bind :80 pvs_instance.wsgi:application --workers 8 --timeout 600 --access-logfile - --error-logfile - --log-level warning --disable-redirect-access-to-syslog
diff --git a/core/run-registrar.sh b/core/run-registrar.sh
index 76848ac29b270df9eb92d87137e1bdef7abc1479..c00cb49c4bfc329eeb0c987dda3e2970e174417b 100644
--- a/core/run-registrar.sh
+++ b/core/run-registrar.sh
@@ -1,6 +1,5 @@
 #!/bin/sh
 
-/configure.sh
-
 echo "Running registrar"
-python /registrar.py ${COLLECTION} --mode redis --redis-host ${REDIS_HOST} --redis-port ${REDIS_PORT} --redis-register-queue-key ${REDIS_REGISTER_QUEUE_KEY} --redis-registered-set-key ${REDIS_REGISTERED_SET_KEY}
+
+ python3 /registrar.py ${COLLECTION} --mode redis --redis-host ${REDIS_HOST} --redis-port ${REDIS_PORT} --redis-register-queue-key ${REDIS_REGISTER_QUEUE_KEY} --redis-registered-set-key ${REDIS_REGISTERED_SET_KEY}
diff --git a/core/wait-for-database.sh b/core/wait-for-database.sh
deleted file mode 100644
index 6d163cb4707cbc873d2da861b607c281e5139f11..0000000000000000000000000000000000000000
--- a/core/wait-for-database.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# wait-for-database.sh
-
-set -e
-
-cmd="$@"
-
-until PGPASSWORD=${DB_PW} psql "${DB_NAME}" -h "${DB_HOST}" -U "${DB_USER}" -c '\q'; do
-  >&2 echo "Database is unavailable - sleeping"
-  sleep 5
-done
-
->&2 echo "Database is up - executing command ${cmd}"
-exec ${cmd}