diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bd768a79fd6f24cc46b8d3929d667bd3f50b0504..e4f45b90954680dfecc39cd2f528056e4c841503 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,7 +11,6 @@ before_script:
 stages:
   - test
   - deploy
-  - e2e
 
 test:
   stage: test
@@ -40,56 +39,20 @@ publish:
     - yarn run build
     - yarn run publish
 
-.deploy_defaults: &deploy_defaults
+deploy:
+  stage: deploy
   except:
     - schedules
-  stage: deploy
-  script:
-    # Add ssh key
-    - mkdir -p ~/.ssh
-    - echo "${DEPLOY_KEY}" | tr -d '\r' > ~/.ssh/id_rsa
-    - chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_rsa
-    - ssh-keyscan -t rsa "${DEPLOY_HOST}" >> ~/.ssh/known_hosts
-    # Deploy
-    - cd .gitlab-ci
-    - export DO_NOT_TRACK=1
-    - composer install
-    - composer exec -- deployer.phar deploy "stage=${CI_ENVIRONMENT_NAME}"
-    - echo "Deployed to ${CI_ENVIRONMENT_URL}"
-    # Simple health check
-    - curl --max-time 10 --retry 3 --output /dev/null --silent --show-error --fail --location "${CI_ENVIRONMENT_URL}"
-
-deploy_demo:
-  only:
-    refs:
-      - demo
-  environment:
-    name: demo
-    url: https://dbp-demo.tugraz.at/apps/demo
-  variables:
-    DEPLOY_HOST: vpu01-demo.tugraz.at
-    DEPLOY_KEY: "$DEPLOY_SSH_KEY"
-  <<: *deploy_defaults
-
-deploy_development:
-  only:
-    refs:
-      - master
-  environment:
-    name: development
-    url: https://dbp-dev.tugraz.at/apps/demo
-  variables:
-    DEPLOY_HOST: mw01-dev.tugraz.at
-    DEPLOY_KEY: "$DEPLOY_SSH_KEY"
-  <<: *deploy_defaults
-
-e2e_tests:
   only:
     refs:
       - master
+      - demo
+  inherit:
+    variables: false
   variables:
-    E2E_PROJECT: toolkit-showcase
-  stage: e2e
+    UPSTREAM_PROJECT_PATH: ${CI_PROJECT_PATH}
+    UPSTREAM_COMMIT_BRANCH: ${CI_COMMIT_BRANCH}
+    UPSTREAM_COMMIT_SHA: ${CI_COMMIT_SHA}
   trigger:
-    project: dbp/e2e-tests
+    project: dbp/deployer
     strategy: depend