mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-15 16:40:45 +02:00
Optimized handlers order for mailu
This commit is contained in:
parent
a9d77de2a4
commit
5426014096
@ -10,10 +10,10 @@
|
|||||||
- "{{ DOCKER_VARS_FILE }}" # Important to load docker variables first so that database can use them
|
- "{{ DOCKER_VARS_FILE }}" # Important to load docker variables first so that database can use them
|
||||||
- "{{ cmp_db_docker_vars_file_db }}" # Important to load them before docker role so that backup can use them
|
- "{{ cmp_db_docker_vars_file_db }}" # Important to load them before docker role so that backup can use them
|
||||||
|
|
||||||
- name: "For '{{ application_id }}': Load cmp-docker-oauth2"
|
|
||||||
include_role:
|
|
||||||
name: cmp-docker-oauth2
|
|
||||||
|
|
||||||
- name: "For '{{ application_id }}': Load central RDBMS"
|
- name: "For '{{ application_id }}': Load central RDBMS"
|
||||||
include_role:
|
include_role:
|
||||||
name: cmp-rdbms
|
name: cmp-rdbms
|
||||||
|
|
||||||
|
- name: "For '{{ application_id }}': Load cmp-docker-oauth2"
|
||||||
|
include_role:
|
||||||
|
name: cmp-docker-oauth2
|
@ -1 +1 @@
|
|||||||
cmp_db_docker_vars_file_db: "{{ playbook_dir }}/roles/cmp-rdbms/vars/database.yml"
|
cmp_db_docker_vars_file_db: "{{ playbook_dir }}/roles/cmp-rdbms/vars/database.yml"
|
@ -2,11 +2,17 @@
|
|||||||
|
|
||||||
# The following env file will just be used from the dedicated mariadb container
|
# The following env file will just be used from the dedicated mariadb container
|
||||||
# and not the central one
|
# and not the central one
|
||||||
- name: "For '{{ application_id }}': Create {{database_env}}"
|
- block:
|
||||||
template:
|
- name: "Ensure env dir exists: {{ docker_compose.directories.env }}"
|
||||||
src: "env/{{database_type}}.env.j2"
|
ansible.builtin.file:
|
||||||
dest: "{{database_env}}"
|
path: "{{ docker_compose.directories.env }}"
|
||||||
notify: docker compose up
|
state: directory
|
||||||
|
mode: "0755"
|
||||||
|
- name: "For '{{ application_id }}': Create {{database_env}}"
|
||||||
|
template:
|
||||||
|
src: "env/{{database_type}}.env.j2"
|
||||||
|
dest: "{{database_env}}"
|
||||||
|
notify: docker compose up
|
||||||
when: not applications | get_app_conf(application_id, 'features.central_database', False)
|
when: not applications | get_app_conf(application_id, 'features.central_database', False)
|
||||||
|
|
||||||
- name: "For '{{ application_id }}': Create central database"
|
- name: "For '{{ application_id }}': Create central database"
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
oidc:
|
oidc:
|
||||||
email_by_username: true # If true, then the mail is set by the username. If wrong then the OIDC user email is used
|
email_by_username: true # If true, then the mail is set by the username. If wrong then the OIDC user email is used
|
||||||
enable_user_creation: true # Users will be created if not existing
|
enable_user_creation: true # Users will be created if not existing
|
||||||
domain: "{{primary_domain}}" # The main domain from which mails will be send \ email suffix behind @
|
domain: "{{ primary_domain }}" # The main domain from which mails will be send \ email suffix behind @
|
||||||
features:
|
features:
|
||||||
matomo: true
|
matomo: true
|
||||||
css: false
|
css: false
|
||||||
port-ui-desktop: true # Deactivated mailu iframe loading until keycloak supports it
|
port-ui-desktop: true # Deactivated mailu iframe loading until keycloak supports it
|
||||||
oidc: true
|
oidc: true
|
||||||
central_database: false # Deactivate central database for mailu, I don't know why the database deactivation is necessary
|
central_database: false # Deactivate central database for mailu, I don't know why the database deactivation is necessary
|
||||||
logout: true
|
logout: true
|
||||||
server:
|
server:
|
||||||
domains:
|
domains:
|
||||||
|
@ -23,5 +23,5 @@
|
|||||||
when: "'mail-bot' in item.value.roles or 'administrator' in item.value.roles"
|
when: "'mail-bot' in item.value.roles or 'administrator' in item.value.roles"
|
||||||
|
|
||||||
- name: "Create Mailu API Token for {{ mailu_user_name }}"
|
- name: "Create Mailu API Token for {{ mailu_user_name }}"
|
||||||
include_tasks: create-mailu-token.yml
|
include_tasks: 01_0A_create-mailu-token.yml
|
||||||
when: "{{ 'mail-bot' in item.value.roles }}"
|
when: "{{ 'mail-bot' in item.value.roles }}"
|
@ -2,7 +2,7 @@
|
|||||||
include_vars: vars/mailu-dns.yml
|
include_vars: vars/mailu-dns.yml
|
||||||
|
|
||||||
- name: Generate DKIM public key
|
- name: Generate DKIM public key
|
||||||
include_tasks: generate-and-read-dkim.yml
|
include_tasks: 02_0A_generate-and-read-dkim.yml
|
||||||
|
|
||||||
- name: "Set A record for mail server"
|
- name: "Set A record for mail server"
|
||||||
community.general.cloudflare_dns:
|
community.general.cloudflare_dns:
|
@ -1,46 +1,41 @@
|
|||||||
---
|
---
|
||||||
- name: "load docker, db and proxy for {{application_id}}"
|
- block:
|
||||||
include_role:
|
- name: "load docker, db and proxy for {{application_id}}"
|
||||||
name: cmp-db-docker-proxy
|
include_role:
|
||||||
when: run_once_web_app_mailu is not defined
|
name: cmp-db-docker-proxy
|
||||||
|
|
||||||
- name: "Include the srv-proxy-6-6-tls-deploy role"
|
- name: "Include the srv-proxy-6-6-tls-deploy role"
|
||||||
include_role:
|
include_role:
|
||||||
name: srv-proxy-6-6-tls-deploy
|
name: srv-proxy-6-6-tls-deploy
|
||||||
when: run_once_web_app_mailu is not defined
|
|
||||||
|
|
||||||
- name: Flush docker service handlers
|
- name: Flush docker service handlers
|
||||||
meta: flush_handlers
|
meta: flush_handlers
|
||||||
when: run_once_web_app_mailu is not defined
|
|
||||||
|
|
||||||
- name: "Create Mailu accounts"
|
- name: "Create Mailu accounts"
|
||||||
include_tasks: create-mailu-user.yml
|
include_tasks: 01_00_create-mailu-user.yml
|
||||||
vars:
|
vars:
|
||||||
mailu_compose_dir: "{{ docker_compose.directories.instance }}"
|
mailu_compose_dir: "{{ docker_compose.directories.instance }}"
|
||||||
mailu_domain: "{{ primary_domain }}"
|
mailu_domain: "{{ primary_domain }}"
|
||||||
mailu_api_base_url: "http://127.0.0.1:8080/api/v1"
|
mailu_api_base_url: "http://127.0.0.1:8080/api/v1"
|
||||||
mailu_global_api_token: "{{ applications | get_app_conf(application_id, 'credentials.api_token') }}"
|
mailu_global_api_token: "{{ applications | get_app_conf(application_id, 'credentials.api_token') }}"
|
||||||
mailu_action: >-
|
mailu_action: >-
|
||||||
{{
|
{{
|
||||||
(
|
(
|
||||||
'administrator' in (item.value.get('roles', []))
|
'administrator' in (item.value.get('roles', []))
|
||||||
)
|
)
|
||||||
| ternary('admin','user')
|
| ternary('admin','user')
|
||||||
}}
|
}}
|
||||||
mailu_user_key: "{{ item.key }}"
|
mailu_user_key: "{{ item.key }}"
|
||||||
mailu_user_name: "{{ item.value.username }}"
|
mailu_user_name: "{{ item.value.username }}"
|
||||||
mailu_password: "{{ item.value.password }}"
|
mailu_password: "{{ item.value.password }}"
|
||||||
mailu_token_ip: "{{ item.value.ip | default('') }}"
|
mailu_token_ip: "{{ item.value.ip | default('') }}"
|
||||||
loop: "{{ users | dict2items }}"
|
loop: "{{ users | dict2items }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: item
|
loop_var: item
|
||||||
when: run_once_web_app_mailu is not defined
|
|
||||||
|
|
||||||
- name: Set Mailu DNS records
|
|
||||||
include_tasks: set-mailu-dns-records.yml
|
|
||||||
when: dns_provider == 'cloudflare'
|
|
||||||
|
|
||||||
- name: Run the docker_mailu roles once
|
- name: Set Mailu DNS records
|
||||||
set_fact:
|
include_tasks: 02_00_set-mailu-dns-records.yml
|
||||||
run_once_web_app_mailu: true
|
when: dns_provider == 'cloudflare'
|
||||||
|
|
||||||
|
- include_tasks: utils/run_once.yml
|
||||||
when: run_once_web_app_mailu is not defined
|
when: run_once_web_app_mailu is not defined
|
@ -1,18 +1,20 @@
|
|||||||
|
# General
|
||||||
application_id: "web-app-mailu"
|
application_id: "web-app-mailu"
|
||||||
|
domain: "{{ domains | get_domain(application_id) }}"
|
||||||
|
http_port: "{{ ports.localhost.http[application_id] }}"
|
||||||
|
proxy_extra_configuration: "client_max_body_size 31M;"
|
||||||
|
|
||||||
# Database Configuration
|
# Database Configuration
|
||||||
database_password: "{{ applications | get_app_conf(application_id, ' credentials.database_password') }}"
|
database_password: "{{ applications | get_app_conf(application_id, ' credentials.database_password') }}"
|
||||||
database_type: "mariadb"
|
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
|
# Use dedicated source for oidc if activated
|
||||||
# @see https://github.com/heviat/Mailu-OIDC/tree/2024.06
|
# @see https://github.com/heviat/Mailu-OIDC/tree/2024.06
|
||||||
docker_source: "{{ 'ghcr.io/heviat' if applications | get_app_conf(application_id, 'features.oidc', False) else 'ghcr.io/mailu' }}"
|
docker_source: "{{ 'ghcr.io/heviat' if applications | get_app_conf(application_id, 'features.oidc', False) else 'ghcr.io/mailu' }}"
|
||||||
|
|
||||||
domain: "{{ domains | get_domain(application_id) }}"
|
# Mailu Specific
|
||||||
http_port: "{{ ports.localhost.http[application_id] }}"
|
|
||||||
proxy_extra_configuration: "client_max_body_size 31M;"
|
|
||||||
mailu_version: "{{ applications | get_app_conf(application_id, 'docker.services.mailu.version', True) }}"
|
mailu_version: "{{ applications | get_app_conf(application_id, 'docker.services.mailu.version', True) }}"
|
||||||
mailu_name: "{{ applications | get_app_conf(application_id, 'docker.services.mailu.name', True) }}"
|
mailu_name: "{{ applications | get_app_conf(application_id, 'docker.services.mailu.name', True) }}"
|
||||||
mailu_smtp_queue: "mailu_smtp_queue"
|
mailu_smtp_queue: "mailu_smtp_queue"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user