diff --git a/docs/gitlab/drupal/index.md b/docs/gitlab/drupal/index.md
index 33c8a900bdec60e5d72c4b19f01a3b53a729eb2a..d1abda2ce6ba5ec9e3b1433dd4252baa07672ec5 100644
--- a/docs/gitlab/drupal/index.md
+++ b/docs/gitlab/drupal/index.md
@@ -175,7 +175,7 @@ that we setup our own `LakeDrops` tools by `composer lakedrops:scaffold` and
 `composer lakedrops:docker4drupal`.
 
 The next step is to pull all required [Docker](https://www.docker.com/) images 
-with [Docker Compose](https://docs.docker.com/compose/) adn start the services.
+with [Docker Compose](https://docs.docker.com/compose/) and start the services.
 
 After everything has started, we create some directories, e.g. for styles, logs and JavaScript.
 
@@ -371,14 +371,61 @@ The following jobs must run before successfully:
 - [Build Prod Site NG](#build-prod-site-ng)
 - [Build Theme](#build-theme)
 
+First we have to do some preparation. This is done in the `before_script` section.
+
+- [.prepareaccess](#prepareaccess)
+
+This job does not use [Ansible](https://www.ansible.com/). A lot of commands are executed in the script section.
+Here is a summary:
+
+- create the directories, where the site gets deployed to:
+    - app
+    - db
+    - files
+    - redis
+    - backup
+- sets the ownership and permissions of these files
+- start all the docker service with [Docker Compose](https://docs.docker.com/compose/)
+- execute several `drush` commands
+- create config auto export directory
+- restart cron jobs
+
+To see all the commands, visit
+[test_deploy.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/drupal/-/blob/main/test-and-deploy.yml?ref_type=heads).
+
+Rules, when the job must not run:
+
+- `$DISABLE_DEPLOYMENT` != "0"
+- `$CI_COMMIT_BRANCH` != "main" && `$ENFORCE_DEPLOYMENT` != "1"
+
+
 ### Internal Stages
 
 Here we have some internal stages, which cannot be executed alone. The purpose is to
 collect repeating execution.
 
 #### .prepareaccess
+
+This internal job, you find in [mixins.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/general/-/blob/main/mixins.yml?ref_type=heads).
+
+Mainly, we care about getting access to:
+
+- the host `${CI_SERVER_HOST}` with `ssh` via `$SSH_PRIVATE_KEY`
+- GitLab Login via `$GITLAB_ACCESS_TOKEN` and `$GITLAB_PRIVATE_TOKEN`
+- Docker configuration via `$DOCKER_AUTH_CONFIG`
+
+
 #### .preparecomposerplugins
 
+This internal job, you find in [mixins.yml](https://gitlab.lakedrops.com/gitlab-ci-cd/general/-/blob/main/mixins.yml?ref_type=heads).
+
+The following points will be prepared for [Composer](https://getcomposer.org/):
+
+- the version >2, if `$DOWNGRADE_COMPOSER` is not set
+- the configuration `allow-plugins`
+- the configuration `audit.abandoned`, depend on `$IGNORE_COMPOSER_ABANDONED_AUDIT`
+- unsupported module versions, which are allowed to use
+
 ## Configuration
 
 ### GitLab Runner