Skip to content
Snippets Groups Projects
Commit 9f51fc99 authored by danielspeicher's avatar danielspeicher
Browse files

Doc for testing and code coverage

parent 5ba22706
No related branches found
No related tags found
No related merge requests found
Pipeline #494605 skipped
......@@ -3,6 +3,148 @@ title: Testing
tags:
- documentation
- tools
- tests
---
# Testing Drupal Code
This section describes everything we have to test our code from static
code analysis to unit testing.
You also have to set up your environment with the tool [l3d](../docker/l3d/index.md).
## Static Code Analysis
We have several tools to perform static code analysis.
* PHP LOC
* Code Sniffer
* Mess Detection
### PHP LOC
PHP LOC prints several metrics about your code, like the average size of a class.
To execute PHP LOC on the console:
```l3d
a test phploc <file_ordirectory>
```
Whether it is a directory, it runs the analysis for everything under this directory
recursively.
### PHP Code Sniffer
PHP Code Sniffer performs a static code analysis with a specific Drupal profile. It detects
code smells like static calls.
To execute PHP Code Sniffer on the console:
```l3d
a test phpcs <file_ordirectory>
```
Whether it is a directory, it runs the analysis for everything under this directory
recursively.
### PHP Mess Detection
PHP Mess Detection is a more detailed analysis comparing to code sniffer. It
uses several profiles like:
* cleancode
* design
This analysis detects also code smells like the complexity (e.g. number of
dependencies) of classes.
To execute PHP Code Sniffer on the console:
```l3d
a test phpmd <file_ordirectory> json <profile>
```
Whether it is a directory, it runs the analysis for everything under this directory
recursively.
## Unit/Kernel/Functional Testing
To execute the tests, you can use a single command:
```l3d
a test phpunit <file_ordirectory>
```
All kind of Drupal tests will be executed.
Whether it is a directory, it runs the analysis for everything under this directory
recursively.
You also can execute the tests within your IDE.
First got to the settings of your IDE and add a new PHP interpreter. Select Docker and
enter the form:
![Screenshot](/files/screenshots/settings_php_interpreter.png)
Use the option Docker Compose:
![Screenshot](/files/screenshots/settings_php_interpreter_docker.png)
Fill the following form like:
![Screenshot](/files/screenshots/settings_php_interpreter_new.png)
Use the server you created for [debugging](./debug.md).
The next step is to create a settings for your test framework. Remove all configuration
and add a new one for remote interpreter:
![Screenshot](/files/screenshots/settings_php_test_framework_new_config.png)
![Screenshot](/files/screenshots/settings_php_test_framework_new.png)
Set the autoloader and the configurations file.
Now you are ready to go. Open a directory or a single test file (or method) and click on the green
arrow:
![Screenshot](/files/screenshots/settings_php_test_execution.png)
You can also use the execution with the debugger.
### Code Coverage
First, activate the coverage option:
```l3d
a debug coverage
```
Enter the projects to cover into your ```.lakedrops.yml``` file, like:
```yml
lakedrops-dev:
coverage:
- ../web/modules/contrib/bpmn_io
- ../web/modules/contrib/camunda
- ../web/modules/contrib/eca
- ../web/modules/contrib/eca_entity_share
- ../web/modules/contrib/eca_state_machine
- ../web/modules/contrib/eca_tamper
```
This is just an example!
You have to execute the following command to write a new config file for testing:
```l3d
composer lakedrops:scaffold
```
Now you can execute every test including code coverage. To check, if it is
working properly, a new view for coverage should open in your IDE, like:
![Screenshot](/files/screenshots/settings_php_test_coverage_view.png)
docs/files/screenshots/settings_php_interpreter.png

131 B

docs/files/screenshots/settings_php_interpreter_docker.png

130 B

docs/files/screenshots/settings_php_interpreter_new.png

130 B

docs/files/screenshots/settings_php_test_coverage_view.png

131 B

docs/files/screenshots/settings_php_test_execution.png

130 B

docs/files/screenshots/settings_php_test_framework_new.png

130 B

docs/files/screenshots/settings_php_test_framework_new_config.png

130 B

# New in version 2021.12.15:
# New in version 2022.4.22:
--------
- [](dev_tools/index.md)
- [Debugging](dev_tools/debug.html)
> __
> How to debug within your IDE
- [Host setup](dev_tools/host.html)
> Host configuration
- [Testing](dev_tools/test.html)
> All testing tools including code coverage
......@@ -14,4 +14,5 @@
{"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
{"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"]}
{"version":"2022.4.22","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", "dev_tools/debug.md", "dev_tools/host.md", "dev_tools/test.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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment