diff --git a/docs/composer/plugin/d4d/index.md b/docs/composer/plugin/d4d/index.md
index bef8b96e5974bef66380b3c21943518ec6fd8705..5f4bfa642392511f706ad5ace412c89f56344df1 100644
--- a/docs/composer/plugin/d4d/index.md
+++ b/docs/composer/plugin/d4d/index.md
@@ -104,6 +104,7 @@ Note that Solr, Node and Varnish are not enabled by default. See the [customizat
 ### PHP Debugging
 
 By default, PHP is configured with XDebug being enabled and you should check the instructions for your IDE on how to get started with a debugging session.
+For the IDE's IntelliJ and PHPStorm from [Jetbrains](https://jetbrains.com) you find an instruction [here](../../../dev_tools/index.md#debugging-drupal-code).
 
 ### Watch the logs
 
diff --git a/docs/dev_tools/index.md b/docs/dev_tools/index.md
new file mode 100644
index 0000000000000000000000000000000000000000..8223adbd4b2d479f76958e62bf7a3df5912977ec
--- /dev/null
+++ b/docs/dev_tools/index.md
@@ -0,0 +1,63 @@
+---
+title: Developer Tools
+tags:
+- documentation
+- tools
+---
+# Developer Tools
+
+## IDE
+
+We use the IDE's IntelliJ and PHPStorm from [Jetbrains](https://jetbrains.com), because we are convinced to use best toolset in the 
+market so far.
+
+## Debugging Drupal Code
+
+### Add a PHP Server
+
+First, you have to set up a Drupal environment with the tool [l3d](../docker/l3d/index.md). The tool is 
+based on Docker containers.
+
+Now navigate to File->Settings in your IDE and create a server:
+
+![Screenshot](/files/screenshots/settings_php_new_server.png)
+
+Set the following values:
+
+![Screenshot](/files/screenshots/settings_php_add_server.png)
+
+**Important: Always use Docker as name of your server.** 
+
+Do not forget to add the file mapping to `/var/www/html`.
+
+### Add a new Run/Debug Configuration
+
+![Screenshot](/files/screenshots/configuration_add.png)
+
+First create a new `PHP Web Page` configuration:
+
+![Screenshot](/files/screenshots/configuration_new_webpage.png)
+
+Set the following values:
+
+![Screenshot](/files/screenshots/configuration_done.png)
+
+Select the server you just have created.
+
+**Important: Always use Docker as name of your configuration.** 
+
+### Start Debugging
+
+First, check the debug settings in your IDE. It should look something like this:
+
+![Screenshot](/files/screenshots/settings_php_debug.png)
+
+Now activate the `Phone` icon in your IDE:
+
+![Screenshot](/files/screenshots/start_debug.png)
+
+Now you can set your breakpoints and enjoy debugging Drupal code.
+
+## Execute Drupal tests within your IDE
+
+
diff --git a/docs/files/screenshots/configuration_add.png b/docs/files/screenshots/configuration_add.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c29d7e6e55b37feafd9c3ccf21f67328c30bc08
--- /dev/null
+++ b/docs/files/screenshots/configuration_add.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a2b35144e5278faeb5ec373002ff93f31b7b14d5603b25435eee342ca84354f
+size 31426
diff --git a/docs/files/screenshots/configuration_done.png b/docs/files/screenshots/configuration_done.png
new file mode 100644
index 0000000000000000000000000000000000000000..ffed74c6318cf37b14efcc19dcb2f2c66a04b84d
--- /dev/null
+++ b/docs/files/screenshots/configuration_done.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7dcc63d1d642bf1b988429393e9ddd48579dc43a80f6b1d3ce2a30377e1bb69b
+size 42556
diff --git a/docs/files/screenshots/configuration_new_webpage.png b/docs/files/screenshots/configuration_new_webpage.png
new file mode 100644
index 0000000000000000000000000000000000000000..3538c3102bc742f9563658bdf91f3bc83d829b97
--- /dev/null
+++ b/docs/files/screenshots/configuration_new_webpage.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:771edc61d04ffe6627ce4aa574b23b261e8b75d1533298470f980233a799c276
+size 52276
diff --git a/docs/files/screenshots/settings_php_add_server.png b/docs/files/screenshots/settings_php_add_server.png
new file mode 100644
index 0000000000000000000000000000000000000000..6772ae8964fcdd18bc9e31f386115591acfa67cd
--- /dev/null
+++ b/docs/files/screenshots/settings_php_add_server.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:401f707c2be7e92386f7e65e6bcef1762f154f079fa72d4c61436e06d0b3c4bf
+size 60007
diff --git a/docs/files/screenshots/settings_php_debug.png b/docs/files/screenshots/settings_php_debug.png
new file mode 100644
index 0000000000000000000000000000000000000000..817bb4aa4fded36d1f55a44c7bc07e7ec25357f1
--- /dev/null
+++ b/docs/files/screenshots/settings_php_debug.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97beb69aff4f7fe6cd448092d61c97ae2519f0949abc53c6cf386e86d3680be6
+size 124690
diff --git a/docs/files/screenshots/settings_php_new_server.png b/docs/files/screenshots/settings_php_new_server.png
new file mode 100644
index 0000000000000000000000000000000000000000..7317ce7599c4a1bc7e120a9c3d6bd4004922de79
--- /dev/null
+++ b/docs/files/screenshots/settings_php_new_server.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f07d2e7dcf09d30c393d152b2e669ab50b11090e55a3f3b4bfcac1884951400c
+size 21510
diff --git a/docs/files/screenshots/start_debug.png b/docs/files/screenshots/start_debug.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd56d9982f73ea205ef9d4c26737dabcfd20cff2
--- /dev/null
+++ b/docs/files/screenshots/start_debug.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:126dc4605ae672c1eeec825743fe88adff6828acb8bc22e9fabcf0784acd5618
+size 16211
diff --git a/docs/new-features.md b/docs/new-features.md
index 18d61ff3d5e3f2d46fc96fedd808456869c25a5d..14182c57d7d45ee10fe55c3e50ae2438ac4a2e0e 100644
--- a/docs/new-features.md
+++ b/docs/new-features.md
@@ -1,10 +1,6 @@
-# New in version 2021.3.4: 
+# New in version 2021.12.15: 
 
 --------
-- [Ansible Wiki ELK Re-Indexing](ansible/wiki/elk/re-indexing.html)
-
-	> __
-
-- [Docker Node, Gulp SASS and BrowserSync](docker/node/gulp-sass.html)
+- [](dev_tools/index.md)
 
 	> __
diff --git a/docs/versions.txt b/docs/versions.txt
index 27739c0fcf1a9fc2f3d0a2062f763ff8c830712f..2d4f47cf03a4d75a0af713bbeb4d0dbb765aff97 100644
--- a/docs/versions.txt
+++ b/docs/versions.txt
@@ -13,3 +13,5 @@
 {"version":"2021.1.20","pages":["index.md", "how-to-write-docs.md", "new-features.md", "overview.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/ansible/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/l3d/drupal.md", "docker/maven-build/index.md", "docker/node/index.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]}
 {"version":"2021.3.4","pages":["index.md", "how-to-write-docs.md", "new-features.md", "overview.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/elk/re-indexing.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/ansible/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/l3d/drupal.md", "docker/maven-build/index.md", "docker/node/index.md", "docker/node/gulp-sass.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]}
 {"version":"2021.3.4","pages":["index.md", "how-to-write-docs.md", "new-features.md", "overview.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/elk/re-indexing.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/ansible/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/l3d/drupal.md", "docker/maven-build/index.md", "docker/node/index.md", "docker/node/gulp-sass.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]}
+
+{"version":"2021.12.15","pages":["index.md", "how-to-write-docs.md", "new-features.md", "overview.md", "ansible/index.md", "ansible/plugins/drush/index.md", "ansible/plugins/fluentd/index.md", "ansible/plugins/gitlab/index.md", "ansible/plugins/jiffybox/index.md", "ansible/plugins/serverdensity/index.md", "ansible/plugins/uptime/index.md", "ansible/roles/alerta/index.md", "ansible/roles/almond/index.md", "ansible/roles/apache/index.md", "ansible/roles/aptproxy/index.md", "ansible/roles/artifactory/index.md", "ansible/roles/auditbeat/index.md", "ansible/roles/borgbackup/index.md", "ansible/roles/camunda/index.md", "ansible/roles/cloud/index.md", "ansible/roles/common/index.md", "ansible/roles/commonauth/index.md", "ansible/roles/commonconnect/index.md", "ansible/roles/commonkeys/index.md", "ansible/roles/compass/index.md", "ansible/roles/composer/index.md", "ansible/roles/discourse/index.md", "ansible/roles/docker/index.md", "ansible/roles/drupal/index.md", "ansible/roles/drupal-cli/index.md", "ansible/roles/drupalconsole/index.md", "ansible/roles/drush/index.md", "ansible/roles/elastalert/index.md", "ansible/roles/elasticsearch/index.md", "ansible/roles/fail2ban/index.md", "ansible/roles/fluentd/index.md", "ansible/roles/fluentd-client/index.md", "ansible/roles/gcloud/index.md", "ansible/roles/gitlab/index.md", "ansible/roles/gitlab-client/index.md", "ansible/roles/gitlab-runner/index.md", "ansible/roles/golang/index.md", "ansible/roles/haproxy/index.md", "ansible/roles/heartbeat/index.md", "ansible/roles/home-assistant/index.md", "ansible/roles/jailkit/index.md", "ansible/roles/java/index.md", "ansible/roles/keycloak/index.md", "ansible/roles/kibana/index.md", "ansible/roles/letsencrypt/index.md", "ansible/roles/mailhog/index.md", "ansible/roles/matomo/index.md", "ansible/roles/matterbridge/index.md", "ansible/roles/memcache/index.md", "ansible/roles/mongodb/index.md", "ansible/roles/mysql/index.md", "ansible/roles/mysql-client/index.md", "ansible/roles/netdata/index.md", "ansible/roles/nextcloud/index.md", "ansible/roles/nginx/index.md", "ansible/roles/nodejs/index.md", "ansible/roles/openphoto/index.md", "ansible/roles/oracle/index.md", "ansible/roles/owncloud/index.md", "ansible/roles/packetbeat/index.md", "ansible/roles/photoprism/index.md", "ansible/roles/php/index.md", "ansible/roles/plantuml/index.md", "ansible/roles/radis/index.md", "ansible/roles/s3/index.md", "ansible/roles/satis/index.md", "ansible/roles/serverdensity/index.md", "ansible/roles/sftp/index.md", "ansible/roles/spideroak/index.md", "ansible/roles/suitecrm/index.md", "ansible/roles/svnserver/index.md", "ansible/roles/tomcat/index.md", "ansible/roles/uptime/index.md", "ansible/roles/user-management/index.md", "ansible/roles/varnish/index.md", "ansible/roles/virtualbox/index.md", "ansible/roles/vpn/index.md", "ansible/roles/wkhtmltopdf/index.md", "ansible/roles/youtrack/index.md", "ansible/roles/zabbix_agent/index.md", "ansible/roles/zammad/index.md", "ansible/wiki/index.md", "ansible/wiki/attacks.md", "ansible/wiki/configure-crontabs.md", "ansible/wiki/desaster-recovery.md", "ansible/wiki/drupal-apache-update.md", "ansible/wiki/drupal-deployment.md", "ansible/wiki/drush-fetch-aliases.md", "ansible/wiki/firewall.md", "ansible/wiki/gitlab-ci-configuration.md", "ansible/wiki/gitlab-ci-introduction.md", "ansible/wiki/gitlab-ci-prerequisites.md", "ansible/wiki/haproxy-custom-blacklists.md", "ansible/wiki/haproxy-quick-update.md", "ansible/wiki/letsencrypt.md", "ansible/wiki/resources.md", "ansible/wiki/swapfile.md", "ansible/wiki/user-add-new.md", "ansible/wiki/user-set-password.md", "ansible/wiki/varnish-quick-update.md", "ansible/wiki/backup/backup-google.md", "ansible/wiki/backup/backup-spideroak.md", "ansible/wiki/backup/backup.md", "ansible/wiki/backup/introduction.md", "ansible/wiki/backup/restore-google.md", "ansible/wiki/backup/restore-spideroak.md", "ansible/wiki/backup/restore.md", "ansible/wiki/elk/fluentd.md", "ansible/wiki/elk/introduction.md", "ansible/wiki/elk/kibana.md", "ansible/wiki/elk/re-indexing.md", "ansible/wiki/hosts/add.md", "ansible/wiki/hosts/jiffybox.md", "ansible/wiki/hosts/prevent-reboot.md", "ansible/wiki/inventory/add.md", "ansible/wiki/inventory/chatops.md", "ansible/wiki/inventory/pipelines.md", "ansible/wiki/monitoring/alerts-elk.md", "ansible/wiki/monitoring/alerts-netdata.md", "ansible/wiki/monitoring/alerts-uptime.md", "ansible/wiki/monitoring/alerts.md", "ansible/wiki/monitoring/introduction.md", "ansible/wiki/monitoring/monitoring.md", "ansible/wiki/openssl/csr.md", "ansible/wiki/tips/signed-git-commits.md", "composer/index.md", "composer/library/composer-json-utils/index.md", "composer/library/traefik/index.md", "composer/plugin/ahoy/index.md", "composer/plugin/b4d/index.md", "composer/plugin/d4d/index.md", "composer/plugin/d8-sass-theme/index.md", "composer/plugin/d8-scaffold/index.md", "composer/plugin/d9-scaffold/index.md", "composer/plugin/dorgflow/index.md", "composer/plugin/drupal-dev-environment/index.md", "composer/plugin/drupal-environment/index.md", "composer/project/d8/index.md", "composer/project/d8-commerce/index.md", "composer/project/d8-commerce-demo/index.md", "composer/project/d9/index.md", "dev_tools/index.md", "devops/alm/alm.md", "devops/alm/hosting_maintain.md", "devops/alm/tools.md", "docker/index.md", "docker/ansible/index.md", "docker/gitlab-drupal-ci/index.md", "docker/gitlab-drupal-ci/changelog.md", "docker/l3d/index.md", "docker/l3d/changelog.md", "docker/l3d/drupal.md", "docker/maven-build/index.md", "docker/node/index.md", "docker/node/gulp-sass.md", "gitlab/index.md", "gitlab/ansible/index.md", "gitlab/composer/index.md", "gitlab/drupal/index.md"]}
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 8f3491e3c9f493cbb2b71eca4c3b83b21d1fe6ad..3dbbab89e4d707b0888dee9952cc6104bcf3602c 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -224,3 +224,5 @@ nav:
       - Introduction: devops/alm/alm.md
       - Hosting and Monitoring: devops/alm/hosting_maintain.md
       - Tools: devops/alm/tools.md
+  - Developer Tools:
+    - Home: dev_tools/index.md