Sfoglia il codice sorgente

Rename matrix_postmoogle_* variables to matrix_bridge_postmoogle_*

Part of adopting a uniform naming policy for bridge variables,
where the variable prefix matches the role directory name.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pull/5434/head
Slavi Pantaleev 22 ore fa
parent
commit
b68674d5da
11 ha cambiato i file con 228 aggiunte e 228 eliminazioni
  1. +7
    -7
      docs/configuring-playbook-bridge-postmoogle.md
  2. +28
    -28
      group_vars/matrix_servers
  3. +89
    -89
      roles/custom/matrix-bridge-postmoogle/defaults/main.yml
  4. +3
    -3
      roles/custom/matrix-bridge-postmoogle/tasks/main.yml
  5. +36
    -36
      roles/custom/matrix-bridge-postmoogle/tasks/setup_install.yml
  6. +3
    -3
      roles/custom/matrix-bridge-postmoogle/tasks/setup_uninstall.yml
  7. +14
    -14
      roles/custom/matrix-bridge-postmoogle/tasks/validate_config.yml
  8. +30
    -30
      roles/custom/matrix-bridge-postmoogle/templates/env.j2
  9. +14
    -14
      roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2
  10. +2
    -2
      roles/custom/matrix_playbook_migration/defaults/main.yml
  11. +2
    -2
      roles/custom/matrix_playbook_migration/tasks/validate_config.yml

+ 7
- 7
docs/configuring-playbook-bridge-postmoogle.md Vedi File

@@ -24,7 +24,7 @@ Open the following ports on your server to be able to receive incoming emails:


If you don't open these ports, you will still be able to send emails, but not receive any. If you don't open these ports, you will still be able to send emails, but not receive any.


These port numbers are configurable via the `matrix_postmoogle_smtp_host_bind_port` and `matrix_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use.
These port numbers are configurable via the `matrix_bridge_postmoogle_smtp_host_bind_port` and `matrix_bridge_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use.


## Adjusting DNS records ## Adjusting DNS records


@@ -44,17 +44,17 @@ To make Postmoogle enable its email sending features, you need to configure MX a
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:


```yaml ```yaml
matrix_postmoogle_enabled: true
matrix_bridge_postmoogle_enabled: true


# Uncomment and adjust this part if you'd like to use a username different than the default # Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_postmoogle_login: postmoogle
# matrix_bridge_postmoogle_login: postmoogle


# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. # Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`.
matrix_postmoogle_password: PASSWORD_FOR_THE_BOT
matrix_bridge_postmoogle_password: PASSWORD_FOR_THE_BOT


# Uncomment to add one or more admins to this bridge: # Uncomment to add one or more admins to this bridge:
# #
# matrix_postmoogle_admins:
# matrix_bridge_postmoogle_admins:
# - '@yourAdminAccount:{{ matrix_domain }}' # - '@yourAdminAccount:{{ matrix_domain }}'
# #
# … unless you've made yourself an admin of all bots/bridges like this: # … unless you've made yourself an admin of all bots/bridges like this:
@@ -87,7 +87,7 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use


`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.


- If you change the bridge's bot password (`matrix_postmoogle_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [Ketesa](configuring-playbook-ketesa.md) to change it, and then update `matrix_postmoogle_password` to let the bot know its new password.
- If you change the bridge's bot password (`matrix_bridge_postmoogle_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [Ketesa](configuring-playbook-ketesa.md) to change it, and then update `matrix_bridge_postmoogle_password` to let the bot know its new password.


## Usage ## Usage


@@ -108,5 +108,5 @@ As with all other services, you can find the logs in [systemd-journald](https://
The default logging level for this component is `INFO`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: The default logging level for this component is `INFO`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:


```yaml ```yaml
matrix_postmoogle_loglevel: 'DEBUG'
matrix_bridge_postmoogle_loglevel: 'DEBUG'
``` ```

+ 28
- 28
group_vars/matrix_servers Vedi File

@@ -534,9 +534,9 @@ devture_systemd_service_manager_services_list_auto: |
([{ ([{
'name': 'matrix-postmoogle.service', 'name': 'matrix-postmoogle.service',
'priority': 2200, 'priority': 2200,
'restart_necessary': (matrix_postmoogle_restart_necessary | bool),
'restart_necessary': (matrix_bridge_postmoogle_restart_necessary | bool),
'groups': ['matrix', 'bridges', 'postmoogle'], 'groups': ['matrix', 'bridges', 'postmoogle'],
}] if matrix_postmoogle_enabled else [])
}] if matrix_bridge_postmoogle_enabled else [])
+ +
([{ ([{
'name': 'matrix-sms-bridge.service', 'name': 'matrix-sms-bridge.service',
@@ -2775,13 +2775,13 @@ matrix_bridge_mx_puppet_groupme_database_password: "{{ (matrix_homeserver_generi
###################################################################### ######################################################################


# We don't enable bridges by default. # We don't enable bridges by default.
matrix_postmoogle_enabled: false
matrix_bridge_postmoogle_enabled: false


matrix_postmoogle_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_postmoogle_container_image_registry_prefix_upstream_default }}"
matrix_bridge_postmoogle_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bridge_postmoogle_container_image_registry_prefix_upstream_default }}"


matrix_postmoogle_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}"
matrix_bridge_postmoogle_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}"


matrix_postmoogle_ssl_path: |-
matrix_bridge_postmoogle_ssl_path: |-
{{ {{
{ {
'playbook-managed-traefik': (traefik_certs_dumper_dumped_certificates_path if traefik_certs_dumper_enabled else ''), 'playbook-managed-traefik': (traefik_certs_dumper_dumped_certificates_path if traefik_certs_dumper_enabled else ''),
@@ -2790,10 +2790,10 @@ matrix_postmoogle_ssl_path: |-
}[matrix_playbook_reverse_proxy_type] }[matrix_playbook_reverse_proxy_type]
}} }}


matrix_playbook_bridge_postmoogle_traefik_tls_cert: "{% for domain in matrix_postmoogle_domains %}/ssl/{{ domain }}/certificate.crt {% endfor %}"
matrix_playbook_bridge_postmoogle_traefik_key: "{% for domain in matrix_postmoogle_domains %}/ssl/{{ domain }}/privatekey.key {% endfor %}"
matrix_playbook_bridge_postmoogle_traefik_tls_cert: "{% for domain in matrix_bridge_postmoogle_domains %}/ssl/{{ domain }}/certificate.crt {% endfor %}"
matrix_playbook_bridge_postmoogle_traefik_key: "{% for domain in matrix_bridge_postmoogle_domains %}/ssl/{{ domain }}/privatekey.key {% endfor %}"


matrix_postmoogle_tls_cert: |-
matrix_bridge_postmoogle_tls_cert: |-
{{ {{
{ {
'playbook-managed-traefik': (matrix_playbook_bridge_postmoogle_traefik_tls_cert if traefik_certs_dumper_enabled else ''), 'playbook-managed-traefik': (matrix_playbook_bridge_postmoogle_traefik_tls_cert if traefik_certs_dumper_enabled else ''),
@@ -2802,7 +2802,7 @@ matrix_postmoogle_tls_cert: |-
}[matrix_playbook_reverse_proxy_type] }[matrix_playbook_reverse_proxy_type]
}} }}


matrix_postmoogle_tls_key: |-
matrix_bridge_postmoogle_tls_key: |-
{{ {{
{ {
'playbook-managed-traefik': (matrix_playbook_bridge_postmoogle_traefik_key if traefik_certs_dumper_enabled else ''), 'playbook-managed-traefik': (matrix_playbook_bridge_postmoogle_traefik_key if traefik_certs_dumper_enabled else ''),
@@ -2811,27 +2811,27 @@ matrix_postmoogle_tls_key: |-
}[matrix_playbook_reverse_proxy_type] }[matrix_playbook_reverse_proxy_type]
}} }}


matrix_playbook_bridge_postmoogle_traefik_certs_dumper_waiter_services: "{% for domain in matrix_postmoogle_domains %}{{ traefik_certs_dumper_identifier }}-wait-for-domain@{{ domain }}.service {% endfor %}"
matrix_playbook_bridge_postmoogle_traefik_certs_dumper_waiter_services: "{% for domain in matrix_bridge_postmoogle_domains %}{{ traefik_certs_dumper_identifier }}-wait-for-domain@{{ domain }}.service {% endfor %}"


matrix_postmoogle_systemd_required_services_list_auto: |
matrix_bridge_postmoogle_systemd_required_services_list_auto: |
{{ {{
matrix_addons_homeserver_systemd_services_list matrix_addons_homeserver_systemd_services_list
+ +
([postgres_identifier ~ '.service'] if postgres_enabled and matrix_postmoogle_database_hostname == matrix_postmoogle_database_hostname else [])
([postgres_identifier ~ '.service'] if postgres_enabled and matrix_bridge_postmoogle_database_hostname == matrix_bridge_postmoogle_database_hostname else [])
+ +
(matrix_playbook_bridge_postmoogle_traefik_certs_dumper_waiter_services | trim | split(' ') if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled else []) (matrix_playbook_bridge_postmoogle_traefik_certs_dumper_waiter_services | trim | split(' ') if matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and traefik_certs_dumper_enabled else [])
}} }}


# Postgres is the default, except if not using internal Postgres server # Postgres is the default, except if not using internal Postgres server
matrix_postmoogle_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}"
matrix_postmoogle_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
matrix_postmoogle_database_password: "{{ (matrix_homeserver_generic_secret_key + ':postmoogle.db') | hash('sha512') | to_uuid }}"
matrix_bridge_postmoogle_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}"
matrix_bridge_postmoogle_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
matrix_bridge_postmoogle_database_password: "{{ (matrix_homeserver_generic_secret_key + ':postmoogle.db') | hash('sha512') | to_uuid }}"


matrix_postmoogle_homeserver: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_bridge_postmoogle_homeserver: "{{ matrix_addons_homeserver_client_api_url }}"


matrix_postmoogle_container_network: "{{ matrix_addons_container_network }}"
matrix_bridge_postmoogle_container_network: "{{ matrix_addons_container_network }}"


matrix_postmoogle_container_additional_networks_auto: |-
matrix_bridge_postmoogle_container_additional_networks_auto: |-
{{ {{
( (
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
@@ -4123,10 +4123,10 @@ postgres_managed_databases_auto: |
}] if (matrix_bot_honoroit_enabled and matrix_bot_honoroit_database_engine == 'postgres' and matrix_bot_honoroit_database_hostname == postgres_connection_hostname) else []) }] if (matrix_bot_honoroit_enabled and matrix_bot_honoroit_database_engine == 'postgres' and matrix_bot_honoroit_database_hostname == postgres_connection_hostname) else [])
+ +
([{ ([{
'name': matrix_postmoogle_database_name,
'username': matrix_postmoogle_database_username,
'password': matrix_postmoogle_database_password,
}] if (matrix_postmoogle_enabled and matrix_postmoogle_database_engine == 'postgres' and matrix_postmoogle_database_hostname == postgres_connection_hostname) else [])
'name': matrix_bridge_postmoogle_database_name,
'username': matrix_bridge_postmoogle_database_username,
'password': matrix_bridge_postmoogle_database_password,
}] if (matrix_bridge_postmoogle_enabled and matrix_bridge_postmoogle_database_engine == 'postgres' and matrix_bridge_postmoogle_database_hostname == postgres_connection_hostname) else [])
+ +
([{ ([{
'name': matrix_bot_maubot_database_name, 'name': matrix_bot_maubot_database_name,
@@ -5095,8 +5095,8 @@ matrix_ketesa_config_asManagedUsers_auto: |
] if matrix_bot_maubot_enabled else []) ] if matrix_bot_maubot_enabled else [])
+ +
([ ([
'^@'+(matrix_postmoogle_login | default('') | regex_escape) +':'+(matrix_domain | regex_escape)+'$',
] if matrix_postmoogle_enabled else [])
'^@'+(matrix_bridge_postmoogle_login | default('') | regex_escape) +':'+(matrix_domain | regex_escape)+'$',
] if matrix_bridge_postmoogle_enabled else [])
+ +
([ ([
'^@_discord_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', '^@_discord_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
@@ -5874,10 +5874,10 @@ matrix_user_creator_users_auto: |
}] if matrix_bot_honoroit_enabled else []) }] if matrix_bot_honoroit_enabled else [])
+ +
([{ ([{
'username': matrix_postmoogle_login,
'initial_password': matrix_postmoogle_password,
'username': matrix_bridge_postmoogle_login,
'initial_password': matrix_bridge_postmoogle_password,
'initial_type': 'bot', 'initial_type': 'bot',
}] if matrix_postmoogle_enabled else [])
}] if matrix_bridge_postmoogle_enabled else [])
+ +
([{ ([{
'username': matrix_bot_buscarron_login, 'username': matrix_bot_buscarron_login,


+ 89
- 89
roles/custom/matrix-bridge-postmoogle/defaults/main.yml Vedi File

@@ -10,180 +10,180 @@
# postmoogle is an email to Matrix bridge using its bot user # postmoogle is an email to Matrix bridge using its bot user
# Project source code URL: https://github.com/etkecc/postmoogle # Project source code URL: https://github.com/etkecc/postmoogle


matrix_postmoogle_enabled: true
matrix_bridge_postmoogle_enabled: true


matrix_postmoogle_container_image_self_build: false
matrix_postmoogle_container_repo: "https://github.com/etkecc/postmoogle.git"
matrix_postmoogle_container_repo_version: "{{ 'main' if matrix_postmoogle_version == 'latest' else matrix_postmoogle_version }}"
matrix_postmoogle_container_src_files_path: "{{ matrix_base_data_path }}/postmoogle/docker-src"
matrix_bridge_postmoogle_container_image_self_build: false
matrix_bridge_postmoogle_container_repo: "https://github.com/etkecc/postmoogle.git"
matrix_bridge_postmoogle_container_repo_version: "{{ 'main' if matrix_bridge_postmoogle_version == 'latest' else matrix_bridge_postmoogle_version }}"
matrix_bridge_postmoogle_container_src_files_path: "{{ matrix_base_data_path }}/postmoogle/docker-src"


# renovate: datasource=docker depName=ghcr.io/etkecc/postmoogle # renovate: datasource=docker depName=ghcr.io/etkecc/postmoogle
matrix_postmoogle_version: v0.9.31
matrix_postmoogle_container_image: "{{ matrix_postmoogle_container_image_registry_prefix }}etkecc/postmoogle:{{ matrix_postmoogle_version }}"
matrix_postmoogle_container_image_registry_prefix: "{{ 'localhost/' if matrix_postmoogle_container_image_self_build else matrix_postmoogle_container_image_registry_prefix_upstream }}"
matrix_postmoogle_container_image_registry_prefix_upstream: "{{ matrix_postmoogle_container_image_registry_prefix_upstream_default }}"
matrix_postmoogle_container_image_registry_prefix_upstream_default: "ghcr.io/"
matrix_bridge_postmoogle_version: v0.9.31
matrix_bridge_postmoogle_container_image: "{{ matrix_bridge_postmoogle_container_image_registry_prefix }}etkecc/postmoogle:{{ matrix_bridge_postmoogle_version }}"
matrix_bridge_postmoogle_container_image_registry_prefix: "{{ 'localhost/' if matrix_bridge_postmoogle_container_image_self_build else matrix_bridge_postmoogle_container_image_registry_prefix_upstream }}"
matrix_bridge_postmoogle_container_image_registry_prefix_upstream: "{{ matrix_bridge_postmoogle_container_image_registry_prefix_upstream_default }}"
matrix_bridge_postmoogle_container_image_registry_prefix_upstream_default: "ghcr.io/"


matrix_postmoogle_base_path: "{{ matrix_base_data_path }}/postmoogle"
matrix_postmoogle_config_path: "{{ matrix_postmoogle_base_path }}/config"
matrix_postmoogle_data_path: "{{ matrix_postmoogle_base_path }}/data"
matrix_bridge_postmoogle_base_path: "{{ matrix_base_data_path }}/postmoogle"
matrix_bridge_postmoogle_config_path: "{{ matrix_bridge_postmoogle_base_path }}/config"
matrix_bridge_postmoogle_data_path: "{{ matrix_bridge_postmoogle_base_path }}/data"


matrix_postmoogle_container_network: ""
matrix_bridge_postmoogle_container_network: ""


matrix_postmoogle_container_additional_networks: "{{ matrix_postmoogle_container_additional_networks_auto + matrix_postmoogle_container_additional_networks_custom }}"
matrix_postmoogle_container_additional_networks_auto: []
matrix_postmoogle_container_additional_networks_custom: []
matrix_bridge_postmoogle_container_additional_networks: "{{ matrix_bridge_postmoogle_container_additional_networks_auto + matrix_bridge_postmoogle_container_additional_networks_custom }}"
matrix_bridge_postmoogle_container_additional_networks_auto: []
matrix_bridge_postmoogle_container_additional_networks_custom: []


# A list of extra arguments to pass to the container # A list of extra arguments to pass to the container
matrix_postmoogle_container_extra_arguments: []
matrix_bridge_postmoogle_container_extra_arguments: []


# List of systemd services that matrix-postmoogle.service depends on # List of systemd services that matrix-postmoogle.service depends on
matrix_postmoogle_systemd_required_services_list: "{{ matrix_postmoogle_systemd_required_services_list_default + matrix_postmoogle_systemd_required_services_list_auto + matrix_postmoogle_systemd_required_services_list_custom }}"
matrix_postmoogle_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_postmoogle_systemd_required_services_list_auto: []
matrix_postmoogle_systemd_required_services_list_custom: []
matrix_bridge_postmoogle_systemd_required_services_list: "{{ matrix_bridge_postmoogle_systemd_required_services_list_default + matrix_bridge_postmoogle_systemd_required_services_list_auto + matrix_bridge_postmoogle_systemd_required_services_list_custom }}"
matrix_bridge_postmoogle_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bridge_postmoogle_systemd_required_services_list_auto: []
matrix_bridge_postmoogle_systemd_required_services_list_custom: []


# List of systemd services that matrix-postmoogle.service wants # List of systemd services that matrix-postmoogle.service wants
matrix_postmoogle_systemd_wanted_services_list: []
matrix_bridge_postmoogle_systemd_wanted_services_list: []


# Database-related configuration fields. # Database-related configuration fields.
# #
# To use SQLite, stick to these defaults. # To use SQLite, stick to these defaults.
# #
# To use Postgres: # To use Postgres:
# - change the engine (`matrix_postmoogle_database_engine: 'postgres'`)
# - adjust your database credentials via the `matrix_postmoogle_database_*` variables
matrix_postmoogle_database_engine: 'sqlite'
# - change the engine (`matrix_bridge_postmoogle_database_engine: 'postgres'`)
# - adjust your database credentials via the `matrix_bridge_postmoogle_database_*` variables
matrix_bridge_postmoogle_database_engine: 'sqlite'


matrix_postmoogle_sqlite_database_path_local: "{{ matrix_postmoogle_data_path }}/bot.db"
matrix_postmoogle_sqlite_database_path_in_container: "/data/bot.db"
matrix_bridge_postmoogle_sqlite_database_path_local: "{{ matrix_bridge_postmoogle_data_path }}/bot.db"
matrix_bridge_postmoogle_sqlite_database_path_in_container: "/data/bot.db"


matrix_postmoogle_database_username: 'postmoogle'
matrix_postmoogle_database_password: 'some-password'
matrix_postmoogle_database_hostname: ''
matrix_postmoogle_database_port: 5432
matrix_postmoogle_database_name: 'postmoogle'
matrix_postmoogle_database_sslmode: disable
matrix_bridge_postmoogle_database_username: 'postmoogle'
matrix_bridge_postmoogle_database_password: 'some-password'
matrix_bridge_postmoogle_database_hostname: ''
matrix_bridge_postmoogle_database_port: 5432
matrix_bridge_postmoogle_database_name: 'postmoogle'
matrix_bridge_postmoogle_database_sslmode: disable


matrix_postmoogle_database_connection_string: 'postgres://{{ matrix_postmoogle_database_username }}:{{ matrix_postmoogle_database_password }}@{{ matrix_postmoogle_database_hostname }}:{{ matrix_postmoogle_database_port }}/{{ matrix_postmoogle_database_name }}?sslmode={{ matrix_postmoogle_database_sslmode }}'
matrix_bridge_postmoogle_database_connection_string: 'postgres://{{ matrix_bridge_postmoogle_database_username }}:{{ matrix_bridge_postmoogle_database_password }}@{{ matrix_bridge_postmoogle_database_hostname }}:{{ matrix_bridge_postmoogle_database_port }}/{{ matrix_bridge_postmoogle_database_name }}?sslmode={{ matrix_bridge_postmoogle_database_sslmode }}'


matrix_postmoogle_storage_database: "{{ {
'sqlite': matrix_postmoogle_sqlite_database_path_in_container,
'postgres': matrix_postmoogle_database_connection_string,
}[matrix_postmoogle_database_engine] }}"
matrix_bridge_postmoogle_storage_database: "{{ {
'sqlite': matrix_bridge_postmoogle_sqlite_database_path_in_container,
'postgres': matrix_bridge_postmoogle_database_connection_string,
}[matrix_bridge_postmoogle_database_engine] }}"


matrix_postmoogle_database_dialect: "{{ {
matrix_bridge_postmoogle_database_dialect: "{{ {
'sqlite': 'sqlite3', 'sqlite': 'sqlite3',
'postgres': 'postgres', 'postgres': 'postgres',
}[matrix_postmoogle_database_engine] }}"
}[matrix_bridge_postmoogle_database_engine] }}"




# The bot's username. This user needs to be created manually beforehand. # The bot's username. This user needs to be created manually beforehand.
# Also see `matrix_postmoogle_password` or `matrix_postmoogle_sharedsecret`
matrix_postmoogle_login: "postmoogle"
# Also see `matrix_bridge_postmoogle_password` or `matrix_bridge_postmoogle_sharedsecret`
matrix_bridge_postmoogle_login: "postmoogle"


# The password that the bot uses to authenticate. # The password that the bot uses to authenticate.
matrix_postmoogle_password: ''
matrix_bridge_postmoogle_password: ''


# Alternative to password - shared secret requires matrix_postmoogle_login to be MXID
matrix_postmoogle_sharedsecret: ''
# Alternative to password - shared secret requires matrix_bridge_postmoogle_login to be MXID
matrix_bridge_postmoogle_sharedsecret: ''


matrix_postmoogle_homeserver: ""
matrix_bridge_postmoogle_homeserver: ""


# Command prefix # Command prefix
matrix_postmoogle_prefix: '!pm'
matrix_bridge_postmoogle_prefix: '!pm'


# Max email size in megabytes, including attachments # Max email size in megabytes, including attachments
matrix_postmoogle_maxsize: '1024'
matrix_bridge_postmoogle_maxsize: '1024'


# Optional SMTP relay mode # Optional SMTP relay mode
matrix_postmoogle_relay_host: ''
matrix_postmoogle_relay_port: ''
matrix_postmoogle_relay_username: ''
matrix_postmoogle_relay_password: ''
matrix_bridge_postmoogle_relay_host: ''
matrix_bridge_postmoogle_relay_port: ''
matrix_bridge_postmoogle_relay_username: ''
matrix_bridge_postmoogle_relay_password: ''


# A list of admins # A list of admins
# Example set of rules: # Example set of rules:
# matrix_postmoogle_admins:
# matrix_bridge_postmoogle_admins:
# - '@alice:example.com' # - '@alice:example.com'
# - '@bob:example.com' # - '@bob:example.com'
# - '@bot.*:example.com' # - '@bot.*:example.com'
# - '@*:example.net' # - '@*:example.net'
matrix_postmoogle_admins: "{{ [matrix_admin] if matrix_admin else [] }}"
matrix_bridge_postmoogle_admins: "{{ [matrix_admin] if matrix_admin else [] }}"


# Sentry DSN. Deprecated, use matrix_postmoogle_monitoring_sentry_dsn
matrix_postmoogle_sentry: ''
# Sentry DSN. Deprecated, use matrix_bridge_postmoogle_monitoring_sentry_dsn
matrix_bridge_postmoogle_sentry: ''


# Sentry integration # Sentry integration
matrix_postmoogle_monitoring_sentry_dsn: "{{ matrix_postmoogle_sentry }}"
matrix_postmoogle_monitoring_sentry_rate: 20
matrix_bridge_postmoogle_monitoring_sentry_dsn: "{{ matrix_bridge_postmoogle_sentry }}"
matrix_bridge_postmoogle_monitoring_sentry_rate: 20


# healthchecks.io integration # healthchecks.io integration
matrix_postmoogle_monitoring_healthchecks_uuid: ''
matrix_postmoogle_monitoring_healthchecks_duration: 60
matrix_bridge_postmoogle_monitoring_healthchecks_uuid: ''
matrix_bridge_postmoogle_monitoring_healthchecks_duration: 60


# Log level # Log level
matrix_postmoogle_loglevel: 'INFO'
matrix_bridge_postmoogle_loglevel: 'INFO'


# deprecated, use matrix_postmoogle_domains
matrix_postmoogle_domain: "{{ matrix_server_fqn_matrix }}"
# deprecated, use matrix_bridge_postmoogle_domains
matrix_bridge_postmoogle_domain: "{{ matrix_server_fqn_matrix }}"


matrix_postmoogle_domains:
- "{{ matrix_postmoogle_domain }}" # backward compatibility
matrix_bridge_postmoogle_domains:
- "{{ matrix_bridge_postmoogle_domain }}" # backward compatibility


# Password (passphrase) to encrypt account data # Password (passphrase) to encrypt account data
matrix_postmoogle_data_secret: ""
matrix_bridge_postmoogle_data_secret: ""


# in-container ports # in-container ports
matrix_postmoogle_port: '2525'
matrix_postmoogle_tls_port: '25587'
matrix_bridge_postmoogle_port: '2525'
matrix_bridge_postmoogle_tls_port: '25587'


# on-host ports # on-host ports
matrix_postmoogle_smtp_host_bind_port: '25'
matrix_postmoogle_submission_host_bind_port: '587'
matrix_bridge_postmoogle_smtp_host_bind_port: '25'
matrix_bridge_postmoogle_submission_host_bind_port: '587'


### SSL ### SSL
## on-host SSL dir ## on-host SSL dir
matrix_postmoogle_ssl_path: ""
matrix_bridge_postmoogle_ssl_path: ""


## in-container SSL paths ## in-container SSL paths
# matrix_postmoogle_tls_cert is the SSL certificates' certificates.
# matrix_bridge_postmoogle_tls_cert is the SSL certificates' certificates.
# This var is likely set via group_vars/matrix_servers, so you don't need to set certs manually. # This var is likely set via group_vars/matrix_servers, so you don't need to set certs manually.
# If you do need to set it manually, note that this is an in-container path. # If you do need to set it manually, note that this is an in-container path.
# To mount a certificates volumes into the container, use matrix_postmoogle_ssl_path
# Example value: /ssl/live/{{ matrix_postmoogle_domain }}/fullchain.pem
matrix_postmoogle_tls_cert: ""
# To mount a certificates volumes into the container, use matrix_bridge_postmoogle_ssl_path
# Example value: /ssl/live/{{ matrix_bridge_postmoogle_domain }}/fullchain.pem
matrix_bridge_postmoogle_tls_cert: ""


# matrix_postmoogle_tls_key is the SSL certificates' keys.
# matrix_bridge_postmoogle_tls_key is the SSL certificates' keys.
# This var is likely set via group_vars/matrix_servers, so you don't need to set keys manually. # This var is likely set via group_vars/matrix_servers, so you don't need to set keys manually.
# If you do need to set it manually, note that this is an in-container path. # If you do need to set it manually, note that this is an in-container path.
# To mount a certificates volumes into the container, use matrix_postmoogle_ssl_path
# Example value: /ssl/live/{{ matrix_postmoogle_domain }}/privkey.pem
matrix_postmoogle_tls_key: ""
# To mount a certificates volumes into the container, use matrix_bridge_postmoogle_ssl_path
# Example value: /ssl/live/{{ matrix_bridge_postmoogle_domain }}/privkey.pem
matrix_bridge_postmoogle_tls_key: ""


# Mandatory TLS, even on plain SMTP port # Mandatory TLS, even on plain SMTP port
matrix_postmoogle_tls_required: false
matrix_bridge_postmoogle_tls_required: false


# trusted proxies # trusted proxies
matrix_postmoogle_proxies: []
matrix_bridge_postmoogle_proxies: []


# known forwarders # known forwarders
matrix_postmoogle_mailboxes_forwarded: []
matrix_bridge_postmoogle_mailboxes_forwarded: []


# reserved mailboxes # reserved mailboxes
matrix_postmoogle_mailboxes_reserved: []
matrix_bridge_postmoogle_mailboxes_reserved: []


# mailbox activation flow # mailbox activation flow
matrix_postmoogle_mailboxes_activation: none
matrix_bridge_postmoogle_mailboxes_activation: none


# Additional environment variables to pass to the postmoogle container # Additional environment variables to pass to the postmoogle container
# #
# Example: # Example:
# matrix_postmoogle_environment_variables_extension: |
# matrix_bridge_postmoogle_environment_variables_extension: |
# postmoogle_TEXT_DONE=Done # postmoogle_TEXT_DONE=Done
matrix_postmoogle_environment_variables_extension: ''
matrix_bridge_postmoogle_environment_variables_extension: ''


# matrix_postmoogle_restart_necessary controls whether the service
# matrix_bridge_postmoogle_restart_necessary controls whether the service
# will be restarted (when true) or merely started (when false) by the # will be restarted (when true) or merely started (when false) by the
# systemd service manager role (when conditional restart is enabled). # systemd service manager role (when conditional restart is enabled).
# #
@@ -191,4 +191,4 @@ matrix_postmoogle_environment_variables_extension: ''
# any configuration files, the systemd service file, or the container image changed. # any configuration files, the systemd service file, or the container image changed.
# The default of `false` means "no restart needed" — appropriate when the role's # The default of `false` means "no restart needed" — appropriate when the role's
# installation tasks haven't run (e.g., due to --tags skipping them). # installation tasks haven't run (e.g., due to --tags skipping them).
matrix_postmoogle_restart_necessary: false
matrix_bridge_postmoogle_restart_necessary: false

+ 3
- 3
roles/custom/matrix-bridge-postmoogle/tasks/main.yml Vedi File

@@ -12,15 +12,15 @@
- install-all - install-all
- install-postmoogle - install-postmoogle
block: block:
- when: matrix_postmoogle_enabled | bool
- when: matrix_bridge_postmoogle_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"


- when: matrix_postmoogle_enabled | bool
- when: matrix_bridge_postmoogle_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"


- tags: - tags:
- setup-all - setup-all
- setup-postmoogle - setup-postmoogle
block: block:
- when: not matrix_postmoogle_enabled | bool
- when: not matrix_bridge_postmoogle_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"

+ 36
- 36
roles/custom/matrix-bridge-postmoogle/tasks/setup_install.yml Vedi File

@@ -32,29 +32,29 @@
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-bot-postmoogle.service" path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-bot-postmoogle.service"
state: absent state: absent


- when: "matrix_postmoogle_database_engine == 'postgres'"
- when: "matrix_bridge_postmoogle_database_engine == 'postgres'"
block: block:
- name: Check if an SQLite database already exists - name: Check if an SQLite database already exists
ansible.builtin.stat: ansible.builtin.stat:
path: "{{ matrix_postmoogle_sqlite_database_path_local }}"
register: matrix_postmoogle_sqlite_database_path_local_stat_result
path: "{{ matrix_bridge_postmoogle_sqlite_database_path_local }}"
register: matrix_bridge_postmoogle_sqlite_database_path_local_stat_result


- when: "matrix_postmoogle_sqlite_database_path_local_stat_result.stat.exists | bool"
- when: "matrix_bridge_postmoogle_sqlite_database_path_local_stat_result.stat.exists | bool"
block: block:
- ansible.builtin.include_role: - ansible.builtin.include_role:
name: galaxy/postgres name: galaxy/postgres
tasks_from: migrate_db_to_postgres tasks_from: migrate_db_to_postgres
vars: vars:
postgres_db_migration_request: postgres_db_migration_request:
src: "{{ matrix_postmoogle_sqlite_database_path_local }}"
dst: "{{ matrix_postmoogle_database_connection_string }}"
src: "{{ matrix_bridge_postmoogle_sqlite_database_path_local }}"
dst: "{{ matrix_bridge_postmoogle_database_connection_string }}"
caller: "{{ role_path | basename }}" caller: "{{ role_path | basename }}"
engine_variable_name: 'matrix_postmoogle_database_engine'
engine_variable_name: 'matrix_bridge_postmoogle_database_engine'
engine_old: 'sqlite' engine_old: 'sqlite'
systemd_services_to_stop: ['matrix-postmoogle.service'] systemd_services_to_stop: ['matrix-postmoogle.service']


- ansible.builtin.set_fact: - ansible.builtin.set_fact:
matrix_postmoogle_migration_requires_restart: true
matrix_bridge_postmoogle_migration_requires_restart: true


- name: Ensure postmoogle paths exist - name: Ensure postmoogle paths exist
ansible.builtin.file: ansible.builtin.file:
@@ -64,56 +64,56 @@
owner: "{{ matrix_user_name }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}" group: "{{ matrix_group_name }}"
with_items: with_items:
- {path: "{{ matrix_postmoogle_config_path }}", when: true}
- {path: "{{ matrix_postmoogle_data_path }}", when: true}
- {path: "{{ matrix_postmoogle_container_src_files_path }}", when: "{{ matrix_postmoogle_container_image_self_build }}"}
- {path: "{{ matrix_bridge_postmoogle_config_path }}", when: true}
- {path: "{{ matrix_bridge_postmoogle_data_path }}", when: true}
- {path: "{{ matrix_bridge_postmoogle_container_src_files_path }}", when: "{{ matrix_bridge_postmoogle_container_image_self_build }}"}
when: "item.when | bool" when: "item.when | bool"


- name: Ensure postmoogle environment variables file created - name: Ensure postmoogle environment variables file created
ansible.builtin.template: ansible.builtin.template:
src: "{{ role_path }}/templates/env.j2" src: "{{ role_path }}/templates/env.j2"
dest: "{{ matrix_postmoogle_config_path }}/env"
dest: "{{ matrix_bridge_postmoogle_config_path }}/env"
owner: "{{ matrix_user_name }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}" group: "{{ matrix_group_name }}"
mode: '0640' mode: '0640'
register: matrix_postmoogle_env_result
register: matrix_bridge_postmoogle_env_result


- name: Ensure postmoogle image is pulled - name: Ensure postmoogle image is pulled
community.docker.docker_image_pull: community.docker.docker_image_pull:
name: "{{ matrix_postmoogle_container_image }}"
name: "{{ matrix_bridge_postmoogle_container_image }}"
pull: always pull: always
when: "not matrix_postmoogle_container_image_self_build | bool"
register: matrix_postmoogle_container_image_pull_result
when: "not matrix_bridge_postmoogle_container_image_self_build | bool"
register: matrix_bridge_postmoogle_container_image_pull_result
retries: "{{ devture_playbook_help_container_retries_count }}" retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}" delay: "{{ devture_playbook_help_container_retries_delay }}"
until: matrix_postmoogle_container_image_pull_result is not failed
until: matrix_bridge_postmoogle_container_image_pull_result is not failed


- name: Ensure postmoogle repository is present on self-build - name: Ensure postmoogle repository is present on self-build
ansible.builtin.git: ansible.builtin.git:
repo: "{{ matrix_postmoogle_container_repo }}"
version: "{{ matrix_postmoogle_container_repo_version }}"
dest: "{{ matrix_postmoogle_container_src_files_path }}"
repo: "{{ matrix_bridge_postmoogle_container_repo }}"
version: "{{ matrix_bridge_postmoogle_container_repo_version }}"
dest: "{{ matrix_bridge_postmoogle_container_src_files_path }}"
force: "yes" force: "yes"
become: true become: true
become_user: "{{ matrix_user_name }}" become_user: "{{ matrix_user_name }}"
register: matrix_postmoogle_git_pull_results
when: "matrix_postmoogle_container_image_self_build | bool"
register: matrix_bridge_postmoogle_git_pull_results
when: "matrix_bridge_postmoogle_container_image_self_build | bool"


- name: Ensure postmoogle image is built - name: Ensure postmoogle image is built
community.docker.docker_image_build: community.docker.docker_image_build:
name: "{{ matrix_postmoogle_container_image }}"
name: "{{ matrix_bridge_postmoogle_container_image }}"
dockerfile: Dockerfile dockerfile: Dockerfile
path: "{{ matrix_postmoogle_container_src_files_path }}"
path: "{{ matrix_bridge_postmoogle_container_src_files_path }}"
pull: true pull: true
rebuild: "{{ 'always' if matrix_postmoogle_git_pull_results.changed | bool else 'never' }}"
when: "matrix_postmoogle_container_image_self_build | bool"
register: matrix_postmoogle_container_image_build_result
rebuild: "{{ 'always' if matrix_bridge_postmoogle_git_pull_results.changed | bool else 'never' }}"
when: "matrix_bridge_postmoogle_container_image_self_build | bool"
register: matrix_bridge_postmoogle_container_image_build_result


- name: Ensure postmoogle container network is created - name: Ensure postmoogle container network is created
when: matrix_postmoogle_container_network != 'host'
when: matrix_bridge_postmoogle_container_network != 'host'
community.general.docker_network: community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_postmoogle_container_network }}"
name: "{{ matrix_bridge_postmoogle_container_network }}"
driver: bridge driver: bridge
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"


@@ -122,15 +122,15 @@
src: "{{ role_path }}/templates/systemd/matrix-postmoogle.service.j2" src: "{{ role_path }}/templates/systemd/matrix-postmoogle.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-postmoogle.service" dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-postmoogle.service"
mode: '0644' mode: '0644'
register: matrix_postmoogle_systemd_service_result
register: matrix_bridge_postmoogle_systemd_service_result


- name: Determine whether matrix-postmoogle needs a restart - name: Determine whether matrix-postmoogle needs a restart
ansible.builtin.set_fact: ansible.builtin.set_fact:
matrix_postmoogle_restart_necessary: >-
matrix_bridge_postmoogle_restart_necessary: >-
{{ {{
matrix_postmoogle_migration_requires_restart | default(false)
or matrix_postmoogle_env_result.changed | default(false)
or matrix_postmoogle_systemd_service_result.changed | default(false)
or matrix_postmoogle_container_image_pull_result.changed | default(false)
or matrix_postmoogle_container_image_build_result.changed | default(false)
matrix_bridge_postmoogle_migration_requires_restart | default(false)
or matrix_bridge_postmoogle_env_result.changed | default(false)
or matrix_bridge_postmoogle_systemd_service_result.changed | default(false)
or matrix_bridge_postmoogle_container_image_pull_result.changed | default(false)
or matrix_bridge_postmoogle_container_image_build_result.changed | default(false)
}} }}

+ 3
- 3
roles/custom/matrix-bridge-postmoogle/tasks/setup_uninstall.yml Vedi File

@@ -10,9 +10,9 @@
- name: Check existence of matrix-postmoogle service - name: Check existence of matrix-postmoogle service
ansible.builtin.stat: ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-postmoogle.service" path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-postmoogle.service"
register: matrix_postmoogle_service_stat
register: matrix_bridge_postmoogle_service_stat


- when: matrix_postmoogle_service_stat.stat.exists | bool
- when: matrix_bridge_postmoogle_service_stat.stat.exists | bool
block: block:
- name: Ensure matrix-postmoogle is stopped - name: Ensure matrix-postmoogle is stopped
ansible.builtin.service: ansible.builtin.service:
@@ -28,5 +28,5 @@


- name: Ensure Matrix postmoogle paths don't exist - name: Ensure Matrix postmoogle paths don't exist
ansible.builtin.file: ansible.builtin.file:
path: "{{ matrix_postmoogle_base_path }}"
path: "{{ matrix_bridge_postmoogle_base_path }}"
state: absent state: absent

+ 14
- 14
roles/custom/matrix-bridge-postmoogle/tasks/validate_config.yml Vedi File

@@ -12,16 +12,16 @@
The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead. The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead.
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0" when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items: with_items:
- {'old': 'matrix_postmoogle_docker_image_name_prefix', 'new': 'matrix_postmoogle_container_image_registry_prefix'}
- {'old': 'matrix_postmoogle_docker_image', 'new': 'matrix_postmoogle_container_image'}
- {'old': 'matrix_postmoogle_docker_image_force_pull', 'new': 'matrix_postmoogle_container_image_force_pull'}
- {'old': 'matrix_postmoogle_docker_image_registry_prefix', 'new': 'matrix_postmoogle_container_image_registry_prefix'}
- {'old': 'matrix_postmoogle_docker_image_registry_prefix_upstream', 'new': 'matrix_postmoogle_container_image_registry_prefix_upstream'}
- {'old': 'matrix_postmoogle_docker_image_registry_prefix_upstream_default', 'new': 'matrix_postmoogle_container_image_registry_prefix_upstream_default'}
- {'old': 'matrix_postmoogle_docker_repo', 'new': 'matrix_postmoogle_container_repo'}
- {'old': 'matrix_postmoogle_docker_repo_version', 'new': 'matrix_postmoogle_container_repo_version'}
- {'old': 'matrix_postmoogle_docker_src_files_path', 'new': 'matrix_postmoogle_container_src_files_path'}
- {'old': 'matrix_postmoogle_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_bridge_postmoogle_docker_image_name_prefix', 'new': 'matrix_bridge_postmoogle_container_image_registry_prefix'}
- {'old': 'matrix_bridge_postmoogle_docker_image', 'new': 'matrix_bridge_postmoogle_container_image'}
- {'old': 'matrix_bridge_postmoogle_docker_image_force_pull', 'new': 'matrix_bridge_postmoogle_container_image_force_pull'}
- {'old': 'matrix_bridge_postmoogle_docker_image_registry_prefix', 'new': 'matrix_bridge_postmoogle_container_image_registry_prefix'}
- {'old': 'matrix_bridge_postmoogle_docker_image_registry_prefix_upstream', 'new': 'matrix_bridge_postmoogle_container_image_registry_prefix_upstream'}
- {'old': 'matrix_bridge_postmoogle_docker_image_registry_prefix_upstream_default', 'new': 'matrix_bridge_postmoogle_container_image_registry_prefix_upstream_default'}
- {'old': 'matrix_bridge_postmoogle_docker_repo', 'new': 'matrix_bridge_postmoogle_container_repo'}
- {'old': 'matrix_bridge_postmoogle_docker_repo_version', 'new': 'matrix_bridge_postmoogle_container_repo_version'}
- {'old': 'matrix_bridge_postmoogle_docker_src_files_path', 'new': 'matrix_bridge_postmoogle_container_src_files_path'}
- {'old': 'matrix_bridge_postmoogle_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}


- name: Fail if required Postmoogle settings not defined - name: Fail if required Postmoogle settings not defined
ansible.builtin.fail: ansible.builtin.fail:
@@ -29,7 +29,7 @@
You need to define a required configuration setting (`{{ item.name }}`). You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0" when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items: with_items:
- {'name': 'matrix_postmoogle_password', when: true}
- {'name': 'matrix_postmoogle_container_network', when: true}
- {'name': 'matrix_postmoogle_homeserver', when: true}
- {'name': 'matrix_postmoogle_database_hostname', when: "{{ matrix_postmoogle_database_engine == 'postgres' }}"}
- {'name': 'matrix_bridge_postmoogle_password', when: true}
- {'name': 'matrix_bridge_postmoogle_container_network', when: true}
- {'name': 'matrix_bridge_postmoogle_homeserver', when: true}
- {'name': 'matrix_bridge_postmoogle_database_hostname', when: "{{ matrix_bridge_postmoogle_database_engine == 'postgres' }}"}

+ 30
- 30
roles/custom/matrix-bridge-postmoogle/templates/env.j2 Vedi File

@@ -6,34 +6,34 @@ SPDX-FileCopyrightText: 2024 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
#} #}


POSTMOOGLE_LOGIN={{ matrix_postmoogle_login }}
POSTMOOGLE_PASSWORD={{ matrix_postmoogle_password }}
POSTMOOGLE_SHAREDSECRET={{ matrix_postmoogle_sharedsecret }}
POSTMOOGLE_HOMESERVER={{ matrix_postmoogle_homeserver }}
POSTMOOGLE_DOMAINS={{ matrix_postmoogle_domains | join(' ') }}
POSTMOOGLE_PORT={{ matrix_postmoogle_port }}
POSTMOOGLE_DB_DSN={{ matrix_postmoogle_database_connection_string }}
POSTMOOGLE_DB_DIALECT={{ matrix_postmoogle_database_dialect }}
POSTMOOGLE_PREFIX={{ matrix_postmoogle_prefix }}
POSTMOOGLE_MAXSIZE={{ matrix_postmoogle_maxsize }}
POSTMOOGLE_LOGLEVEL={{ matrix_postmoogle_loglevel }}
POSTMOOGLE_ADMINS={{ matrix_postmoogle_admins | join(' ') }}
POSTMOOGLE_TLS_PORT={{ matrix_postmoogle_tls_port }}
POSTMOOGLE_TLS_CERT={{ matrix_postmoogle_tls_cert }}
POSTMOOGLE_TLS_KEY={{ matrix_postmoogle_tls_key }}
POSTMOOGLE_TLS_REQUIRED={{ matrix_postmoogle_tls_required }}
POSTMOOGLE_DATA_SECRET={{ matrix_postmoogle_data_secret }}
POSTMOOGLE_PROXIES={{ matrix_postmoogle_proxies | join(' ') }}
POSTMOOGLE_RELAY_HOST={{ matrix_postmoogle_relay_host }}
POSTMOOGLE_RELAY_PORT={{ matrix_postmoogle_relay_port }}
POSTMOOGLE_RELAY_USERNAME={{ matrix_postmoogle_relay_username }}
POSTMOOGLE_RELAY_PASSWORD={{ matrix_postmoogle_relay_password }}
POSTMOOGLE_MONITORING_SENTRY_DSN={{ matrix_postmoogle_monitoring_sentry_dsn }}
POSTMOOGLE_MONITORING_SENTRY_RATE={{ matrix_postmoogle_monitoring_sentry_rate }}
POSTMOOGLE_MONITORING_HEALTHCHECKS_UUID={{ matrix_postmoogle_monitoring_healthchecks_uuid }}
POSTMOOGLE_MONITORING_HEALTHCHECKS_DURATION={{ matrix_postmoogle_monitoring_healthchecks_duration }}
POSTMOOGLE_MAILBOXES_FORWARDED={{ matrix_postmoogle_mailboxes_forwarded | join(' ') }}
POSTMOOGLE_MAILBOXES_RESERVED={{ matrix_postmoogle_mailboxes_reserved | join(' ') }}
POSTMOOGLE_MAILBOXES_ACTIVATION={{ matrix_postmoogle_mailboxes_activation }}
POSTMOOGLE_LOGIN={{ matrix_bridge_postmoogle_login }}
POSTMOOGLE_PASSWORD={{ matrix_bridge_postmoogle_password }}
POSTMOOGLE_SHAREDSECRET={{ matrix_bridge_postmoogle_sharedsecret }}
POSTMOOGLE_HOMESERVER={{ matrix_bridge_postmoogle_homeserver }}
POSTMOOGLE_DOMAINS={{ matrix_bridge_postmoogle_domains | join(' ') }}
POSTMOOGLE_PORT={{ matrix_bridge_postmoogle_port }}
POSTMOOGLE_DB_DSN={{ matrix_bridge_postmoogle_database_connection_string }}
POSTMOOGLE_DB_DIALECT={{ matrix_bridge_postmoogle_database_dialect }}
POSTMOOGLE_PREFIX={{ matrix_bridge_postmoogle_prefix }}
POSTMOOGLE_MAXSIZE={{ matrix_bridge_postmoogle_maxsize }}
POSTMOOGLE_LOGLEVEL={{ matrix_bridge_postmoogle_loglevel }}
POSTMOOGLE_ADMINS={{ matrix_bridge_postmoogle_admins | join(' ') }}
POSTMOOGLE_TLS_PORT={{ matrix_bridge_postmoogle_tls_port }}
POSTMOOGLE_TLS_CERT={{ matrix_bridge_postmoogle_tls_cert }}
POSTMOOGLE_TLS_KEY={{ matrix_bridge_postmoogle_tls_key }}
POSTMOOGLE_TLS_REQUIRED={{ matrix_bridge_postmoogle_tls_required }}
POSTMOOGLE_DATA_SECRET={{ matrix_bridge_postmoogle_data_secret }}
POSTMOOGLE_PROXIES={{ matrix_bridge_postmoogle_proxies | join(' ') }}
POSTMOOGLE_RELAY_HOST={{ matrix_bridge_postmoogle_relay_host }}
POSTMOOGLE_RELAY_PORT={{ matrix_bridge_postmoogle_relay_port }}
POSTMOOGLE_RELAY_USERNAME={{ matrix_bridge_postmoogle_relay_username }}
POSTMOOGLE_RELAY_PASSWORD={{ matrix_bridge_postmoogle_relay_password }}
POSTMOOGLE_MONITORING_SENTRY_DSN={{ matrix_bridge_postmoogle_monitoring_sentry_dsn }}
POSTMOOGLE_MONITORING_SENTRY_RATE={{ matrix_bridge_postmoogle_monitoring_sentry_rate }}
POSTMOOGLE_MONITORING_HEALTHCHECKS_UUID={{ matrix_bridge_postmoogle_monitoring_healthchecks_uuid }}
POSTMOOGLE_MONITORING_HEALTHCHECKS_DURATION={{ matrix_bridge_postmoogle_monitoring_healthchecks_duration }}
POSTMOOGLE_MAILBOXES_FORWARDED={{ matrix_bridge_postmoogle_mailboxes_forwarded | join(' ') }}
POSTMOOGLE_MAILBOXES_RESERVED={{ matrix_bridge_postmoogle_mailboxes_reserved | join(' ') }}
POSTMOOGLE_MAILBOXES_ACTIVATION={{ matrix_bridge_postmoogle_mailboxes_activation }}


{{ matrix_postmoogle_environment_variables_extension }}
{{ matrix_bridge_postmoogle_environment_variables_extension }}

+ 14
- 14
roles/custom/matrix-bridge-postmoogle/templates/systemd/matrix-postmoogle.service.j2 Vedi File

@@ -1,11 +1,11 @@
#jinja2: lstrip_blocks: True #jinja2: lstrip_blocks: True
[Unit] [Unit]
Description=Matrix Postmoogle bridge Description=Matrix Postmoogle bridge
{% for service in matrix_postmoogle_systemd_required_services_list %}
{% for service in matrix_bridge_postmoogle_systemd_required_services_list %}
Requires={{ service }} Requires={{ service }}
After={{ service }} After={{ service }}
{% endfor %} {% endfor %}
{% for service in matrix_postmoogle_systemd_wanted_services_list %}
{% for service in matrix_bridge_postmoogle_systemd_wanted_services_list %}
Wants={{ service }} Wants={{ service }}
{% endfor %} {% endfor %}
DefaultDependencies=no DefaultDependencies=no
@@ -23,23 +23,23 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
--cap-drop=ALL \ --cap-drop=ALL \
--read-only \ --read-only \
--network={{ matrix_postmoogle_container_network }} \
--env-file={{ matrix_postmoogle_config_path }}/env \
-p {{ matrix_postmoogle_smtp_host_bind_port }}:{{ matrix_postmoogle_port }} \
{% if matrix_postmoogle_ssl_path %}
-p {{ matrix_postmoogle_submission_host_bind_port }}:{{ matrix_postmoogle_tls_port }} \
--network={{ matrix_bridge_postmoogle_container_network }} \
--env-file={{ matrix_bridge_postmoogle_config_path }}/env \
-p {{ matrix_bridge_postmoogle_smtp_host_bind_port }}:{{ matrix_bridge_postmoogle_port }} \
{% if matrix_bridge_postmoogle_ssl_path %}
-p {{ matrix_bridge_postmoogle_submission_host_bind_port }}:{{ matrix_bridge_postmoogle_tls_port }} \
{% endif %} {% endif %}
--mount type=bind,src={{ matrix_postmoogle_data_path }},dst=/data \
{% if matrix_postmoogle_ssl_path %}
--mount type=bind,src={{ matrix_postmoogle_ssl_path }},dst=/ssl \
--mount type=bind,src={{ matrix_bridge_postmoogle_data_path }},dst=/data \
{% if matrix_bridge_postmoogle_ssl_path %}
--mount type=bind,src={{ matrix_bridge_postmoogle_ssl_path }},dst=/ssl \
{% endif %} {% endif %}
{% for arg in matrix_postmoogle_container_extra_arguments %}
{% for arg in matrix_bridge_postmoogle_container_extra_arguments %}
{{ arg }} \ {{ arg }} \
{% endfor %} {% endfor %}
{{ matrix_postmoogle_container_image }}
{{ matrix_bridge_postmoogle_container_image }}


{% if matrix_postmoogle_container_network != 'host' %}
{% for network in matrix_postmoogle_container_additional_networks %}
{% if matrix_bridge_postmoogle_container_network != 'host' %}
{% for network in matrix_bridge_postmoogle_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-postmoogle ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-postmoogle
{% endfor %} {% endfor %}
{% endif %} {% endif %}


+ 2
- 2
roles/custom/matrix_playbook_migration/defaults/main.yml Vedi File

@@ -70,8 +70,8 @@ matrix_playbook_migration_matrix_aux_migration_validation_enabled: true
# Controls if (`matrix_jitsi` -> `jitsi`) validation will run. # Controls if (`matrix_jitsi` -> `jitsi`) validation will run.
matrix_playbook_migration_matrix_jitsi_migration_validation_enabled: true matrix_playbook_migration_matrix_jitsi_migration_validation_enabled: true


# Controls if (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`) validation will run.
matrix_playbook_migration_matrix_postmoogle_migration_validation_enabled: true
# Controls if (`matrix_bot_postmoogle_` -> `matrix_bridge_postmoogle_`) validation will run.
matrix_playbook_migration_matrix_bridge_postmoogle_migration_validation_enabled: true


# Controls if the old apt repository (likely without a `signed-by` option) on Debian-based systems will be removed. # Controls if the old apt repository (likely without a `signed-by` option) on Debian-based systems will be removed.
# #


+ 2
- 2
roles/custom/matrix_playbook_migration/tasks/validate_config.yml Vedi File

@@ -360,7 +360,7 @@
The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_jitsi_migration_vars.keys() | join(', ') }} The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_jitsi_migration_vars.keys() | join(', ') }}
when: "matrix_playbook_migration_jitsi_migration_vars | length > 0" when: "matrix_playbook_migration_jitsi_migration_vars | length > 0"


- when: matrix_playbook_migration_matrix_postmoogle_migration_validation_enabled | bool
- when: matrix_playbook_migration_matrix_bridge_postmoogle_migration_validation_enabled | bool
block: block:
- ansible.builtin.set_fact: - ansible.builtin.set_fact:
matrix_playbook_migration_postmoogle_migration_vars: |- matrix_playbook_migration_postmoogle_migration_vars: |-
@@ -371,7 +371,7 @@
msg: >- msg: >-
Your configuration contains a variable, which now has a different name. Your configuration contains a variable, which now has a different name.


Please rename all variables (`matrix_bot_postmoogle_` -> `matrix_postmoogle_`) on your configuration file (vars.yml).
Please rename all variables (`matrix_bot_postmoogle_` -> `matrix_bridge_postmoogle_`) on your configuration file (vars.yml).


The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_postmoogle_migration_vars.keys() | join(', ') }} The following variables in your configuration need to be renamed: {{ matrix_playbook_migration_postmoogle_migration_vars.keys() | join(', ') }}
when: "matrix_playbook_migration_postmoogle_migration_vars | length > 0" when: "matrix_playbook_migration_postmoogle_migration_vars | length > 0"


Caricamento…
Annulla
Salva