diff --git a/alfa-client/Jenkinsfile.e2e b/alfa-client/Jenkinsfile.e2e
index c13f8975dc275c556dd65069bc154e2bf73a3b88..cac149a7aa08a1659cec2dd9efa3bd3067241771 100644
--- a/alfa-client/Jenkinsfile.e2e
+++ b/alfa-client/Jenkinsfile.e2e
@@ -839,7 +839,9 @@ String generateNamespace(String bezeichner) {
 }
 
 String decodeString(String encoded) {
-    return sh (script: "echo -n ${encoded} | base64 --decode", returnStdout: true)
+  byte[] decoded = encoded.decodeBase64()
+  return new String(decoded)
+//    return sh (script: "echo -n ${encoded} | base64 --decode", returnStdout: true)
 }
 
 Map getElasticsearchSecret(String namespace) {
diff --git a/alfa-client/apps/admin-e2e/README.md b/alfa-client/apps/admin-e2e/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..5fe557adc4effb233e3386e7d43d82dba1afc435
--- /dev/null
+++ b/alfa-client/apps/admin-e2e/README.md
@@ -0,0 +1 @@
+See: [Alfa Readme](../alfa-e2e/README.md)
\ No newline at end of file
diff --git a/alfa-client/apps/alfa-e2e/README.md b/alfa-client/apps/alfa-e2e/README.md
index e54e685002d7a1d2eddf7ddbcf68214f741a5f0f..7d18aef86c92dc677ff9685d8218dfbd196d7dd9 100644
--- a/alfa-client/apps/alfa-e2e/README.md
+++ b/alfa-client/apps/alfa-e2e/README.md
@@ -1,12 +1,42 @@
-# E2E
-
 ## Allgemein
 
-Die E2E Tests werden in parallen Jenkins Stages in seperaten Namespaces durchgeführt.
-`einheitlicher-ansprechpartener` -> 'EA'-Umgebung
-`main-tests` -> 'Dev'-Umgebung
--> es dürfen nur die der Umgebung entsprechenden User für die Tests genutzt werden.
-(siehe dokumentation/Anwender/Standardbenutzer.md)
+Die E2E Tests werden in parallelen Jenkins Stages in separaten Namespaces durchgeführt.
+Unter src/e2e liegen die sogenannten App-Varianten, die Tests für eine bestimmte Umgebungskonfiguration enthalten:
+* `einheitlicher-ansprechpartner` -> 'EA'-Umgebung
+* `main-tests` -> 'Dev'-Umgebung
+-> es dürfen nur die der Umgebung entsprechenden User für die Tests genutzt werden
+(siehe [Standardbenutzer](https://git.ozg-sh.de/ozgcloud-doc/dokumentation/src/branch/master/Anwender/Standardbenutzer.md)).
+
+## Lokal starten
+1. Mit Docker-Compose die Umgebung hochfahren, z.B. für alfa-client
+   - Mit Shell-Skript (legt Daten an) / Nur für alfa-e2e verfügbar:
+     ```
+     cd alfa/alfa-client/apps/alfa-e2e
+     ./start-e2e-environment.sh
+     ```
+   - Nur mit Docker Compose
+     ```
+     cd alfa/alfa-client/apps/alfa-e2e
+     docker compose up -d
+     ```
+2. Den Client separat starten (alfa oder admin)
+    ```
+    cd alfa/alfa-client/apps/alfa #ODER admin
+    npm run start
+    ```
+
+3. Die Tests ausführen
+     - Am Stück (wie Jenkins):
+       ```
+       cd alfa/alfa-client/apps/
+       ./run_tests.sh alfa-e2e #ODER admin-e2e
+       ```
+     - Interaktiv:
+       ```
+       cd alfa/alfa-client/
+       npm run cypress:open
+       ```
+
 
 ## Gegen ein bestehenden Namespace testen
 
@@ -20,10 +50,9 @@ Beispiel Namespace: sh-mastere2emain-dev
 
 4. Cypress mit entsprechender config starten: `npm run cypress:open -- --config-file cypress-master-main.json`
 
-## docker-compose
-
-### -march Architektur
+## -march Architektur
 
 In die `.env` Datei eintragen:
-
-        USER_MANAGER_DOCKER_IMAGE=march-snapshot-latest
\ No newline at end of file
+```
+USER_MANAGER_DOCKER_IMAGE=march-snapshot-latest
+```
\ No newline at end of file