diff --git a/.ahoy.yml b/.ahoy.yml index a763df4db04552dff37f1f9b78d31331f86efa7a..e275abb47a0c06c68d50640581d0d77535288406 100644 --- a/.ahoy.yml +++ b/.ahoy.yml @@ -12,3 +12,7 @@ commands: imports: - ahoy.debug.yml usage: PHP debugging + changelog: + imports: + - ./.ahoy.l3d/changelog.yml + usage: Changelog tools. diff --git a/.gitignore b/.gitignore index b434878cd64fbe65b5b4dfd0fdf9db3f2003ad7b..7a9882538ce220e88d9e066cd7de30d64cc9bc4d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ vendor .env composer.lock +/.ahoy.l3d diff --git a/README.md b/README.md index a8ca9c30378be588cb53021c25d31d6cada004e0..b9231a80b7238a93ffbd81ba9a511b3304ec6e6b 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,13 @@ docker4drupal: docker0: ip: [IP OF YOUR DOCKER HOST] proxy: [IP OF TRAEFIK PROXY] + traefik: + domain: docker.localhost + usessl: 0 + port: 8000 + ports: 8443 + cert: fullchain.pem + key: privkey.pem live: root: '' uri: '' diff --git a/composer.json b/composer.json index 6c1e985ae3e7f3b8cabf6ad1b3b93ddb8060d04a..13f94353c56b3f117914c9524e334c642d1a5844 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "php": ">=7.2", "composer-plugin-api": "^1||^2", "lakedrops/composer-json-utils": "^2.0||dev-master", - "lakedrops/docker-traefik": "^1.3||dev-master" + "lakedrops/docker-traefik": "^1.4||dev-master" }, "require-dev": { "composer/composer": "^1||^2", diff --git a/src/Handler.php b/src/Handler.php index 78d72f7bd2f246a1347c551cf1a5eedad8083e3f..9495a20c457ec4125e68b04ee5ca19787823c92b 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -42,6 +42,14 @@ class Handler extends BaseHandler { $this->getDockerProxy($projectname) : FALSE, ], + 'traefik' => [ + 'domain' => $this->env->receive('traefik_domain', '', 'docker.localhost'), + 'usessl' => 0, + 'port' => $this->env->receive('traefik_port', '', '8000'), + 'ports' => $this->env->receive('traefik_ports', '', '8443'), + 'cert' => $this->env->receive('traefik_cert', '', 'fullchain.pem'), + 'key' => $this->env->receive('traefik_key', '', 'privkey.pem'), + ], 'live' => [ 'root' => '', 'uri' => '', @@ -264,7 +272,14 @@ class Handler extends BaseHandler { $this->gitIgnore('tests/backstop/backstop_data/html_report'); $this->gitLFS('tests/backstop/**/*.png'); - $traefik = new Traefik($this->config->readValue('projectname')); + $traefik = new Traefik( + $this->config->readValue('projectname'), + $this->config->readValue(['traefik', 'domain']), + $this->config->readValue(['traefik', 'port']), + $this->config->readValue(['traefik', 'ports']), + $this->config->readValue(['traefik', 'cert']), + $this->config->readValue(['traefik', 'key']) + ); $traefik->update(); // Set permissions, see https://wodby.com/stacks/drupal/docs/local/permissions diff --git a/templates/default.site.yml.twig b/templates/default.site.yml.twig index d6165651d9ad362fe7b639b970ebab52ce394e1b..ae3068bdefee6cd2d94392e676e4eced2bd6f658 100644 --- a/templates/default.site.yml.twig +++ b/templates/default.site.yml.twig @@ -1,6 +1,6 @@ dev: root: '/var/www/html/{{ webRoot }}/' - uri: '{{ projectname }}.docker.localhost:8000' + uri: '{{ projectname }}.{{ traefik.domain }}{% if traefik.usessl and traefik.ports != 443 %}:{{ traefik.ports }}{% elseif not traefik.usessl and traefik.port != 80 %}:{{ traefik.port }}{% endif %}' behat: root: '/var/www/html/{{ webRoot }}/' uri: '{{ webserver.type }}' diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index f151c2b2b79e739fd6c8fa52977072f74fabf654..b1b7eb5ef3992a9e90ba23710874779505862251 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -54,7 +54,7 @@ services: - './.docker-init/wkhtmltox.sh:/docker-entrypoint-init.d/50-wkhtmltox.sh' {% endif %} extra_hosts: - - '{{ projectname }}.docker.localhost:{{ docker0.ip }}' + - '{{ projectname }}.{{ traefik.domain }}:{{ docker0.ip }}' {{ webserver.type }}: image: {% if webserver.type == 'nginx' %}'wodby/drupal-nginx:{{ webserver.version|default("1.18") }}'{% elseif webserver.type == 'apache' %}'wodby/apache:2.4'{% endif %} @@ -82,7 +82,7 @@ services: labels: traefik.backend: '{{ projectname }}_{{ webserver.type }}_1' traefik.port: '80' - traefik.frontend.rule: 'Host:{{ projectname }}.docker.localhost{% for domain in extradomains|default([]) %},{{ domain }}{% endfor %}' + traefik.frontend.rule: 'Host:{{ projectname }}.{{ traefik.domain }}{% for domain in extradomains|default([]) %},{{ domain }}{% endfor %}' {% if varnish.enable %} varnish: @@ -96,7 +96,7 @@ services: labels: traefik.backend: '{{ projectname }}_varnish_1' traefik.port: '6081' - traefik.frontend.rule: 'Host:varnish.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:varnish.{{ projectname }}.{{ traefik.domain }}' {% endif %} redis: @@ -110,7 +110,7 @@ services: labels: traefik.backend: '{{ projectname }}_adminer_1' traefik.port: '9000' - traefik.frontend.rule: 'Host:adminer.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:adminer.{{ projectname }}.{{ traefik.domain }}' {% elseif dbbrowser.type == 'pma' %} pma: image: 'phpmyadmin/phpmyadmin:5' @@ -123,7 +123,7 @@ services: labels: traefik.backend: '{{ projectname }}_pma_1' traefik.port: '80' - traefik.frontend.rule: 'Host:pma.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:pma.{{ projectname }}.{{ traefik.domain }}' {% endif %} {% if solr.enable %} @@ -134,7 +134,7 @@ services: labels: traefik.backend: '{{ projectname }}_solr_1' traefik.port: '8983' - traefik.frontend.rule: 'Host:solr.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:solr.{{ projectname }}.{{ traefik.domain }}' {% endif %} mailhog: @@ -142,7 +142,7 @@ services: labels: traefik.backend: '{{ projectname }}_mailhog_1' traefik.port: '8025' - traefik.frontend.rule: 'Host:mailhog.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:mailhog.{{ projectname }}.{{ traefik.domain }}' {% if node.enable %} nodejs: @@ -152,7 +152,7 @@ services: labels: traefik.backend: 'nodejs' traefik.port: '8080' - traefik.frontend.rule: 'Host:nodejs.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:nodejs.{{ projectname }}.{{ traefik.domain }}' volumes: - {{ projectroot }}/{{ node.path }}:/app command: sh -c 'npm install && npm run start' @@ -163,7 +163,7 @@ services: labels: traefik.backend: '{{ projectname }}_node_1' traefik.port: '3000' - traefik.frontend.rule: 'Host:front.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:front.{{ projectname }}.{{ traefik.domain }}' expose: - '3000' volumes: @@ -210,7 +210,7 @@ services: labels: traefik.backend: '{{ projectname }}_webgrind_1' traefik.port: '8080' - traefik.frontend.rule: 'Host:webgrind.{{ projectname }}.docker.localhost' + traefik.frontend.rule: 'Host:webgrind.{{ projectname }}.{{ traefik.domain }}' volumes: - {{ projectroot }}/files:/mnt/files {% endif %} diff --git a/templates/drush.yml.twig b/templates/drush.yml.twig index 42b6487561c5eba8cd201a1742dbf7c5090c5325..01ae7cfd7f64e24b74ffad209e6bb60da31aee33 100644 --- a/templates/drush.yml.twig +++ b/templates/drush.yml.twig @@ -3,7 +3,7 @@ drush: config: - '${env.home}/.drush/config/drush.yml' options: - uri: 'http://{{ projectname }}.docker.localhost:8000' + uri: 'http{% if traefik.usessl %}s{% endif %}://{{ projectname }}.{{ traefik.domain }}{% if traefik.usessl and traefik.ports != 443 %}:{{ traefik.ports }}{% elseif not traefik.usessl and traefik.port != 80 %}:{{ traefik.port }}{% endif %}' command: core: rsync: diff --git a/templates/settings.docker.php.twig b/templates/settings.docker.php.twig index a9cac93603bd6651dffd8d03aeef37b8945225be..f940423970fe11c435b61537c0bebf470c8742c8 100644 --- a/templates/settings.docker.php.twig +++ b/templates/settings.docker.php.twig @@ -46,7 +46,7 @@ $databases = array( ), ); -$base_url = 'http://{{ projectname }}.docker.localhost:8000'; +$base_url = 'http{% if traefik.usessl %}s{% endif %}://{{ projectname }}.{{ traefik.domain }}{% if traefik.usessl and traefik.ports != 443 %}:{{ traefik.ports }}{% elseif not traefik.usessl and traefik.port != 80 %}:{{ traefik.port }}{% endif %}'; $conf['smtp_host'] = 'mailhog'; $conf['smtp_hostbackup'] = ''; $conf['smtp_port'] = '1025';