From 7a38241485ccd89826b2a83f69192a9d15b245dd Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Wed, 9 Jul 2025 20:15:32 +0200 Subject: [PATCH] Made code more modular and refactored to cmp roles --- roles/cmp-db-docker-proxy/README.md | 11 ++++++++ roles/cmp-db-docker-proxy/meta/main.yml | 15 +++++++++++ roles/cmp-db-docker-proxy/tasks/main.yml | 10 ++++++++ roles/cmp-docker-proxy/README.md | 11 ++++++++ roles/cmp-docker-proxy/meta/main.yml | 15 +++++++++++ roles/cmp-docker-proxy/tasks/main.yml | 10 ++++++++ roles/docker-compose/defaults/main.yml | 3 ++- roles/docker-compose/tasks/main.yml | 8 ++++-- .../templates/vhost/basic.conf.j2 | 4 +-- roles/web-app-akaunting/tasks/main.yml | 11 ++------ roles/web-app-baserow/tasks/main.yml | 11 ++------ roles/web-app-baserow/vars/main.yml | 4 +-- roles/web-app-coturn/tasks/main.yml | 11 ++------ roles/web-app-discourse/tasks/main.yml | 24 ++---------------- roles/web-app-discourse/vars/main.yml | 3 ++- roles/web-app-espocrm/tasks/main.yml | 15 ++--------- roles/web-app-espocrm/vars/main.yml | 9 ++++--- roles/web-app-friendica/tasks/main.yml | 11 ++------ roles/web-app-funkwhale/tasks/main.yml | 11 ++------ roles/web-app-funkwhale/vars/main.yml | 2 +- roles/web-app-fusiondirectory/tasks/main.yml | 11 ++------ roles/web-app-gitea/tasks/main.yml | 11 ++------ roles/web-app-gitlab/tasks/main.yml | 11 ++------ roles/web-app-jenkins/tasks/main.yml | 11 ++------ roles/web-app-joomla/tasks/main.yml | 11 ++------ roles/web-app-keycloak/tasks/main.yml | 11 ++------ roles/web-app-lam/tasks/main.yml | 11 ++------ roles/web-app-libretranslate/tasks/main.yml | 22 ++-------------- roles/web-app-listmonk/tasks/main.yml | 19 ++++++-------- roles/web-app-mailu/tasks/main.yml | 13 ++-------- roles/web-app-mailu/vars/main.yml | 15 +++++------ roles/web-app-matomo/tasks/constructor.yml | 11 ++------ roles/web-app-mediawiki/tasks/main.yml | 11 ++------ roles/web-app-mobilizon/tasks/main.yml | 11 ++------ roles/web-app-moodle/tasks/main.yml | 11 ++------ roles/web-app-mybb/tasks/setup-domain.yml | 2 +- roles/web-app-openproject/tasks/main.yml | 11 ++------ roles/web-app-pgadmin/tasks/main.yml | 13 +++------- roles/web-app-phpldapadmin/tasks/main.yml | 11 ++------ roles/web-app-phpmyadmin/tasks/main.yml | 11 ++------ roles/web-app-pixelfed/tasks/main.yml | 11 ++------ roles/web-app-pixelfed/vars/main.yml | 2 +- roles/web-app-portfolio/tasks/main.yml | 12 ++------- roles/web-app-presentation/tasks/main.yml | 11 ++------ roles/web-app-pretix/tasks/main.yml | 21 ++-------------- roles/web-app-snipe-it/tasks/main.yml | 11 ++------ roles/web-app-sphinx/tasks/main.yml | 11 ++------ roles/web-app-syncope/templates/proxy.conf | 4 +-- roles/web-app-taiga/tasks/main.yml | 11 ++------ roles/web-app-wordpress/tasks/main.yml | 2 +- roles/web-app-yourls/tasks/main.yml | 11 ++------ roles/web-svc-simpleicons/tasks/main.yml | 12 ++------- templates/roles/web-app/tasks/main.yml.j2 | 25 ++++--------------- 53 files changed, 184 insertions(+), 397 deletions(-) create mode 100644 roles/cmp-db-docker-proxy/README.md create mode 100644 roles/cmp-db-docker-proxy/meta/main.yml create mode 100644 roles/cmp-db-docker-proxy/tasks/main.yml create mode 100644 roles/cmp-docker-proxy/README.md create mode 100644 roles/cmp-docker-proxy/meta/main.yml create mode 100644 roles/cmp-docker-proxy/tasks/main.yml diff --git a/roles/cmp-db-docker-proxy/README.md b/roles/cmp-db-docker-proxy/README.md new file mode 100644 index 00000000..6252e0a9 --- /dev/null +++ b/roles/cmp-db-docker-proxy/README.md @@ -0,0 +1,11 @@ +# Database Docker with Web Proxy + +This role builds on `cmp-db-docker` by adding a reverse-proxy frontend for HTTP access to your database service. + +## Features + +- **Database Composition** + Leverages the `cmp-db-docker` role to stand up your containerized database (PostgreSQL, MariaDB, etc.) with backups and user management. + +- **Reverse Proxy** + Includes the `srv-web-proxy-domain` role to configure a proxy (e.g. nginx) for routing HTTP(S) traffic to your database UI or management endpoint. \ No newline at end of file diff --git a/roles/cmp-db-docker-proxy/meta/main.yml b/roles/cmp-db-docker-proxy/meta/main.yml new file mode 100644 index 00000000..d06d1003 --- /dev/null +++ b/roles/cmp-db-docker-proxy/meta/main.yml @@ -0,0 +1,15 @@ +galaxy_info: + author: "Kevin Veen-Birkenbach" + description: > + Extends cmp-db-docker by adding an HTTP reverse proxy via srv-web-proxy-domain. + company: | + Kevin Veen-Birkenbach + Consulting & Coaching Solutions + https://www.veen.world + license: "CyMaIS NonCommercial License (CNCL)" + license_url: "https://s.veen.world/cncl" + galaxy_tags: + - docker + - database + - proxy + - compose \ No newline at end of file diff --git a/roles/cmp-db-docker-proxy/tasks/main.yml b/roles/cmp-db-docker-proxy/tasks/main.yml new file mode 100644 index 00000000..14a3320c --- /dev/null +++ b/roles/cmp-db-docker-proxy/tasks/main.yml @@ -0,0 +1,10 @@ +- name: "load docker and db for {{application_id}}" + include_role: + name: cmp-db-docker + +- name: "include role srv-web-proxy-domain for {{application_id}}" + include_role: + name: srv-web-proxy-domain + vars: + domain: "{{ domains | get_domain(application_id) }}" + http_port: "{{ ports.localhost.http[application_id] }}" \ No newline at end of file diff --git a/roles/cmp-docker-proxy/README.md b/roles/cmp-docker-proxy/README.md new file mode 100644 index 00000000..49f74d6e --- /dev/null +++ b/roles/cmp-docker-proxy/README.md @@ -0,0 +1,11 @@ +# Docker Compose with Web Proxy + +This role combines the standard Docker Compose setup with a reverse-proxy for any application. + +## Features + +- **Docker Compose** + Brings up containers, networks, and volumes via the `docker-compose` role. + +- **Reverse Proxy** + Uses the `srv-web-proxy-domain` role to expose your application under a custom domain and port. diff --git a/roles/cmp-docker-proxy/meta/main.yml b/roles/cmp-docker-proxy/meta/main.yml new file mode 100644 index 00000000..061d99e5 --- /dev/null +++ b/roles/cmp-docker-proxy/meta/main.yml @@ -0,0 +1,15 @@ +galaxy_info: + author: "Kevin Veen-Birkenbach" + description: > + Combines the docker-compose role with srv-web-proxy-domain to + deploy applications behind a reverse proxy. + company: | + Kevin Veen-Birkenbach + Consulting & Coaching Solutions + https://www.veen.world + license: "CyMaIS NonCommercial License (CNCL)" + license_url: "https://s.veen.world/cncl" + galaxy_tags: + - docker + - compose + - proxy \ No newline at end of file diff --git a/roles/cmp-docker-proxy/tasks/main.yml b/roles/cmp-docker-proxy/tasks/main.yml new file mode 100644 index 00000000..65de44c8 --- /dev/null +++ b/roles/cmp-docker-proxy/tasks/main.yml @@ -0,0 +1,10 @@ +- name: "include docker-compose role" + include_role: + name: docker-compose + +- name: "include role srv-web-proxy-domain for {{application_id}}" + include_role: + name: srv-web-proxy-domain + vars: + domain: "{{ domains | get_domain(application_id) }}" + http_port: "{{ ports.localhost.http[application_id] }}" \ No newline at end of file diff --git a/roles/docker-compose/defaults/main.yml b/roles/docker-compose/defaults/main.yml index 327439e3..dbb9de5f 100644 --- a/roles/docker-compose/defaults/main.yml +++ b/roles/docker-compose/defaults/main.yml @@ -1,2 +1,3 @@ docker_compose_skipp_file_creation: false # If set to true the file creation will be skipped -docker_repository: false # Activates docker repository download and routine \ No newline at end of file +docker_repository: false # Activates docker repository download and routine +docker_compose_flush_handlers: false # Set to true in the vars/main.yml of the including role to autoflush after docker compose routine \ No newline at end of file diff --git a/roles/docker-compose/tasks/main.yml b/roles/docker-compose/tasks/main.yml index 9b1dd4bc..7ae509b5 100644 --- a/roles/docker-compose/tasks/main.yml +++ b/roles/docker-compose/tasks/main.yml @@ -7,7 +7,7 @@ # This could lead to problems in docker-compose directories which are based on a git repository # @todo Verify that this isn't the case. E.g. in accounting -- name: "Create all docker-compose directories (including parent directories)" +- name: "Create all docker-compose directories (including parent directories) for '{{ application_id }}'" file: path: "{{ item.value }}" state: directory @@ -18,4 +18,8 @@ when: docker_repository | bool - include_tasks: "files.yml" - when: not docker_compose_skipp_file_creation | bool \ No newline at end of file + when: not docker_compose_skipp_file_creation | bool + +- name: "flush database, docker and proxy for '{{ application_id }}'" + meta: flush_handlers + when: docker_compose_flush_handlers is not defined diff --git a/roles/srv-web-proxy-core/templates/vhost/basic.conf.j2 b/roles/srv-web-proxy-core/templates/vhost/basic.conf.j2 index fb096971..0ba87ed6 100644 --- a/roles/srv-web-proxy-core/templates/vhost/basic.conf.j2 +++ b/roles/srv-web-proxy-core/templates/vhost/basic.conf.j2 @@ -8,9 +8,9 @@ server {% include 'roles/srv-web-injector-compose/templates/global.includes.conf.j2'%} - {% if nginx_docker_reverse_proxy_extra_configuration is defined %} + {% if proxy_extra_configuration is defined %} {# Additional Domain Specific Configuration #} - {{nginx_docker_reverse_proxy_extra_configuration}} + {{proxy_extra_configuration}} {% endif %} {% include 'roles/net-letsencrypt/templates/ssl_header.j2' %} diff --git a/roles/web-app-akaunting/tasks/main.yml b/roles/web-app-akaunting/tasks/main.yml index 049a9ec4..8f2ac86e 100644 --- a/roles/web-app-akaunting/tasks/main.yml +++ b/roles/web-app-akaunting/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: "include tasks update-repository-with-files.yml" include_tasks: utils/update-repository-with-files.yml diff --git a/roles/web-app-baserow/tasks/main.yml b/roles/web-app-baserow/tasks/main.yml index ecfcfe8a..7784973b 100644 --- a/roles/web-app-baserow/tasks/main.yml +++ b/roles/web-app-baserow/tasks/main.yml @@ -1,11 +1,4 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" \ No newline at end of file + name: cmp-db-docker-proxy \ No newline at end of file diff --git a/roles/web-app-baserow/vars/main.yml b/roles/web-app-baserow/vars/main.yml index 7b7d7e64..b59afb70 100644 --- a/roles/web-app-baserow/vars/main.yml +++ b/roles/web-app-baserow/vars/main.yml @@ -1,5 +1,3 @@ application_id: "baserow" database_password: "{{ baserow_database_password }}" -database_type: "postgres" -domain: "{{ domains | get_domain(application_id) }}" -http_port: "{{ ports.localhost.http[application_id] }}" \ No newline at end of file +database_type: "postgres" \ No newline at end of file diff --git a/roles/web-app-coturn/tasks/main.yml b/roles/web-app-coturn/tasks/main.yml index 773d215b..15a8c7ac 100644 --- a/roles/web-app-coturn/tasks/main.yml +++ b/roles/web-app-coturn/tasks/main.yml @@ -1,11 +1,4 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-app-discourse/tasks/main.yml b/roles/web-app-discourse/tasks/main.yml index 2934956c..629cebc9 100644 --- a/roles/web-app-discourse/tasks/main.yml +++ b/roles/web-app-discourse/tasks/main.yml @@ -10,29 +10,9 @@ state: present when: run_once_docker_discourse is not defined -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - when: run_once_docker_discourse is not defined - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" - when: run_once_docker_discourse is not defined - -- name: add docker-compose.yml - template: - src: docker-compose.yml.j2 - dest: "{{docker_compose.directories.instance}}docker-compose.yml" - notify: - - docker compose up - when: run_once_docker_discourse is not defined - -- name: flush, to recreate discourse docker compose - meta: flush_handlers + name: cmp-db-docker-proxy when: run_once_docker_discourse is not defined - name: pull docker repository diff --git a/roles/web-app-discourse/vars/main.yml b/roles/web-app-discourse/vars/main.yml index c0c6a15a..82dbcc98 100644 --- a/roles/web-app-discourse/vars/main.yml +++ b/roles/web-app-discourse/vars/main.yml @@ -2,4 +2,5 @@ application_id: "discourse" database_password: "{{ applications[application_id].credentials.database_password }}" database_type: "postgres" docker_repository_directory : "{{docker_compose.directories.services}}{{applications[application_id].repository}}/" -discourse_application_yml_destination: "{{docker_repository_directory }}containers/{{applications[application_id].container}}.yml" \ No newline at end of file +discourse_application_yml_destination: "{{docker_repository_directory }}containers/{{applications[application_id].container}}.yml" +docker_compose_flush_handlers: false \ No newline at end of file diff --git a/roles/web-app-espocrm/tasks/main.yml b/roles/web-app-espocrm/tasks/main.yml index da5f1d6a..eb94f285 100644 --- a/roles/web-app-espocrm/tasks/main.yml +++ b/roles/web-app-espocrm/tasks/main.yml @@ -1,18 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "Include setup for domain '{{ domain }}'" - include_role: - name: srv-web-proxy-domain - vars: - ws_path: "/ws" - ws_port: "{{ ports.localhost.websocket[application_id] }}" - client_max_body_size: "100m" - vhost_flavour: "ws_generic" - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: Set OIDC scopes in EspoCRM config (inside web container) ansible.builtin.shell: | diff --git a/roles/web-app-espocrm/vars/main.yml b/roles/web-app-espocrm/vars/main.yml index fdf94800..2875c609 100644 --- a/roles/web-app-espocrm/vars/main.yml +++ b/roles/web-app-espocrm/vars/main.yml @@ -1,3 +1,6 @@ -application_id: "espocrm" -# EspoCRM uses MySQL/MariaDB -database_type: "mariadb" \ No newline at end of file +application_id: "espocrm" +database_type: "mariadb" +ws_path: "/ws" +ws_port: "{{ ports.localhost.websocket[application_id] }}" +client_max_body_size: "100m" +vhost_flavour: "ws_generic" \ No newline at end of file diff --git a/roles/web-app-friendica/tasks/main.yml b/roles/web-app-friendica/tasks/main.yml index c1a2f917..456064ae 100644 --- a/roles/web-app-friendica/tasks/main.yml +++ b/roles/web-app-friendica/tasks/main.yml @@ -1,7 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker + name: cmp-db-docker-proxy - name: "create {{ friendica_host_ldap_config }}" template: @@ -14,13 +14,6 @@ notify: docker compose up when: applications | is_feature_enabled('ldap',application_id) -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" - - name: Build friendica_addons based on features set_fact: friendica_addons: >- diff --git a/roles/web-app-funkwhale/tasks/main.yml b/roles/web-app-funkwhale/tasks/main.yml index b141bcd2..60b18bb4 100644 --- a/roles/web-app-funkwhale/tasks/main.yml +++ b/roles/web-app-funkwhale/tasks/main.yml @@ -1,13 +1,6 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-app-funkwhale/vars/main.yml b/roles/web-app-funkwhale/vars/main.yml index f95b8270..229ded7a 100644 --- a/roles/web-app-funkwhale/vars/main.yml +++ b/roles/web-app-funkwhale/vars/main.yml @@ -1,5 +1,5 @@ application_id: "funkwhale" -nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 512M;" +proxy_extra_configuration: "client_max_body_size 512M;" database_type: "postgres" funkwhale_media_root: "/srv/funkwhale/data/" funkwhale_static_root: "{{funkwhale_media_root}}static" diff --git a/roles/web-app-fusiondirectory/tasks/main.yml b/roles/web-app-fusiondirectory/tasks/main.yml index 6d164a63..e1332819 100644 --- a/roles/web-app-fusiondirectory/tasks/main.yml +++ b/roles/web-app-fusiondirectory/tasks/main.yml @@ -1,10 +1,3 @@ -- name: "include docker-compose role" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-app-gitea/tasks/main.yml b/roles/web-app-gitea/tasks/main.yml index 4dbc272f..e22605f0 100644 --- a/roles/web-app-gitea/tasks/main.yml +++ b/roles/web-app-gitea/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: Wait for Gitea HTTP endpoint wait_for: diff --git a/roles/web-app-gitlab/tasks/main.yml b/roles/web-app-gitlab/tasks/main.yml index 773d215b..15a8c7ac 100644 --- a/roles/web-app-gitlab/tasks/main.yml +++ b/roles/web-app-gitlab/tasks/main.yml @@ -1,11 +1,4 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-app-jenkins/tasks/main.yml b/roles/web-app-jenkins/tasks/main.yml index b3e16b88..46fcb632 100644 --- a/roles/web-app-jenkins/tasks/main.yml +++ b/roles/web-app-jenkins/tasks/main.yml @@ -1,11 +1,4 @@ -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-app-joomla/tasks/main.yml b/roles/web-app-joomla/tasks/main.yml index 2eb75c82..07393343 100644 --- a/roles/web-app-joomla/tasks/main.yml +++ b/roles/web-app-joomla/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy loop: "{{ domains }}" loop_control: loop_var: domain \ No newline at end of file diff --git a/roles/web-app-keycloak/tasks/main.yml b/roles/web-app-keycloak/tasks/main.yml index c1e394a2..8f3e11d0 100644 --- a/roles/web-app-keycloak/tasks/main.yml +++ b/roles/web-app-keycloak/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: "create directory {{import_directory_host}}" file: diff --git a/roles/web-app-lam/tasks/main.yml b/roles/web-app-lam/tasks/main.yml index 6d164a63..0b6aac33 100644 --- a/roles/web-app-lam/tasks/main.yml +++ b/roles/web-app-lam/tasks/main.yml @@ -1,10 +1,3 @@ -- name: "include docker-compose role" +- name: "include docker and reverse proxy for {{ application_id }} " include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy diff --git a/roles/web-app-libretranslate/tasks/main.yml b/roles/web-app-libretranslate/tasks/main.yml index 8be0da97..9578044b 100644 --- a/roles/web-app-libretranslate/tasks/main.yml +++ b/roles/web-app-libretranslate/tasks/main.yml @@ -1,24 +1,6 @@ ---- - - - - -- name: "include docker-compose role" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: docker-compose - when: run_once_docker_libretranslate is not defined - - - - - - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy when: run_once_docker_libretranslate is not defined - name: run the libretranslate tasks once diff --git a/roles/web-app-listmonk/tasks/main.yml b/roles/web-app-listmonk/tasks/main.yml index 929edb84..a9c765bc 100644 --- a/roles/web-app-listmonk/tasks/main.yml +++ b/roles/web-app-listmonk/tasks/main.yml @@ -1,23 +1,16 @@ --- -- name: "load docker and db for {{application_id}}" - include_role: - name: cmp-db-docker - -- name: Set nginx_docker_reverse_proxy_extra_configuration based on applications[application_id].public_api_activated +- name: Set proxy_extra_configuration based on applications[application_id].public_api_activated set_fact: - nginx_docker_reverse_proxy_extra_configuration: >- + proxy_extra_configuration: >- {% if not applications[application_id].public_api_activated %} {{ lookup('file', '{{ role_path }}/files/deactivate-public-api.conf') }} {% else %} "" {% endif %} -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" +- name: "load docker, db and proxy for {{application_id}}" + include_role: + name: cmp-db-docker-proxy - name: add config.toml template: @@ -25,6 +18,8 @@ dest: "{{docker_compose.directories.config}}config.toml" notify: docker compose up +- meta: flush_handlers + - name: Check if listmonk database is already initialized command: docker compose exec -T {{database_host}} psql -U {{database_username}} -d {{database_name}} -c "\dt" register: db_tables diff --git a/roles/web-app-mailu/tasks/main.yml b/roles/web-app-mailu/tasks/main.yml index 8f358995..57f2dacb 100644 --- a/roles/web-app-mailu/tasks/main.yml +++ b/roles/web-app-mailu/tasks/main.yml @@ -1,16 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - when: run_once_docker_mailu is not defined - -- name: "Include role srv-web-proxy-domain for {{ application_id }}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" - nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 31M;" + name: cmp-db-docker-proxy when: run_once_docker_mailu is not defined - name: "Include the srv-web-proxy-tls-deploy role" diff --git a/roles/web-app-mailu/vars/main.yml b/roles/web-app-mailu/vars/main.yml index 630377b0..56a7e61b 100644 --- a/roles/web-app-mailu/vars/main.yml +++ b/roles/web-app-mailu/vars/main.yml @@ -1,14 +1,15 @@ -application_id: "mailu" +application_id: "mailu" # Database Configuration -database_password: "{{applications.mailu.credentials.database_password}}" -database_type: "mariadb" +database_password: "{{applications.mailu.credentials.database_password}}" +database_type: "mariadb" -cert_mount_directory: "{{docker_compose.directories.volumes}}certs/" +cert_mount_directory: "{{docker_compose.directories.volumes}}certs/" # Use dedicated source for oidc if activated # @see https://github.com/heviat/Mailu-OIDC/tree/2024.06 -docker_source: "{{ 'ghcr.io/heviat' if applications | is_feature_enabled('oidc',application_id) else 'ghcr.io/mailu' }}" +docker_source: "{{ 'ghcr.io/heviat' if applications | is_feature_enabled('oidc',application_id) else 'ghcr.io/mailu' }}" -domain: "{{ domains | get_domain(application_id) }}" -http_port: "{{ ports.localhost.http[application_id] }}" \ No newline at end of file +domain: "{{ domains | get_domain(application_id) }}" +http_port: "{{ ports.localhost.http[application_id] }}" +proxy_extra_configuration: "client_max_body_size 31M;" \ No newline at end of file diff --git a/roles/web-app-matomo/tasks/constructor.yml b/roles/web-app-matomo/tasks/constructor.yml index 70f0958c..4659a285 100644 --- a/roles/web-app-matomo/tasks/constructor.yml +++ b/roles/web-app-matomo/tasks/constructor.yml @@ -1,13 +1,6 @@ -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: flush docker service meta: flush_handlers diff --git a/roles/web-app-mediawiki/tasks/main.yml b/roles/web-app-mediawiki/tasks/main.yml index 5284a0de..bf3b2c14 100644 --- a/roles/web-app-mediawiki/tasks/main.yml +++ b/roles/web-app-mediawiki/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: add docker-compose.yml template: src=docker-compose.yml.j2 dest={{docker_compose.directories.instance}}docker-compose.yml diff --git a/roles/web-app-mobilizon/tasks/main.yml b/roles/web-app-mobilizon/tasks/main.yml index 8da77c94..12a96a5b 100644 --- a/roles/web-app-mobilizon/tasks/main.yml +++ b/roles/web-app-mobilizon/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: add config.exs template: diff --git a/roles/web-app-moodle/tasks/main.yml b/roles/web-app-moodle/tasks/main.yml index a166eedc..a9e32221 100644 --- a/roles/web-app-moodle/tasks/main.yml +++ b/roles/web-app-moodle/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: Wait until the Moodle container is healthy shell: docker inspect --format '{% raw %}{{.State.Health.Status}}{% endraw %}' {{ container_name }} diff --git a/roles/web-app-mybb/tasks/setup-domain.yml b/roles/web-app-mybb/tasks/setup-domain.yml index b2165246..4e025fbf 100644 --- a/roles/web-app-mybb/tasks/setup-domain.yml +++ b/roles/web-app-mybb/tasks/setup-domain.yml @@ -10,4 +10,4 @@ dest: "{{nginx.directories.http.servers}}{{domains | get_domain(application_id)}}.conf" notify: restart nginx vars: - nginx_docker_reverse_proxy_extra_configuration: "sub_filter '{{source_domain}}' '{{domains | get_domain(application_id)}}';" + proxy_extra_configuration: "sub_filter '{{source_domain}}' '{{domains | get_domain(application_id)}}';" diff --git a/roles/web-app-openproject/tasks/main.yml b/roles/web-app-openproject/tasks/main.yml index 3530c630..8c66d847 100644 --- a/roles/web-app-openproject/tasks/main.yml +++ b/roles/web-app-openproject/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: "Create {{openproject_plugins_folder}}" file: diff --git a/roles/web-app-pgadmin/tasks/main.yml b/roles/web-app-pgadmin/tasks/main.yml index 95caa68a..55b1486b 100644 --- a/roles/web-app-pgadmin/tasks/main.yml +++ b/roles/web-app-pgadmin/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "include docker-compose role" - include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" +- name: "include docker and reverse proxy for '{{ application_id }}'" + include_role: + name: cmp-docker-proxy - name: "configure pgadmin servers" include_tasks: configuration.yml diff --git a/roles/web-app-phpldapadmin/tasks/main.yml b/roles/web-app-phpldapadmin/tasks/main.yml index 6d164a63..f62a28c8 100644 --- a/roles/web-app-phpldapadmin/tasks/main.yml +++ b/roles/web-app-phpldapadmin/tasks/main.yml @@ -1,10 +1,3 @@ -- name: "include docker-compose role" +- name: "include docker and reverse proxy for '{{ application_id }}'" include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy \ No newline at end of file diff --git a/roles/web-app-phpmyadmin/tasks/main.yml b/roles/web-app-phpmyadmin/tasks/main.yml index 36e1022a..b4a31c8b 100644 --- a/roles/web-app-phpmyadmin/tasks/main.yml +++ b/roles/web-app-phpmyadmin/tasks/main.yml @@ -1,11 +1,4 @@ --- -- name: "include docker-compose role" +- name: "include docker and reverse proxy for '{{ application_id }}'" include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy diff --git a/roles/web-app-pixelfed/tasks/main.yml b/roles/web-app-pixelfed/tasks/main.yml index 773d215b..15a8c7ac 100644 --- a/roles/web-app-pixelfed/tasks/main.yml +++ b/roles/web-app-pixelfed/tasks/main.yml @@ -1,11 +1,4 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-app-pixelfed/vars/main.yml b/roles/web-app-pixelfed/vars/main.yml index f1427937..b3c56a48 100644 --- a/roles/web-app-pixelfed/vars/main.yml +++ b/roles/web-app-pixelfed/vars/main.yml @@ -1,3 +1,3 @@ application_id: "pixelfed" -nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size 512M;" +proxy_extra_configuration: "client_max_body_size 512M;" database_type: "mariadb" diff --git a/roles/web-app-portfolio/tasks/main.yml b/roles/web-app-portfolio/tasks/main.yml index dd986cc0..c4ec68fd 100644 --- a/roles/web-app-portfolio/tasks/main.yml +++ b/roles/web-app-portfolio/tasks/main.yml @@ -1,16 +1,8 @@ --- -- name: "include docker-compose role" +- name: "include docker and reverse proxy for '{{ application_id }}'" include_role: - name: docker-compose - when: run_once_docker_portfolio is not defined - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy when: run_once_docker_portfolio is not defined - name: "Check if host-specific config.yaml exists in {{ config_inventory_path }}" diff --git a/roles/web-app-presentation/tasks/main.yml b/roles/web-app-presentation/tasks/main.yml index 21b00d16..6ac930f0 100644 --- a/roles/web-app-presentation/tasks/main.yml +++ b/roles/web-app-presentation/tasks/main.yml @@ -14,16 +14,9 @@ command: pkgmgr path cymais register: path_cymais_output -- name: "include docker-compose role" +- name: "include docker and reverse proxy for '{{ application_id }}'" include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy # Hack because it wasn't possible to fix an handler bug in pkgmgr install - name: „Trigger“ docker compose up diff --git a/roles/web-app-pretix/tasks/main.yml b/roles/web-app-pretix/tasks/main.yml index b22f375c..f5e62ee6 100644 --- a/roles/web-app-pretix/tasks/main.yml +++ b/roles/web-app-pretix/tasks/main.yml @@ -1,24 +1,7 @@ --- - - - - -- name: "include docker-compose role" +- name: "load docker and db for {{application_id}}" include_role: - name: docker-compose - when: run_once_docker_pretix is not defined - - - - - - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker when: run_once_docker_pretix is not defined - name: run the pretix tasks once diff --git a/roles/web-app-snipe-it/tasks/main.yml b/roles/web-app-snipe-it/tasks/main.yml index ad5ee326..eecac40c 100644 --- a/roles/web-app-snipe-it/tasks/main.yml +++ b/roles/web-app-snipe-it/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: "Configure Snipe-IT LDAP settings" diff --git a/roles/web-app-sphinx/tasks/main.yml b/roles/web-app-sphinx/tasks/main.yml index f5930484..e1a73f64 100644 --- a/roles/web-app-sphinx/tasks/main.yml +++ b/roles/web-app-sphinx/tasks/main.yml @@ -11,16 +11,9 @@ command: pkgmgr path cymais-sphinx register: path_cymais_sphinx_output -- name: "include docker-compose role" +- name: "include docker and reverse proxy for '{{ application_id }}'" include_role: - name: docker-compose - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy # Hack because it wasn't possible to fix an handler bug in pkgmgr install - name: „Trigger“ docker compose up diff --git a/roles/web-app-syncope/templates/proxy.conf b/roles/web-app-syncope/templates/proxy.conf index eecf3818..da0acb5d 100644 --- a/roles/web-app-syncope/templates/proxy.conf +++ b/roles/web-app-syncope/templates/proxy.conf @@ -8,9 +8,9 @@ server {% include 'roles/srv-web-injector-compose/templates/global.includes.conf.j2'%} - {% if nginx_docker_reverse_proxy_extra_configuration is defined %} + {% if proxy_extra_configuration is defined %} {# Additional Domain Specific Configuration #} - {{nginx_docker_reverse_proxy_extra_configuration}} + {{proxy_extra_configuration}} {% endif %} {% include 'roles/net-letsencrypt/templates/ssl_header.j2' %} diff --git a/roles/web-app-taiga/tasks/main.yml b/roles/web-app-taiga/tasks/main.yml index bf2b41ab..3a702239 100644 --- a/roles/web-app-taiga/tasks/main.yml +++ b/roles/web-app-taiga/tasks/main.yml @@ -1,14 +1,7 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy - name: "copy templates {{ settings_files }} for taiga-contrib-oidc-auth" template: diff --git a/roles/web-app-wordpress/tasks/main.yml b/roles/web-app-wordpress/tasks/main.yml index 2c15f434..1f879d61 100644 --- a/roles/web-app-wordpress/tasks/main.yml +++ b/roles/web-app-wordpress/tasks/main.yml @@ -10,7 +10,7 @@ loop_control: loop_var: domain vars: - nginx_docker_reverse_proxy_extra_configuration: "client_max_body_size {{ wordpress_max_upload_size }};" + proxy_extra_configuration: "client_max_body_size {{ wordpress_max_upload_size }};" http_port: "{{ ports.localhost.http[application_id] }}" - name: "Transfering upload.ini to {{ docker_compose.directories.instance }}" diff --git a/roles/web-app-yourls/tasks/main.yml b/roles/web-app-yourls/tasks/main.yml index 0704f0af..94075d9c 100644 --- a/roles/web-app-yourls/tasks/main.yml +++ b/roles/web-app-yourls/tasks/main.yml @@ -1,12 +1,5 @@ --- -- name: "load docker and db for {{application_id}}" +- name: "load docker, db and proxy for {{application_id}}" include_role: - name: cmp-db-docker - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-db-docker-proxy diff --git a/roles/web-svc-simpleicons/tasks/main.yml b/roles/web-svc-simpleicons/tasks/main.yml index b1cf259e..ed5537c2 100644 --- a/roles/web-svc-simpleicons/tasks/main.yml +++ b/roles/web-svc-simpleicons/tasks/main.yml @@ -1,15 +1,7 @@ --- -- name: "include docker-compose role" +- name: "include docker and reverse proxy for '{{ application_id }}'" include_role: - name: docker-compose - when: run_once_docker_simpleicons is not defined - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" + name: cmp-docker-proxy when: run_once_docker_simpleicons is not defined - name: "Copy '{{ application_id }}' files" diff --git a/templates/roles/web-app/tasks/main.yml.j2 b/templates/roles/web-app/tasks/main.yml.j2 index 9db96646..124a7a42 100644 --- a/templates/roles/web-app/tasks/main.yml.j2 +++ b/templates/roles/web-app/tasks/main.yml.j2 @@ -1,36 +1,21 @@ --- - {% if database_type | bool %} - {% raw %} -- name: "load docker and db for {{application_id}}" +# Default: Loading; Docker, Database and Reverse Proxy +- name: "load docker, db and proxy for '{{application_id}}'" include_role: - name: cmp-db-docker + name: cmp-db-docker-proxy when: run_once_docker_{% endraw %}{{ application_id }}{% raw %} is not defined - {% endraw %} - {% else %} - {% raw %} -- name: "include docker-compose role" +- name: "load docker, proxy for '{{application_id}}'" include_role: - name: docker-compose + name: cmp-db-docker-proxy when: run_once_docker_{% endraw %}{{ application_id }}{% raw %} is not defined {% endraw %} - {% endif %} - {% raw %} - -- name: "include role srv-web-proxy-domain for {{application_id}}" - include_role: - name: srv-web-proxy-domain - vars: - domain: "{{ domains | get_domain(application_id) }}" - http_port: "{{ ports.localhost.http[application_id] }}" - when: run_once_docker_{% endraw %}{{ application_id }}{% raw %} is not defined - - name: run the {% endraw %}{{ application_id }}{% raw %} tasks once set_fact: run_once_docker_{% endraw %}{{ application_id }}{% raw %}: true