diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 193f79596acb4dc0e54b08e515fee8ecd6cb692d..d9626d586f9bb69ff8213a10b1e915132d78d770 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -88,8 +88,8 @@ prepare_ci_base_docker_image:
   before_script:
     - *prepare_registry
   script:
-    - docker pull ${REGISTRY_PATH}/ci_base:latest # || true
-#    - docker build -t ${REGISTRY_PATH}/ci_base:$CI_COMMIT_SHORT_SHA -f  Docker/lofar-ci/Dockerfile_ci_base .
+    - docker pull ${REGISTRY_PATH}/ci_base:latest || true
+    - docker build -t ${REGISTRY_PATH}/ci_base:$CI_COMMIT_SHORT_SHA -f  Docker/lofar-ci/Dockerfile_ci_base .
     - docker tag ${REGISTRY_PATH}/ci_base:latest ${REGISTRY_PATH}/ci_base:$CI_COMMIT_SHORT_SHA
     - docker push ${REGISTRY_PATH}/ci_base:$CI_COMMIT_SHORT_SHA
   interruptible: true
@@ -181,10 +181,12 @@ prepare_ci_mac_docker_image:
     - apk add rsync
   variables:
     LOFAR_TARGET: lcs155.control.lofar
+  environment:
+    name: ci_mac # DO NOT REMOVE ENVIRONMENT PROVIDES NECESSARY PROTECTION / KEYS
   needs:
     - prepare_ci_base_docker_image
   script:
-    - rsync lofarsys@lcs155.control.lofar:/nas/software/WinCC_3.16/*.rpm ./
+    - rsync lofarsys@${LOFAR_TARGET}:/nas/software/WinCC_3.16/*.rpm ./
     - docker pull ${REGISTRY_PATH}/ci_mac:latest || true
     - docker pull ${REGISTRY_PATH}/ci_base:$CI_COMMIT_SHORT_SHA
     - docker tag ${REGISTRY_PATH}/ci_base:$CI_COMMIT_SHORT_SHA ci_base:$CI_COMMIT_SHORT_SHA
@@ -668,23 +670,33 @@ regression_test_SCU:
 # deploy-prod stage
 #
 
-deploy-tmss-dockerhub:
+deploy-image-caches:
   stage: deploy-prod
   rules:
-  - if: '$CI_COMMIT_BRANCH !~ /Front-End-Only/'
-  script:
-    - docker login -u $CI_DOCKERHUB_USERNAME -p $CI_DOCKERHUB_PASSWORD
-    - docker pull ${REGISTRY_PATH}/tmss_django:$CI_COMMIT_SHORT_SHA
-    - docker tag ${REGISTRY_PATH}/tmss_django:$CI_COMMIT_SHORT_SHA lofar/tmss:master-$CI_COMMIT_SHORT_SHA
-    - docker push lofar/tmss:master-$CI_COMMIT_SHORT_SHA
-  environment:
-    name: dockerhub
-  needs:
-    - dockerize_TMSS
-    - job: integration_test_SCU
-      artifacts: false
+    - if: '$CI_COMMIT_TAG && $CI_COMMIT_REF_PROTECTED == "true"'
   allow_failure: true
-  when: manual
+  parallel:
+    matrix:
+      - IMAGE:
+         - ci_base
+         - ci_base_docker
+         - ci_base_ubuntu
+         - ci_lofar_pipeline
+         - ci_lofar_pulp
+         - ci_lofar_tbbwriter_control
+         - ci_mac
+         - ci_tmss
+         - lofar-base
+         - lta_ingest
+         - tmss_django
+         - tmss_testprovider
+         - ci_scu
+  before_script:
+    - *prepare_registry
+  script:
+    - docker pull ${REGISTRY_PATH}/${IMAGE}:$CI_COMMIT_SHORT_SHA
+    - docker tag ${REGISTRY_PATH}/${IMAGE}:$CI_COMMIT_SHORT_SHA ${REGISTRY_PATH}/${IMAGE}:latest
+    - docker push ${REGISTRY_PATH}/${IMAGE}:latest
 
 .deploy-tmss-prod-common-script: &deploy-tmss-prod-common-script
   - apk update
@@ -724,7 +736,7 @@ deploy-tmss-prod-lcs129:
     LOFAR_TARGET: "lcs129.control.lofar"
     LOFAR_TARGET_PORT: 22
     COMPOSE_PATH: /localhome/lofarsys/bin/docker-compose
-    SOURCE_IMAGE: "${CI_NEXUS_REGISTRY_LOCATION}/tmss_django:$CI_COMMIT_SHORT_SHA"
+    SOURCE_IMAGE: "${REGISTRY_PATH}/tmss_django:$CI_COMMIT_SHORT_SHA"
   environment:
     name: production-lcs129
   script:
@@ -741,7 +753,7 @@ deploy-tmss-prod-cs001:
     LOFAR_TARGET: "cs001c.control.lofar"
     LOFAR_TARGET_PORT: 2222
     COMPOSE_PATH: /usr/local/bin/docker-compose
-    SOURCE_IMAGE: "${CI_NEXUS_REGISTRY_LOCATION}/tmss_django:$CI_COMMIT_SHORT_SHA"
+    SOURCE_IMAGE: "${REGISTRY_PATH}/tmss_django:$CI_COMMIT_SHORT_SHA"
   environment:
     name: production-cs001
   before_script:
@@ -822,9 +834,9 @@ deploy-lofar-pipeline-prod:
   script:
     - NODES=$(ssh lofarsys@${CEP_HEADNODE} sinfo -p ${CEP_PARTITION} -h -o %N)
     - echo "Deploying on ${NODES}"
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull $CI_NEXUS_REGISTRY_LOCATION/ci_lofar_pipeline:$CI_COMMIT_SHORT_SHA"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull ${REGISTRY_PATH}/ci_lofar_pipeline:$CI_COMMIT_SHORT_SHA"
     # the pipeline is built to be run as lofar-pipeline:$CI_COMMIT_REF_NAME
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag $CI_NEXUS_REGISTRY_LOCATION/ci_lofar_pipeline:$CI_COMMIT_SHORT_SHA lofar-pipeline:$CI_COMMIT_REF_NAME"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag ${REGISTRY_PATH}/ci_lofar_pipeline:$CI_COMMIT_SHORT_SHA lofar-pipeline:$CI_COMMIT_REF_NAME"
     - if $MARK_PIPELINES_LATEST; then ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag lofar-pipeline:$CI_COMMIT_REF_NAME lofar-pipeline:latest"; done
   environment:
     name: production
@@ -851,9 +863,9 @@ deploy-dynspec-prod:
   script:
     - NODES=$(ssh lofarsys@${CEP_HEADNODE} sinfo -p ${CEP_PARTITION} -h -o %N)
     - echo "Deploying on ${NODES}"
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull $CI_NEXUS_REGISTRY_LOCATION/ci_dynspec:$CI_COMMIT_SHORT_SHA"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull ${REGISTRY_PATH}/ci_dynspec:$CI_COMMIT_SHORT_SHA"
     # the pipeline is built to be run as dynspec:latest!!
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag $CI_NEXUS_REGISTRY_LOCATION/ci_dynspec:$CI_COMMIT_SHORT_SHA dynspec:latest"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag ${REGISTRY_PATH}/ci_dynspec:$CI_COMMIT_SHORT_SHA dynspec:latest"
   environment:
     name: production
   needs:
@@ -878,9 +890,9 @@ deploy-lofar-pulp-prod:
   script:
     - NODES=$(ssh lofarsys@${CEP_HEADNODE} sinfo -p ${CEP_PARTITION} -h -o %N)
     - echo "Deploying on ${NODES}"
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull $CI_NEXUS_REGISTRY_LOCATION/ci_lofar_pulp:$CI_COMMIT_SHORT_SHA"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull ${REGISTRY_PATH}/ci_lofar_pulp:$CI_COMMIT_SHORT_SHA"
     # the pulp pipeline is built to be run as lofar-pulp:$CI_COMMIT_REF_NAME through setting the LOFAR_TAG in build_lofar_pulp_docker_image
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag $CI_NEXUS_REGISTRY_LOCATION/ci_lofar_pulp:$CI_COMMIT_SHORT_SHA lofar-pulp:$CI_COMMIT_REF_NAME"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag ${REGISTRY_PATH}/ci_lofar_pulp:$CI_COMMIT_SHORT_SHA lofar-pulp:$CI_COMMIT_REF_NAME"
   environment:
     name: production
   needs:
@@ -905,9 +917,9 @@ deploy-tbbwriter-control-prod:
   script:
     - NODES=$(ssh lofarsys@${CEP_HEADNODE} sinfo -p ${CEP_PARTITION} -h -o %N)
     - echo "Deploying on ${NODES}"
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull $CI_NEXUS_REGISTRY_LOCATION/ci_lofar_tbbwriter_control:$CI_COMMIT_SHORT_SHA"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker pull ${REGISTRY_PATH}/ci_lofar_tbbwriter_control:$CI_COMMIT_SHORT_SHA"
     # the tbbwriter pipeline is built to be run as lofar-tbbwriter-control:$CI_COMMIT_REF_NAME
-    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag $CI_NEXUS_REGISTRY_LOCATION/ci_lofar_tbbwriter_control:$CI_COMMIT_SHORT_SHA lofar-tbbwriter-control:$CI_COMMIT_REF_NAME"
+    - ssh lofarsys@${CEP_HEADNODE} "clush -S -P -w ${NODES} -w head[01-02] docker tag ${REGISTRY_PATH}/ci_lofar_tbbwriter_control:$CI_COMMIT_SHORT_SHA lofar-tbbwriter-control:$CI_COMMIT_REF_NAME"
   environment:
     name: production
   needs:
@@ -1034,8 +1046,7 @@ sonarcloud_check_TMSS_Frontend:
     - ls -al SAS/TMSS/frontend/tmss_webapp
     - echo 'checking restored build output artifacts'
     - ls -al build/gnucxx11_opt/SAS/TMSS/frontend/tmss_webapp/coverage
-    - sonar-scanner -Dproject.settings=SAS/TMSS/frontend/tmss_webapp/sonar-project.properties 
-
+    - sonar-scanner -Dproject.settings=SAS/TMSS/frontend/tmss_webapp/sonar-project.properties
  
 eslint_TMSSFrontEnd:
   stage: quality-control
@@ -1059,8 +1070,6 @@ eslint_TMSSFrontEnd:
     expire_in: never
     reports:
       codequality: gl-codequality.json
-        
-
 
 package_check_TMSS_Frontend:
   stage: quality-control