Renamed webserver roles to more speakable names

This commit is contained in:
Kevin Veen-Birkenbach 2025-08-20 08:54:17 +02:00
parent 9cfb8f3a60
commit a4f39ac732
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
101 changed files with 147 additions and 147 deletions

View File

@ -8,4 +8,4 @@ This role builds on `cmp-db-docker` by adding a reverse-proxy frontend for HTTP
Leverages the `cmp-db-docker` role to stand up your containerized database (PostgreSQL, MariaDB, etc.) with backups and user management. Leverages the `cmp-db-docker` role to stand up your containerized database (PostgreSQL, MariaDB, etc.) with backups and user management.
- **Reverse Proxy** - **Reverse Proxy**
Includes the `srv-proxy-6-6-domain` role to configure a proxy (e.g. nginx) for routing HTTP(S) traffic to your database UI or management endpoint. Includes the `srv-domain-provision` role to configure a proxy (e.g. nginx) for routing HTTP(S) traffic to your database UI or management endpoint.

View File

@ -1,7 +1,7 @@
galaxy_info: galaxy_info:
author: "Kevin Veen-Birkenbach" author: "Kevin Veen-Birkenbach"
description: > description: >
Extends cmp-db-docker by adding an HTTP reverse proxy via srv-proxy-6-6-domain. Extends cmp-db-docker by adding an HTTP reverse proxy via srv-domain-provision.
company: | company: |
Kevin Veen-Birkenbach Kevin Veen-Birkenbach
Consulting & Coaching Solutions Consulting & Coaching Solutions

View File

@ -8,9 +8,9 @@
include_role: include_role:
name: cmp-db-docker name: cmp-db-docker
- name: "For '{{ application_id }}': include role srv-proxy-6-6-domain" - name: "For '{{ application_id }}': include role srv-domain-provision"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
vars: vars:
domain: "{{ domains | get_domain(application_id) }}" domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"

View File

@ -8,4 +8,4 @@ This role combines the standard Docker Compose setup with a reverse-proxy for an
Brings up containers, networks, and volumes via the `docker-compose` role. Brings up containers, networks, and volumes via the `docker-compose` role.
- **Reverse Proxy** - **Reverse Proxy**
Uses the `srv-proxy-6-6-domain` role to expose your application under a custom domain and port. Uses the `srv-domain-provision` role to expose your application under a custom domain and port.

View File

@ -1,7 +1,7 @@
galaxy_info: galaxy_info:
author: "Kevin Veen-Birkenbach" author: "Kevin Veen-Birkenbach"
description: > description: >
Combines the docker-compose role with srv-proxy-6-6-domain to Combines the docker-compose role with srv-domain-provision to
deploy applications behind a reverse proxy. deploy applications behind a reverse proxy.
company: | company: |
Kevin Veen-Birkenbach Kevin Veen-Birkenbach

View File

@ -1,9 +1,9 @@
# run_once_cmp_docker_proxy: deactivated # run_once_cmp_docker_proxy: deactivated
# Load the proxy first, so that openresty handlers are flushed before the main docker compose # Load the proxy first, so that openresty handlers are flushed before the main docker compose
- name: "For '{{ application_id }}': include role srv-proxy-6-6-domain" - name: "For '{{ application_id }}': include role srv-domain-provision"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
vars: vars:
domain: "{{ domains | get_domain(application_id) }}" domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"

View File

@ -20,7 +20,7 @@ To offer a centralized, extensible system for managing containerized application
- **Reset Logic:** Cleans previous Compose project files and data when `MODE_RESET` is enabled. - **Reset Logic:** Cleans previous Compose project files and data when `MODE_RESET` is enabled.
- **Handlers for Runtime Control:** Automatically builds, sets up, or restarts containers based on handlers. - **Handlers for Runtime Control:** Automatically builds, sets up, or restarts containers based on handlers.
- **Template-ready Service Files:** Predefined service base and health check templates. - **Template-ready Service Files:** Predefined service base and health check templates.
- **Integration Support:** Compatible with `srv-proxy-7-4-core` and other Infinito.Nexus service roles. - **Integration Support:** Compatible with `srv-proxy-core` and other Infinito.Nexus service roles.
## Administration Tips ## Administration Tips

View File

@ -1,10 +1,10 @@
# Role: srv-web-7-6-composer # Role: srv-composer
This Ansible role composes and orchestrates all necessary HTTPS-layer tasks and HTML-content injections for your webserver domains. It integrates two key sub-roles into a unified workflow: This Ansible role composes and orchestrates all necessary HTTPS-layer tasks and HTML-content injections for your webserver domains. It integrates two key sub-roles into a unified workflow:
1. **`sys-srv-web-inj-compose`** 1. **`sys-srv-web-inj-compose`**
Injects global HTML snippets (CSS, Matomo tracking, iFrame notifier, custom JavaScript) into responses using Nginx `sub_filter`. Injects global HTML snippets (CSS, Matomo tracking, iFrame notifier, custom JavaScript) into responses using Nginx `sub_filter`.
2. **`srv-web-6-6-tls-core`** 2. **`srv-tls-core`**
Handles issuing, renewing, and managing TLS certificates via ACME/Certbot. Handles issuing, renewing, and managing TLS certificates via ACME/Certbot.
By combining encryption setup with content enhancements, this role streamlines domain provisioning for secure, fully-featured HTTP/HTTPS delivery. By combining encryption setup with content enhancements, this role streamlines domain provisioning for secure, fully-featured HTTP/HTTPS delivery.
@ -16,7 +16,7 @@ By combining encryption setup with content enhancements, this role streamlines d
* **Content Injection** * **Content Injection**
Adds global theming, analytics, and custom scripts before `</head>` and tracking noscript tags before `</body>`. Adds global theming, analytics, and custom scripts before `</head>` and tracking noscript tags before `</body>`.
* **Certificate Management** * **Certificate Management**
Automates cert issuance and renewal via `srv-web-6-6-tls-core`. Automates cert issuance and renewal via `srv-tls-core`.
* **Idempotent Workflow** * **Idempotent Workflow**
Ensures each component runs only once per domain. Ensures each component runs only once per domain.
* **Simplified Playbooks** * **Simplified Playbooks**

View File

@ -27,4 +27,4 @@ galaxy_info:
- orchestration - orchestration
repository: "https://s.infinito.nexus/code" repository: "https://s.infinito.nexus/code"
issue_tracker_url: "https://s.infinito.nexus/issues" issue_tracker_url: "https://s.infinito.nexus/issues"
documentation: "https://s.infinito.nexus/code/roles/srv-web-7-6-composer" documentation: "https://s.infinito.nexus/code/roles/srv-composer"

View File

@ -0,0 +1,9 @@
# run_once_srv_composer: deactivated
- name: "include role sys-srv-web-inj-compose for '{{ domain }}'"
include_role:
name: sys-srv-web-inj-compose
- name: "include role srv-tls-core for '{{ domain }}'"
include_role:
name: srv-tls-core

View File

@ -18,4 +18,4 @@ galaxy_info:
- performance - performance
repository: "https://s.infinito.nexus/code" repository: "https://s.infinito.nexus/code"
issue_tracker_url: "https://s.infinito.nexus/issues" issue_tracker_url: "https://s.infinito.nexus/issues"
documentation: "https://s.infinito.nexus/code/roles/srv-web-7-4-core" documentation: "https://s.infinito.nexus/code/roles/srv-core"

View File

@ -2,4 +2,4 @@
- block: - block:
- include_tasks: 01_core.yml - include_tasks: 01_core.yml
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined

View File

@ -6,11 +6,11 @@ This role bootstraps **per-domain Nginx configuration**: it requests TLS certifi
## Overview ## Overview
A higher-level orchestration wrapper, *srv-proxy-6-6-domain* ties together several lower-level roles: A higher-level orchestration wrapper, *srv-domain-provision* ties together several lower-level roles:
1. **`sys-srv-web-inj-compose`** applies global tweaks and includes. 1. **`sys-srv-web-inj-compose`** applies global tweaks and includes.
2. **`srv-web-6-6-tls-core`** obtains Lets Encrypt certificates. 2. **`srv-tls-core`** obtains Lets Encrypt certificates.
3. **Domain template deployment** copies a Jinja2 vHost from *srv-proxy-7-4-core*. 3. **Domain template deployment** copies a Jinja2 vHost from *srv-proxy-core*.
4. **`web-app-oauth2-proxy`** *(optional)* protects the site with OAuth2. 4. **`web-app-oauth2-proxy`** *(optional)* protects the site with OAuth2.
The result is a complete, reproducible domain rollout in a single playbook task. The result is a complete, reproducible domain rollout in a single playbook task.

View File

@ -2,4 +2,4 @@
vhost_flavour: "basic" # valid: basic | ws_generic vhost_flavour: "basic" # valid: basic | ws_generic
# build the full template path from the flavour # build the full template path from the flavour
vhost_template_src: "roles/srv-proxy-7-4-core/templates/vhost/{{ vhost_flavour }}.conf.j2" vhost_template_src: "roles/srv-proxy-core/templates/vhost/{{ vhost_flavour }}.conf.j2"

View File

@ -1,4 +1,4 @@
# roles/srv-proxy-6-6-domain/tasks/02_enable_cf_dev_mode.yml # roles/srv-domain-provision/tasks/02_enable_cf_dev_mode.yml
--- ---
# Enables Cloudflare Development Mode (bypasses cache for ~3 hours). # Enables Cloudflare Development Mode (bypasses cache for ~3 hours).
# Uses the same auth token as in 01_cleanup.yml: CLOUDFLARE_API_TOKEN # Uses the same auth token as in 01_cleanup.yml: CLOUDFLARE_API_TOKEN

View File

@ -1,10 +1,10 @@
- block: - block:
- name: Include dependency 'srv-proxy-7-4-core' - name: Include dependency 'srv-proxy-core'
include_role: include_role:
name: srv-proxy-7-4-core name: srv-proxy-core
when: run_once_srv_proxy_7_4_core is not defined when: run_once_srv_proxy_core is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_srv_proxy_6_6_domain is not defined when: run_once_srv_domain_provision is not defined
- include_tasks: "01_cloudflare.yml" - include_tasks: "01_cloudflare.yml"
when: DNS_PROVIDER == "cloudflare" when: DNS_PROVIDER == "cloudflare"
@ -15,7 +15,7 @@
- name: "include role for {{ domain }} to receive certificates and do the modification routines" - name: "include role for {{ domain }} to receive certificates and do the modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
- name: "Copy nginx config to {{ configuration_destination }}" - name: "Copy nginx config to {{ configuration_destination }}"
template: template:

View File

@ -1,23 +1,23 @@
# Webserver HTTPS Provisioning 🚀 # Webserver HTTPS Provisioning 🚀
## Description ## Description
The **srv-web-7-6-https** role extends a basic Nginx installation by wiring in everything you need to serve content over HTTPS: The **srv-https-stack** role extends a basic Nginx installation by wiring in everything you need to serve content over HTTPS:
1. Ensures your Nginx server is configured for SSL/TLS. 1. Ensures your Nginx server is configured for SSL/TLS.
2. Pulls in Lets Encrypt ACME challenge handling. 2. Pulls in Lets Encrypt ACME challenge handling.
3. Applies global cleanup of unused domain configs. 3. Applies global cleanup of unused domain configs.
This role is built on top of your existing `srv-web-7-4-core` role, and it automates the end-to-end process of turning HTTP sites into secure HTTPS sites. This role is built on top of your existing `srv-core` role, and it automates the end-to-end process of turning HTTP sites into secure HTTPS sites.
--- ---
## Overview ## Overview
When you apply **srv-web-7-6-https**, it will: When you apply **srv-https-stack**, it will:
1. **Include** the `srv-web-7-4-core` role to install and configure Nginx. 1. **Include** the `srv-core` role to install and configure Nginx.
2. **Clean up** any stale vHost files under `sys-svc-cln-domains`. 2. **Clean up** any stale vHost files under `sys-svc-cln-domains`.
3. **Deploy** the Lets Encrypt challenge-and-redirect snippet from `srv-web-7-7-letsencrypt`. 3. **Deploy** the Lets Encrypt challenge-and-redirect snippet from `srv-letsencrypt`.
4. **Reload** Nginx automatically when any template changes. 4. **Reload** Nginx automatically when any template changes.
All tasks are idempotent—once your certificates are in place and your configuration is set, Ansible will skip unchanged steps on subsequent runs. All tasks are idempotent—once your certificates are in place and your configuration is set, Ansible will skip unchanged steps on subsequent runs.
@ -42,7 +42,7 @@ All tasks are idempotent—once your certificates are in place and your configur
## Requirements ## Requirements
- A working `srv-web-7-4-core` setup. - A working `srv-core` setup.
- DNS managed via Cloudflare (for CAA record tasks) or equivalent ACME DNS flow. - DNS managed via Cloudflare (for CAA record tasks) or equivalent ACME DNS flow.
- Variables: - Variables:
- `LETSENCRYPT_WEBROOT_PATH` - `LETSENCRYPT_WEBROOT_PATH`

View File

@ -3,8 +3,8 @@
include_role: include_role:
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- srv-web-7-4-core - srv-core
- sys-svc-cln-domains - sys-svc-cln-domains
- srv-web-7-7-letsencrypt - srv-letsencrypt
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_srv_web_7_6_https is not defined when: run_once_srv_https_stack is not defined

View File

@ -1,4 +1,4 @@
- block: - block:
- include_tasks: 01_core.yml - include_tasks: 01_core.yml
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_srv_web_7_7_letsencrypt is not defined when: run_once_srv_letsencrypt is not defined

View File

@ -12,4 +12,4 @@ ssl_session_tickets on;
add_header Strict-Transport-Security max-age=15768000; add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on; ssl_stapling on;
ssl_stapling_verify on; ssl_stapling_verify on;
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_credentials.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_credentials.j2' %}

View File

@ -16,7 +16,7 @@ The goal of this role is to deliver a **hassle-free, production-ready reverse pr
## Features ## Features
- **Automatic TLS & HSTS** — integrates with the *srv-web-7-6-https* role for certificate management. - **Automatic TLS & HSTS** — integrates with the *srv-https-stack* role for certificate management.
- **Flexible vHost templates***basic* and *ws_generic* flavours cover standard HTTP and WebSocket applications. - **Flexible vHost templates***basic* and *ws_generic* flavours cover standard HTTP and WebSocket applications.
- **Security headers** — sensible defaults plus optional X-Frame-Options / CSP based on application settings. - **Security headers** — sensible defaults plus optional X-Frame-Options / CSP based on application settings.
- **WebSocket & HTTP/2 aware** — upgrades, keep-alive tuning, and gzip already configured. - **WebSocket & HTTP/2 aware** — upgrades, keep-alive tuning, and gzip already configured.

View File

@ -3,7 +3,7 @@
include_role: include_role:
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- srv-web-7-6-https - srv-https-stack
- srv-web-7-4-core - srv-core
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_srv_proxy_7_4_core is not defined when: run_once_srv_proxy_core is not defined

View File

@ -1,6 +1,6 @@
# Nginx Location Templates # Nginx Location Templates
This directory contains Jinja2 templates for different Nginx `location` blocks, each designed to proxy and optimize different types of web traffic. These templates are used by the `srv-proxy-7-4-core` role to modularize and standardize reverse proxy configuration across a wide variety of applications. This directory contains Jinja2 templates for different Nginx `location` blocks, each designed to proxy and optimize different types of web traffic. These templates are used by the `srv-proxy-core` role to modularize and standardize reverse proxy configuration across a wide variety of applications.
--- ---

View File

@ -16,7 +16,7 @@ location {{location}}
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port {{ WEB_PORT }}; proxy_set_header X-Forwarded-Port {{ WEB_PORT }};
{% include 'roles/srv-proxy-7-4-core/templates/headers/content_security_policy.conf.j2' %} {% include 'roles/srv-proxy-core/templates/headers/content_security_policy.conf.j2' %}
# WebSocket specific header # WebSocket specific header
proxy_http_version 1.1; proxy_http_version 1.1;

View File

@ -13,7 +13,7 @@ server
{{ proxy_extra_configuration }} {{ proxy_extra_configuration }}
{% endif %} {% endif %}
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% if applications | get_app_conf(application_id, 'features.oauth2', False) %} {% if applications | get_app_conf(application_id, 'features.oauth2', False) %}
{% set acl = applications | get_app_conf(application_id, 'oauth2_proxy.acl', False, {}) %} {% set acl = applications | get_app_conf(application_id, 'oauth2_proxy.acl', False, {}) %}
@ -22,38 +22,38 @@ server
{# 1. Expose everything by default, then protect blacklisted paths #} {# 1. Expose everything by default, then protect blacklisted paths #}
{% set oauth2_proxy_enabled = false %} {% set oauth2_proxy_enabled = false %}
{% set location = "/" %} {% set location = "/" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% for loc in acl.blacklist %} {% for loc in acl.blacklist %}
{% set oauth2_proxy_enabled = true %} {% set oauth2_proxy_enabled = true %}
{% set location = loc %} {% set location = loc %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% endfor %} {% endfor %}
{% elif acl.whitelist is defined %} {% elif acl.whitelist is defined %}
{# 2. Protect everything by default, then expose whitelisted paths #} {# 2. Protect everything by default, then expose whitelisted paths #}
{% set oauth2_proxy_enabled = true %} {% set oauth2_proxy_enabled = true %}
{% set location = "/" %} {% set location = "/" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% for loc in acl.whitelist %} {% for loc in acl.whitelist %}
{% set oauth2_proxy_enabled = false %} {% set oauth2_proxy_enabled = false %}
{% set location = loc %} {% set location = loc %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% endfor %} {% endfor %}
{% else %} {% else %}
{# 3. OAuth2 enabled but no (or empty) ACL — protect all #} {# 3. OAuth2 enabled but no (or empty) ACL — protect all #}
{% set oauth2_proxy_enabled = true %} {% set oauth2_proxy_enabled = true %}
{% set location = "/" %} {% set location = "/" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% endif %} {% endif %}
{% else %} {% else %}
{# 4. OAuth2 completely disabled — expose all #} {# 4. OAuth2 completely disabled — expose all #}
{% set oauth2_proxy_enabled = false %} {% set oauth2_proxy_enabled = false %}
{% set location = "/" %} {% set location = "/" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% endif %} {% endif %}
} }

View File

@ -6,7 +6,7 @@ map $http_upgrade $connection_upgrade {
server { server {
server_name {{ domain }}; server_name {{ domain }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2' %} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2' %}
@ -25,10 +25,10 @@ server {
add_header Strict-Transport-Security "max-age=31536000"; add_header Strict-Transport-Security "max-age=31536000";
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% if location_ws is defined %} {% if location_ws is defined %}
{% include 'roles/srv-proxy-7-4-core/templates/location/ws.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/ws.conf.j2' %}
{% endif %} {% endif %}
error_page 500 501 502 503 504 /500.html; error_page 500 501 502 503 504 /500.html;

View File

@ -1,10 +1,10 @@
- block: - block:
- name: Include dependency 'srv-web-7-6-https' - name: Include dependency 'srv-https-stack'
include_role: include_role:
name: srv-web-7-6-https name: srv-https-stack
when: run_once_srv_web_7_6_https is not defined when: run_once_srv_https_stack is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_srv_web_6_6_tls_core is not defined when: run_once_srv_tls_core is not defined
- name: "Include flavor '{{ CERTBOT_FLAVOR }}' for '{{ domain }}'" - name: "Include flavor '{{ CERTBOT_FLAVOR }}' for '{{ domain }}'"
include_tasks: "{{ role_path }}/tasks/flavors/{{ CERTBOT_FLAVOR }}.yml" include_tasks: "{{ role_path }}/tasks/flavors/{{ CERTBOT_FLAVOR }}.yml"

View File

@ -1,9 +0,0 @@
# run_once_srv_web_7_6_composer: deactivated
- name: "include role sys-srv-web-inj-compose for '{{ domain }}'"
include_role:
name: sys-srv-web-inj-compose
- name: "include role srv-web-6-6-tls-core for '{{ domain }}'"
include_role:
name: srv-web-6-6-tls-core

View File

@ -2,5 +2,5 @@ server {
listen {{ ports.public.ldaps['svc-db-openldap'] }}ssl; listen {{ ports.public.ldaps['svc-db-openldap'] }}ssl;
proxy_pass 127.0.0.1:{{ ports.localhost.ldap['svc-db-openldap'] }}; proxy_pass 127.0.0.1:{{ ports.localhost.ldap['svc-db-openldap'] }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_credentials.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_credentials.j2' %}
} }

View File

@ -3,7 +3,7 @@
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- sys-svc-certbot - sys-svc-certbot
- srv-web-7-4-core - srv-core
- sys-ctl-alm-compose - sys-ctl-alm-compose
- name: install certbot - name: install certbot

View File

@ -3,10 +3,10 @@
inj_enabled: "{{ applications | inj_enabled(application_id, SRV_WEB_INJ_COMP_FEATURES_ALL) }}" inj_enabled: "{{ applications | inj_enabled(application_id, SRV_WEB_INJ_COMP_FEATURES_ALL) }}"
- block: - block:
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_sys_srv_web_inj_compose is not defined when: run_once_sys_srv_web_inj_compose is not defined

View File

@ -1,7 +1,7 @@
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined
- name: Generate color palette with colorscheme-generator - name: Generate color palette with colorscheme-generator
set_fact: set_fact:

View File

@ -1,8 +1,8 @@
- block: - block:
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined
- include_tasks: 01_deploy.yml - include_tasks: 01_deploy.yml
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_sys_srv_web_inj_desktop is not defined when: run_once_sys_srv_web_inj_desktop is not defined

View File

@ -1,9 +1,9 @@
- block: - block:
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_sys_srv_web_inj_javascript is not defined when: run_once_sys_srv_web_inj_javascript is not defined

View File

@ -1,8 +1,8 @@
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: when:
- run_once_srv_web_7_4_core is not defined - run_once_srv_core is not defined
- name: "deploy the logout.js" - name: "deploy the logout.js"
include_tasks: "02_deploy.yml" include_tasks: "02_deploy.yml"

View File

@ -1,8 +1,8 @@
- block: - block:
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_sys_srv_web_inj_matomo is not defined when: run_once_sys_srv_web_inj_matomo is not defined

View File

@ -3,7 +3,7 @@
include_role: include_role:
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- srv-web-7-4-core - srv-core
- name: Include task to remove deprecated nginx configs - name: Include task to remove deprecated nginx configs
include_tasks: remove_deprecated_nginx_configs.yml include_tasks: remove_deprecated_nginx_configs.yml

View File

@ -1,7 +1,7 @@
--- ---
- name: "For '{{ application_id }}': include role to receive certs & do modification routines" - name: "For '{{ application_id }}': include role to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
vars: vars:
domain: "{{ item }}" domain: "{{ item }}"
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"
@ -17,7 +17,7 @@
- name: "For '{{ application_id }}': configure {{ domains | get_domain(application_id) }}.conf" - name: "For '{{ application_id }}': configure {{ domains | get_domain(application_id) }}.conf"
template: template:
src: roles/srv-proxy-7-4-core/templates/vhost/basic.conf.j2 src: roles/srv-proxy-core/templates/vhost/basic.conf.j2
dest: "{{ NGINX.DIRECTORIES.HTTP.SERVERS }}{{ domains | get_domain(application_id) }}.conf" dest: "{{ NGINX.DIRECTORIES.HTTP.SERVERS }}{{ domains | get_domain(application_id) }}.conf"
notify: restart openresty notify: restart openresty

View File

@ -35,7 +35,7 @@ By default, BigBlueButton is deployed with best-practice hardening, modular secr
## System Requirements ## System Requirements
- Arch Linux with Docker, Compose, and Nginx roles pre-installed - Arch Linux with Docker, Compose, and Nginx roles pre-installed
- DNS and reverse proxy configuration using `srv-proxy-7-4-core` - DNS and reverse proxy configuration using `srv-proxy-core`
- Functional email system for Greenlight SMTP - Functional email system for Greenlight SMTP
## Important Resources ## Important Resources

View File

@ -3,7 +3,7 @@
set_fact: set_fact:
proxy_extra_configuration: >- proxy_extra_configuration: >-
{{ lookup('ansible.builtin.template', {{ lookup('ansible.builtin.template',
playbook_dir ~ '/roles/srv-proxy-7-4-core/templates/location/html.conf.j2') | trim }} playbook_dir ~ '/roles/srv-proxy-core/templates/location/html.conf.j2') | trim }}
vars: vars:
location: '^~ /html5client' location: '^~ /html5client'
oauth2_proxy_enabled: false oauth2_proxy_enabled: false

View File

@ -2,9 +2,9 @@
include_role: include_role:
name: docker-compose name: docker-compose
- name: "include role srv-proxy-6-6-domain for {{ application_id }}" - name: "include role srv-domain-provision for {{ application_id }}"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
vars: vars:
domain: "{{ item.domain }}" domain: "{{ item.domain }}"
http_port: "{{ item.http_port }}" http_port: "{{ item.http_port }}"

View File

@ -1,8 +1,8 @@
--- ---
- name: "include role srv-proxy-6-6-domain for {{ application_id }}" - name: "include role srv-domain-provision for {{ application_id }}"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
vars: vars:
domain: "{{ domains | get_domain(application_id) }}" domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"

View File

@ -9,7 +9,7 @@ This Ansible role deploys and configures [FusionDirectory](https://www.fusiondir
- Loads and templating of FusionDirectory-specific variables - Loads and templating of FusionDirectory-specific variables
- Generates a `.env` file for the container environment - Generates a `.env` file for the container environment
- Deploys the FusionDirectory container via Docker Compose - Deploys the FusionDirectory container via Docker Compose
- Configures NGINX (via the `srv-proxy-6-6-domain` role) to expose the service - Configures NGINX (via the `srv-domain-provision` role) to expose the service
- Integrates with your central LDAP server for authentication - Integrates with your central LDAP server for authentication
## Features ## Features

View File

@ -1,7 +1,7 @@
--- ---
- name: "Include setup for domain '{{ domain }}'" - name: "Include setup for domain '{{ domain }}'"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
loop: "{{ domains['web-app-mastodon'] }}" loop: "{{ domains['web-app-mastodon'] }}"
loop_control: loop_control:
loop_var: domain loop_var: domain

View File

@ -9,16 +9,16 @@
src: "well-known.j2" src: "well-known.j2"
dest: "{{ MATRIX_WELL_KNOWN_FILE }}" dest: "{{ MATRIX_WELL_KNOWN_FILE }}"
- name: "include role srv-proxy-6-6-domain for {{ MATRIX_ELEMENT_DOMAIN }}" - name: "include role srv-domain-provision for {{ MATRIX_ELEMENT_DOMAIN }}"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
vars: vars:
domain: "{{ MATRIX_ELEMENT_DOMAIN }}" domain: "{{ MATRIX_ELEMENT_DOMAIN }}"
http_port: "{{ MATRIX_ELEMENT_PORT }}" http_port: "{{ MATRIX_ELEMENT_PORT }}"
- name: "include role for {{ application_id }} to receive certs & do modification routines for {{ MATRIX_SYNAPSE_DOMAIN }}" - name: "include role for {{ application_id }} to receive certs & do modification routines for {{ MATRIX_SYNAPSE_DOMAIN }}"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
vars: vars:
domain: "{{ MATRIX_SYNAPSE_DOMAIN }}" domain: "{{ MATRIX_SYNAPSE_DOMAIN }}"
http_port: "{{ MATRIX_SYNAPSE_PORT }}" http_port: "{{ MATRIX_SYNAPSE_PORT }}"

View File

@ -1,6 +1,6 @@
server { server {
server_name {{ domain }}; server_name {{ domain }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
# For the federation port # For the federation port
listen {{ FEDERATION_PORT }} ssl default_server; listen {{ FEDERATION_PORT }} ssl default_server;
@ -8,7 +8,7 @@ server {
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{% include 'roles/srv-proxy-7-4-core/templates/location/upload.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/upload.conf.j2' %}
} }

View File

@ -1,8 +1,8 @@
- block: - block:
- name: Include dependency 'srv-proxy-7-4-core' - name: Include dependency 'srv-proxy-core'
include_role: include_role:
name: srv-proxy-7-4-core name: srv-proxy-core
when: run_once_srv_proxy_7_4_core is not defined when: run_once_srv_proxy_core is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_web_app_mybb is not defined when: run_once_web_app_mybb is not defined

View File

@ -1,12 +1,12 @@
- name: "include role receive certbot certificate" - name: "include role receive certbot certificate"
include_role: include_role:
name: srv-web-6-6-tls-core name: srv-tls-core
vars: vars:
domain: "{{ domains | get_domain(application_id) }}" domain: "{{ domains | get_domain(application_id) }}"
- name: configure {{ domains | get_domain(application_id) }}.conf - name: configure {{ domains | get_domain(application_id) }}.conf
template: template:
src: "roles/srv-proxy-7-4-core/templates/vhost/basic.conf.j2" src: "roles/srv-proxy-core/templates/vhost/basic.conf.j2"
dest: "{{ NGINX.DIRECTORIES.HTTP.SERVERS }}{{ domains | get_domain(application_id) }}.conf" dest: "{{ NGINX.DIRECTORIES.HTTP.SERVERS }}{{ domains | get_domain(application_id) }}.conf"
notify: restart openresty notify: restart openresty
vars: vars:

View File

@ -11,7 +11,7 @@
- name: "include role for {{ application_id }} to receive certs & do modification routines" - name: "include role for {{ application_id }} to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
- name: create nextcloud proxy configuration file - name: create nextcloud proxy configuration file
template: template:

View File

@ -4,7 +4,7 @@ server
{ {
server_name {{ domain }}; server_name {{ domain }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%}
@ -19,7 +19,7 @@ server
client_body_buffer_size 400M; client_body_buffer_size 400M;
fastcgi_buffers 64 4K; fastcgi_buffers 64 4K;
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
location ^~ /.well-known { location ^~ /.well-known {
rewrite ^/\.well-known/host-meta\.json /public.php?service=host-meta-json last; rewrite ^/\.well-known/host-meta\.json /public.php?service=host-meta-json last;

View File

@ -1,6 +1,6 @@
- name: "include role for {{ application_id }} to receive certs & do modification routines" - name: "include role for {{ application_id }} to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
- name: configure {{ domain }}.conf - name: configure {{ domain }}.conf
template: template:

View File

@ -1,18 +1,18 @@
server { server {
server_name {{ domain }}; server_name {{ domain }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%}
{% include 'roles/srv-proxy-7-4-core/templates/headers/content_security_policy.conf.j2' %} {% include 'roles/srv-proxy-core/templates/headers/content_security_policy.conf.j2' %}
## ##
# Application # Application
## ##
{% set location = "@html" %} {% set location = "@html" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
location / { location / {
try_files /dev/null {{ location }}; try_files /dev/null {{ location }};
@ -45,7 +45,7 @@ server {
## ##
{% set location_ws = "@websocket" %} {% set location_ws = "@websocket" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/ws.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/ws.conf.j2' %}
location /socket.io { location /socket.io {
try_files /dev/null {{ location_ws }}; try_files /dev/null {{ location_ws }};

View File

@ -1,7 +1,7 @@
--- ---
- name: "include role for {{ application_id }} to receive certs & do modification routines" - name: "include role for {{ application_id }} to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
- name: "load docker and db for {{ application_id }}" - name: "load docker and db for {{ application_id }}"
include_role: include_role:

View File

@ -13,10 +13,10 @@ server
{{ proxy_extra_configuration }} {{ proxy_extra_configuration }}
{% endif %} {% endif %}
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% for path in syncope_paths.values() %} {% for path in syncope_paths.values() %}
{% set location = WEB_PROTOCOL ~ '://' ~ domains | get_domain(application_id) ~ '/' ~ path ~ '/' %} {% set location = WEB_PROTOCOL ~ '://' ~ domains | get_domain(application_id) ~ '/' ~ path ~ '/' %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2'%} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2'%}
{% endfor %} {% endfor %}
} }

View File

@ -39,7 +39,7 @@ By using this role, teams can set up Taiga in minutes on Arch Linux systems —
- [taiga-contrib-oidc-auth (official)](https://github.com/taigaio/taiga-contrib-oidc-auth) - [taiga-contrib-oidc-auth (official)](https://github.com/taigaio/taiga-contrib-oidc-auth)
- 📨 **Email Backend:** Supports SMTP and console backends for development. - 📨 **Email Backend:** Supports SMTP and console backends for development.
- 🔁 **Async & Realtime Events:** Includes RabbitMQ and support for Taigas event system. - 🔁 **Async & Realtime Events:** Includes RabbitMQ and support for Taigas event system.
- 🌐 **Reverse Proxy Ready:** Integrates with Nginx using the `srv-proxy-6-6-domain` role. - 🌐 **Reverse Proxy Ready:** Integrates with Nginx using the `srv-domain-provision` role.
- 🧩 **Composable Design:** Integrates cleanly with other Infinito.Nexus infrastructure roles. - 🧩 **Composable Design:** Integrates cleanly with other Infinito.Nexus infrastructure roles.
--- ---

View File

@ -1,7 +1,7 @@
--- ---
- name: "Include role srv-proxy-6-6-domain for {{ application_id }}" - name: "Include role srv-domain-provision for {{ application_id }}"
include_role: include_role:
name: srv-proxy-6-6-domain name: srv-domain-provision
loop: "{{ wordpress_domains }}" loop: "{{ wordpress_domains }}"
loop_control: loop_control:
loop_var: domain loop_var: domain

View File

@ -9,7 +9,7 @@ This Ansible role configures Nginx to perform 301 redirects from one domain to a
## Dependencies ## Dependencies
- `srv-web-7-6-https`: A role for setting up HTTPS for Nginx - `srv-https-stack`: A role for setting up HTTPS for Nginx
- `letsencrypt`: A role for managing SSL certificates with Let's Encrypt - `letsencrypt`: A role for managing SSL certificates with Let's Encrypt
## Author Information ## Author Information

View File

@ -1,8 +1,8 @@
- block: - block:
- name: Include dependency 'srv-web-7-6-https' - name: Include dependency 'srv-https-stack'
include_role: include_role:
name: srv-web-7-6-https name: srv-https-stack
when: run_once_srv_web_7_6_https is not defined when: run_once_srv_https_stack is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_web_opt_rdr_domains is not defined when: run_once_web_opt_rdr_domains is not defined

View File

@ -1,6 +1,6 @@
- name: "include task receive certbot certificate" - name: "include task receive certbot certificate"
include_role: include_role:
name: srv-web-6-6-tls-core name: srv-tls-core
- name: "Deploying NGINX redirect configuration for '{{ domain }}'" - name: "Deploying NGINX redirect configuration for '{{ domain }}'"
template: template:

View File

@ -1,6 +1,6 @@
server { server {
server_name {{ domain }}; server_name {{ domain }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
return 301 https://{{ target }}$request_uri; return 301 https://{{ target }}$request_uri;
} }

View File

@ -1,8 +1,8 @@
- block: - block:
- name: Include dependency 'srv-web-7-4-core' - name: Include dependency 'srv-core'
include_role: include_role:
name: srv-web-7-4-core name: srv-core
when: run_once_srv_web_7_4_core is not defined when: run_once_srv_core is not defined
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_web_opt_rdr_www is not defined when: run_once_web_opt_rdr_www is not defined

View File

@ -2,12 +2,12 @@
include_role: include_role:
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- srv-web-7-6-https - srv-https-stack
- dev-git - dev-git
- name: "include role for {{ application_id }} to receive certs & do modification routines" - name: "include role for {{ application_id }} to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
vars: vars:
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"

View File

@ -2,11 +2,11 @@ server
{ {
server_name {{ domains | get_domain(application_id) }}; server_name {{ domains | get_domain(application_id) }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%}
{% include 'roles/srv-proxy-7-4-core/templates/headers/content_security_policy.conf.j2' %} {% include 'roles/srv-proxy-core/templates/headers/content_security_policy.conf.j2' %}
charset utf-8; charset utf-8;

View File

@ -1,22 +1,22 @@
server { server {
server_name {{ domain }}; server_name {{ domain }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%}
{% include 'roles/srv-proxy-7-4-core/templates/headers/content_security_policy.conf.j2' %} {% include 'roles/srv-proxy-core/templates/headers/content_security_policy.conf.j2' %}
{# Normal HTTP routes (discovery, browser, assets) no Lua injection #} {# Normal HTTP routes (discovery, browser, assets) no Lua injection #}
{% set proxy_lua_enabled = false %} {% set proxy_lua_enabled = false %}
{% set location = "/" %} {% set location = "/" %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{# Optional explicit fast path for discovery #} {# Optional explicit fast path for discovery #}
{% set location = "= " ~ container_healthcheck %} {% set location = "= " ~ container_healthcheck %}
{% include 'roles/srv-proxy-7-4-core/templates/location/html.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/html.conf.j2' %}
{# WebSocket handling for Collabora #} {# WebSocket handling for Collabora #}
{% set location_ws = '^~ /cool/' %} {% set location_ws = '^~ /cool/' %}
{% set ws_port = http_port %} {% set ws_port = http_port %}
{% include 'roles/srv-proxy-7-4-core/templates/location/ws.conf.j2' %} {% include 'roles/srv-proxy-core/templates/location/ws.conf.j2' %}
} }

View File

@ -3,14 +3,14 @@
include_role: include_role:
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- srv-web-7-6-https - srv-https-stack
- dev-git - dev-git
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_web_svc_file is not defined when: run_once_web_svc_file is not defined
- name: "include role for {{ application_id }} to receive certs & do modification routines" - name: "include role for {{ application_id }} to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
vars: vars:
domain: "{{ domains | get_domain(application_id) }}" domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"

View File

@ -2,11 +2,11 @@ server
{ {
server_name {{ domains | get_domain(application_id) }}; server_name {{ domains | get_domain(application_id) }};
{% include 'roles/srv-web-7-7-letsencrypt/templates/ssl_header.j2' %} {% include 'roles/srv-letsencrypt/templates/ssl_header.j2' %}
{% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%} {% include 'roles/sys-srv-web-inj-compose/templates/server.conf.j2'%}
{% include 'roles/srv-proxy-7-4-core/templates/headers/content_security_policy.conf.j2' %} {% include 'roles/srv-proxy-core/templates/headers/content_security_policy.conf.j2' %}
charset utf-8; charset utf-8;

View File

@ -3,14 +3,14 @@
include_role: include_role:
name: '{{ item }}' name: '{{ item }}'
loop: loop:
- srv-web-7-6-https - srv-https-stack
- dev-git - dev-git
- include_tasks: utils/run_once.yml - include_tasks: utils/run_once.yml
when: run_once_web_svc_html is not defined when: run_once_web_svc_html is not defined
- name: "include role for {{ application_id }} to receive certs & do modification routines" - name: "include role for {{ application_id }} to receive certs & do modification routines"
include_role: include_role:
name: srv-web-7-6-composer name: srv-composer
vars: vars:
domain: "{{ domains | get_domain(application_id) }}" domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}" http_port: "{{ ports.localhost.http[application_id] }}"

Some files were not shown because too many files have changed in this diff Show More