diff --git a/Jenkinsfile b/Jenkinsfile
index a2821930c10fc2a340deb528109a7d82eed0136e..929a390fa653ee6cf4cd1cd28dce3ce8b45f8639 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -219,63 +219,78 @@ pipeline {
             }
         }
         stage('E2E') {
-            failFast false
+            stages {
 
-            parallel {
-                stage('E2E-EA') {
+                stage('Install cypress') {
                     steps {
                         script {
-                            def stageName = env.STAGE_NAME
-                            def bezeichner = generateBezeichner(stageName)
-                            def dbPort = 27018
+                            FAILED_STAGE = env.STAGE_NAME
+                            dir('goofy-client') {
+                                sh "npm cypress:install"
+                            }
+                        }
+                    }
+                }
+                stage('Run E2E-Tests') {
+                    failFast false
 
-                            startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION, 'sh', dbPort)
+                    parallel {
+                        stage('E2E-EA') {
+                            steps {
+                                script {
+                                    def stageName = env.STAGE_NAME
+                                    def bezeichner = generateBezeichner(stageName)
+                                    def dbPort = 27018
 
-                            def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner', 'sh', dbPort)
+                                    startEnvironment(bezeichner, stageName, IMAGE_TAG, true, HELM_CHART_VERSION, 'sh', dbPort)
 
-							if (env.BRANCH_NAME != 'master') {
-                            	deleteKopStack(bezeichner, stageName)
-                            }
+                                    def testResult = runTests(stageName, bezeichner, 'einheitlicher-ansprechpartner', 'sh', dbPort)
+
+        							if (env.BRANCH_NAME != 'master') {
+                                    	deleteKopStack(bezeichner, stageName)
+                                    }
 
-                            if(!testResult) {
-                                E2E_FAILED += "${stageName}, "
-                                error("Fehler in Stage ${stageName}")
+                                    if(!testResult) {
+                                        E2E_FAILED += "${stageName}, "
+                                        error("Fehler in Stage ${stageName}")
+                                    }
+                                }
                             }
-                        }
-                    }
-                    post {
-                        always {
-                            script {
-                                publishE2ETestResult("einheitlicher-ansprechpartner", "Goofy E2E-Tests EA")
+                            post {
+                                always {
+                                    script {
+                                        publishE2ETestResult("einheitlicher-ansprechpartner", "Goofy E2E-Tests EA")
+                                    }
+                                }
                             }
                         }
-                    }
-                }
-                stage('E2E-main') {
-                    steps {
-                        script {
-                            def stageName = env.STAGE_NAME
-                            def bezeichner = generateBezeichner(stageName)
-                            def dbPort = 27019
+                        stage('E2E-main') {
+                            steps {
+                                script {
+                                    def stageName = env.STAGE_NAME
+                                    def bezeichner = generateBezeichner(stageName)
+                                    def dbPort = 27019
 
-                            startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, 'sh', dbPort)
+                                    startEnvironment(bezeichner, stageName, IMAGE_TAG, false, HELM_CHART_VERSION, 'sh', dbPort)
 
-                            def testResult = runTests(stageName, bezeichner, 'main-tests', 'sh', dbPort)
+                                    def testResult = runTests(stageName, bezeichner, 'main-tests', 'sh', dbPort)
 
-                            if (env.BRANCH_NAME != 'master') {
-                            	deleteKopStack(bezeichner, stageName)
-                            }
+                                    if (env.BRANCH_NAME != 'master') {
+                                    	deleteKopStack(bezeichner, stageName)
+                                    }
 
-                            if(!testResult) {
-                                E2E_FAILED += "${stageName}, "
-                                error("Fehler in Stage ${stageName}")
+                                    if(!testResult) {
+                                        E2E_FAILED += "${stageName}, "
+                                        error("Fehler in Stage ${stageName}")
+                                    }
+                                }
                             }
-                        }
-                    }
-                    post {
-                        always {
-                            script {
-                                publishE2ETestResult("main-tests", "Goofy E2E-Tests main")
+                            post {
+                                always {
+                                    script {
+                                        publishE2ETestResult("main-tests", "Goofy E2E-Tests main")
+                                    }
+                                }
                             }
                         }
                     }
@@ -351,7 +366,7 @@ String generateHelmChartVersion() {
 }
 
 Void tagAndPushDockerImage(String newTag){
-    withCredentials([usernamePassword(credentialsId: 'jenkins-docker-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
+    withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
         sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}'
 
         sh "docker tag docker.ozg-sh.de/goofy:${IMAGE_TAG} docker.ozg-sh.de/goofy:${newTag}"
diff --git a/goofy-client/package.json b/goofy-client/package.json
index db5b0249431c351f84ba9523cea408f219883d17..84b7b253795023b04dc412aade3710f56577d1d6 100644
--- a/goofy-client/package.json
+++ b/goofy-client/package.json
@@ -35,6 +35,7 @@
 		"favicon": "real-favicon generate favicon/faviconDescription.json favicon/faviconData.json src/favicon",
 		"cypress:run": "npx cypress run --project apps/goofy-e2e",
 		"cypress:version": "npx cypress version",
+		"cypress:install": "npx cypress install",
 		"cypress:open": "npx cypress open --project apps/goofy-e2e",
 		"cypress:ci-run": "npm run cypress:delete-old-reports --REPORT_FOLDER=$npm_config_REPORT_FOLDER ; npm run cypress:run -- --config-file ./$npm_config_CONFIG_FILE ; test=$(echo \"$?\") ; npm run cypress:pre-merge --REPORT_FOLDER=$npm_config_REPORT_FOLDER ; npm run cypress:generate-report --REPORT_FOLDER=$npm_config_REPORT_FOLDER ; exit $test",
 		"cypress:delete-old-reports": "REPORT_FOLDER=$npm_config_REPORT_FOLDER node apps/goofy-e2e/src/support/delete-old-reports.ts",