From 129f5fda20b8f29742fdb88b1153f02abddf3c59 Mon Sep 17 00:00:00 2001 From: Slavi Pantaleev Date: Thu, 16 Jul 2026 15:01:21 +0300 Subject: [PATCH] Rename matrix_steam_bridge_* variables to matrix_bridge_steam_* 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 --- docs/configuring-playbook-bridge-steam.md | 4 +- group_vars/matrix_servers | 78 +++--- .../matrix-bridge-steam/defaults/main.yml | 258 +++++++++--------- .../custom/matrix-bridge-steam/tasks/main.yml | 6 +- .../tasks/setup_install.yml | 78 +++--- .../tasks/setup_uninstall.yml | 4 +- .../tasks/validate_config.yml | 32 +-- .../templates/config.yaml.j2 | 98 +++---- .../matrix-bridge-steam/templates/labels.j2 | 40 +-- .../systemd/matrix-steam-bridge.service.j2 | 20 +- 10 files changed, 309 insertions(+), 309 deletions(-) diff --git a/docs/configuring-playbook-bridge-steam.md b/docs/configuring-playbook-bridge-steam.md index 39758c847..c879af74e 100644 --- a/docs/configuring-playbook-bridge-steam.md +++ b/docs/configuring-playbook-bridge-steam.md @@ -15,7 +15,7 @@ See the project's [documentation](https://github.com/jasonlaguidice/matrix-steam To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: ```yaml -matrix_steam_bridge_enabled: true +matrix_bridge_steam_enabled: true ``` ## Installing @@ -48,4 +48,4 @@ Chat rooms will automatically be opened as new messages are received. Send `help` to the bot to see the available commands. ## Notable Configuration Options -- `matrix_steam_bridge_network_presence_topic_enabled` and `matrix_steam_bridge_network_presence_topic_rich_presence_enabled` mirror Steam's [Enhanced Rich Presence](https://partner.steamgames.com/doc/features/enhancedrichpresence) feature in Matrix. This will display the user's current game and rich presence if supported by the game. This sets the DM room's `m.topic` field to achieve this. Some games (like Deadlock) update the rich presence every minute with a match timer. In some clients, the topic update will cause the DM to be pushed to the top of the conversation list continuously, so this option is disabled by default. +- `matrix_bridge_steam_network_presence_topic_enabled` and `matrix_bridge_steam_network_presence_topic_rich_presence_enabled` mirror Steam's [Enhanced Rich Presence](https://partner.steamgames.com/doc/features/enhancedrichpresence) feature in Matrix. This will display the user's current game and rich presence if supported by the game. This sets the DM room's `m.topic` field to achieve this. Some games (like Deadlock) update the rich presence every minute with a match timer. In some clients, the topic update will cause the DM to be pushed to the top of the conversation list continuously, so this option is disabled by default. diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index c905724b6..f19162802 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -146,7 +146,7 @@ matrix_homeserver_container_extra_arguments_auto: | + (['--mount type=bind,src=' + matrix_bridge_sms_config_path + '/registration.yaml,dst=/matrix-sms-bridge-registration.yaml,ro'] if matrix_bridge_sms_enabled else []) + - (['--mount type=bind,src=' + matrix_steam_bridge_config_path + '/registration.yaml,dst=/matrix-steam-bridge-registration.yaml,ro'] if matrix_steam_bridge_enabled else []) + (['--mount type=bind,src=' + matrix_bridge_steam_config_path + '/registration.yaml,dst=/matrix-steam-bridge-registration.yaml,ro'] if matrix_bridge_steam_enabled else []) + (['--mount type=bind,src=' + matrix_cactus_comments_app_service_config_file + ',dst=/matrix-cactus-comments.yaml,ro'] if matrix_cactus_comments_enabled else []) }} @@ -207,7 +207,7 @@ matrix_homeserver_app_service_config_files_auto: | + (['/matrix-cactus-comments.yaml'] if matrix_cactus_comments_enabled else []) + - (['/matrix-steam-bridge-registration.yaml'] if matrix_steam_bridge_enabled else []) + (['/matrix-steam-bridge-registration.yaml'] if matrix_bridge_steam_enabled else []) }} matrix_addons_homeserver_container_network: "{{ matrix_playbook_reverse_proxy_container_network if matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled else matrix_homeserver_container_network }}" @@ -548,9 +548,9 @@ devture_systemd_service_manager_services_list_auto: | ([{ 'name': 'matrix-steam-bridge.service', 'priority': 2000, - 'restart_necessary': (matrix_steam_bridge_restart_necessary | bool), + 'restart_necessary': (matrix_bridge_steam_restart_necessary | bool), 'groups': ['matrix', 'bridges', 'matrix-steam-bridge'], - }] if matrix_steam_bridge_enabled else []) + }] if matrix_bridge_steam_enabled else []) + ([{ 'name': 'matrix-cactus-comments.service', @@ -2853,68 +2853,68 @@ matrix_bridge_postmoogle_container_additional_networks_auto: |- ###################################################################### # We don't enable bridges by default. -matrix_steam_bridge_enabled: false +matrix_bridge_steam_enabled: false -matrix_steam_bridge_systemd_required_services_list_auto: | +matrix_bridge_steam_systemd_required_services_list_auto: | {{ matrix_addons_homeserver_systemd_services_list + - ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_steam_bridge_database_hostname == postgres_connection_hostname) else []) + ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_bridge_steam_database_hostname == postgres_connection_hostname) else []) }} -matrix_steam_bridge_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_steam_bridge_container_image_registry_prefix_upstream_default }}" +matrix_bridge_steam_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bridge_steam_container_image_registry_prefix_upstream_default }}" -matrix_steam_bridge_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" +matrix_bridge_steam_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" -matrix_steam_bridge_container_network: "{{ matrix_addons_container_network }}" +matrix_bridge_steam_container_network: "{{ matrix_addons_container_network }}" -matrix_steam_bridge_container_additional_networks_auto: |- +matrix_bridge_steam_container_additional_networks_auto: |- {{ ( ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) + - ([postgres_container_network] if (postgres_enabled and matrix_steam_bridge_database_hostname == postgres_connection_hostname and matrix_steam_bridge_container_network != postgres_container_network) else []) + ([postgres_container_network] if (postgres_enabled and matrix_bridge_steam_database_hostname == postgres_connection_hostname and matrix_bridge_steam_container_network != postgres_container_network) else []) + - ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and matrix_steam_bridge_container_labels_traefik_enabled else []) + ([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and matrix_bridge_steam_container_labels_traefik_enabled else []) ) | unique }} -matrix_steam_bridge_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" -matrix_steam_bridge_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" -matrix_steam_bridge_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" -matrix_steam_bridge_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" +matrix_bridge_steam_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" +matrix_bridge_steam_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" +matrix_bridge_steam_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" +matrix_bridge_steam_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" -matrix_steam_bridge_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}" -matrix_steam_bridge_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}" +matrix_bridge_steam_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}" +matrix_bridge_steam_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}" -matrix_steam_bridge_appservice_token: "{{ (matrix_homeserver_generic_secret_key + ':steam.as.token') | hash('sha512') | to_uuid }}" +matrix_bridge_steam_appservice_token: "{{ (matrix_homeserver_generic_secret_key + ':steam.as.token') | hash('sha512') | to_uuid }}" -matrix_steam_bridge_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" -matrix_steam_bridge_homeserver_token: "{{ (matrix_homeserver_generic_secret_key + ':steam.hs.token') | hash('sha512') | to_uuid }}" +matrix_bridge_steam_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" +matrix_bridge_steam_homeserver_token: "{{ (matrix_homeserver_generic_secret_key + ':steam.hs.token') | hash('sha512') | to_uuid }}" -matrix_steam_bridge_homeserver_async_media: "{{ matrix_homeserver_implementation in ['synapse'] }}" +matrix_bridge_steam_homeserver_async_media: "{{ matrix_homeserver_implementation in ['synapse'] }}" -matrix_steam_bridge_public_media_signing_key: "{{ ((matrix_homeserver_generic_secret_key + ':steam.pub.key') | hash('sha512') | to_uuid) if matrix_steam_bridge_public_media_enabled else '' }}" +matrix_bridge_steam_public_media_signing_key: "{{ ((matrix_homeserver_generic_secret_key + ':steam.pub.key') | hash('sha512') | to_uuid) if matrix_bridge_steam_public_media_enabled else '' }}" -matrix_steam_bridge_provisioning_shared_secret: "{{ (matrix_homeserver_generic_secret_key + ':steam.prov') | hash('sha512') | to_uuid }}" +matrix_bridge_steam_provisioning_shared_secret: "{{ (matrix_homeserver_generic_secret_key + ':steam.prov') | hash('sha512') | to_uuid }}" -matrix_steam_bridge_double_puppet_secrets_auto: |- +matrix_bridge_steam_double_puppet_secrets_auto: |- {{ ({ - matrix_steam_bridge_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token) + matrix_bridge_steam_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token) }) if matrix_appservice_double_puppet_enabled else {} }} -matrix_steam_bridge_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" +matrix_bridge_steam_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}" -matrix_steam_bridge_metrics_proxying_enabled: "{{ matrix_steam_bridge_metrics_enabled and matrix_metrics_exposure_enabled }}" -matrix_steam_bridge_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}" -matrix_steam_bridge_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/matrix-steam-bridge" +matrix_bridge_steam_metrics_proxying_enabled: "{{ matrix_bridge_steam_metrics_enabled and matrix_metrics_exposure_enabled }}" +matrix_bridge_steam_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}" +matrix_bridge_steam_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/matrix-steam-bridge" -matrix_steam_bridge_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}" -matrix_steam_bridge_database_password: "{{ (matrix_homeserver_generic_secret_key + ':mau.twt.db') | hash('sha512') | to_uuid if postgres_enabled else '' }}" +matrix_bridge_steam_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}" +matrix_bridge_steam_database_password: "{{ (matrix_homeserver_generic_secret_key + ':mau.twt.db') | hash('sha512') | to_uuid if postgres_enabled else '' }}" ###################################################################### # @@ -4267,10 +4267,10 @@ postgres_managed_databases_auto: | }] if (matrix_bridge_mx_puppet_groupme_enabled and matrix_bridge_mx_puppet_groupme_database_engine == 'postgres' and matrix_bridge_mx_puppet_groupme_database_hostname == postgres_connection_hostname) else []) + ([{ - 'name': matrix_steam_bridge_database_name, - 'username': matrix_steam_bridge_database_username, - 'password': matrix_steam_bridge_database_password, - }] if (matrix_steam_bridge_enabled and matrix_steam_bridge_database_engine == 'postgres' and matrix_steam_bridge_database_hostname == postgres_connection_hostname) else []) + 'name': matrix_bridge_steam_database_name, + 'username': matrix_bridge_steam_database_username, + 'password': matrix_bridge_steam_database_password, + }] if (matrix_bridge_steam_enabled and matrix_bridge_steam_database_engine == 'postgres' and matrix_bridge_steam_database_hostname == postgres_connection_hostname) else []) + ([{ 'name': etherpad_database_name, @@ -5209,9 +5209,9 @@ matrix_ketesa_config_asManagedUsers_auto: | ] if matrix_wechat_enabled else []) + ([ - '^@'+(matrix_steam_bridge_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', + '^@'+(matrix_bridge_steam_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', '^@steam_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', - ] if matrix_steam_bridge_enabled else []) + ] if matrix_bridge_steam_enabled else []) }} ###################################################################### diff --git a/roles/custom/matrix-bridge-steam/defaults/main.yml b/roles/custom/matrix-bridge-steam/defaults/main.yml index 93c68815f..c48d116ae 100644 --- a/roles/custom/matrix-bridge-steam/defaults/main.yml +++ b/roles/custom/matrix-bridge-steam/defaults/main.yml @@ -6,59 +6,59 @@ # matrix-steam-bridge is a Matrix <-> Steam bridge # See: https://github.com/jasonlaguidice/matrix-steam-bridge -matrix_steam_bridge_enabled: true +matrix_bridge_steam_enabled: true -matrix_steam_bridge_container_image_self_build: false -matrix_steam_bridge_container_image_self_build_repo: "https://github.com/jasonlaguidice/matrix-steam-bridge.git" -matrix_steam_bridge_container_image_self_build_repo_version: "{{ 'main' if matrix_steam_bridge_version == 'latest' else matrix_steam_bridge_version }}" +matrix_bridge_steam_container_image_self_build: false +matrix_bridge_steam_container_image_self_build_repo: "https://github.com/jasonlaguidice/matrix-steam-bridge.git" +matrix_bridge_steam_container_image_self_build_repo_version: "{{ 'main' if matrix_bridge_steam_version == 'latest' else matrix_bridge_steam_version }}" # renovate: datasource=docker depName=ghcr.io/jasonlaguidice/matrix-steam-bridge -matrix_steam_bridge_version: 1.3.0 -matrix_steam_bridge_container_image: "{{ matrix_steam_bridge_container_image_registry_prefix }}jasonlaguidice/matrix-steam-bridge:{{ matrix_steam_bridge_version }}" -matrix_steam_bridge_container_image_registry_prefix: "{{ 'localhost/' if matrix_steam_bridge_container_image_self_build else matrix_steam_bridge_container_image_registry_prefix_upstream }}" -matrix_steam_bridge_container_image_registry_prefix_upstream: "{{ matrix_steam_bridge_container_image_registry_prefix_upstream_default }}" -matrix_steam_bridge_container_image_registry_prefix_upstream_default: "ghcr.io/" -matrix_steam_bridge_container_image_tag: "{{ matrix_steam_bridge_version }}" +matrix_bridge_steam_version: 1.3.0 +matrix_bridge_steam_container_image: "{{ matrix_bridge_steam_container_image_registry_prefix }}jasonlaguidice/matrix-steam-bridge:{{ matrix_bridge_steam_version }}" +matrix_bridge_steam_container_image_registry_prefix: "{{ 'localhost/' if matrix_bridge_steam_container_image_self_build else matrix_bridge_steam_container_image_registry_prefix_upstream }}" +matrix_bridge_steam_container_image_registry_prefix_upstream: "{{ matrix_bridge_steam_container_image_registry_prefix_upstream_default }}" +matrix_bridge_steam_container_image_registry_prefix_upstream_default: "ghcr.io/" +matrix_bridge_steam_container_image_tag: "{{ matrix_bridge_steam_version }}" -matrix_steam_bridge_base_path: "{{ matrix_base_data_path }}/matrix-steam-bridge" -matrix_steam_bridge_config_path: "{{ matrix_steam_bridge_base_path }}/config" -matrix_steam_bridge_data_path: "{{ matrix_steam_bridge_base_path }}/data" -matrix_steam_bridge_container_src_files_path: "{{ matrix_steam_bridge_base_path }}/docker-src" +matrix_bridge_steam_base_path: "{{ matrix_base_data_path }}/matrix-steam-bridge" +matrix_bridge_steam_config_path: "{{ matrix_bridge_steam_base_path }}/config" +matrix_bridge_steam_data_path: "{{ matrix_bridge_steam_base_path }}/data" +matrix_bridge_steam_container_src_files_path: "{{ matrix_bridge_steam_base_path }}/docker-src" -matrix_steam_bridge_homeserver_address: "" -matrix_steam_bridge_homeserver_domain: "{{ matrix_domain }}" -matrix_steam_bridge_appservice_address: "http://matrix-steam-bridge:{{ matrix_steam_bridge_appservice_port }}" -matrix_steam_bridge_appservice_port: "8080" +matrix_bridge_steam_homeserver_address: "" +matrix_bridge_steam_homeserver_domain: "{{ matrix_domain }}" +matrix_bridge_steam_appservice_address: "http://matrix-steam-bridge:{{ matrix_bridge_steam_appservice_port }}" +matrix_bridge_steam_appservice_port: "8080" -matrix_steam_bridge_msc4190_enabled: "{{ matrix_bridges_msc4190_enabled }}" -matrix_steam_bridge_self_sign_enabled: "{{ matrix_bridges_self_sign_enabled }}" +matrix_bridge_steam_msc4190_enabled: "{{ matrix_bridges_msc4190_enabled }}" +matrix_bridge_steam_self_sign_enabled: "{{ matrix_bridges_self_sign_enabled }}" # matrix -> steam presence -matrix_steam_bridge_network_presence_enabled: true +matrix_bridge_steam_network_presence_enabled: true # Default inactivity state # This is what the bridge sets it's status to after some time of no user interaction -matrix_steam_bridge_network_presence_inactivity_status: 'invisible' +matrix_bridge_steam_network_presence_inactivity_status: 'invisible' # steam -> matrix presence topic # Master switch for setting a Steam friend's current game (+ rich presence flavor # text) as the DM room's m.room.topic. -matrix_steam_bridge_network_presence_topic_enabled: false +matrix_bridge_steam_network_presence_topic_enabled: false # Append resolved rich presence flavor text to the topic (e.g. "Deadlock — Street Brawl: Paige (12 min)"). -matrix_steam_bridge_network_presence_topic_rich_presence_enabled: false +matrix_bridge_steam_network_presence_topic_rich_presence_enabled: false # Fallback: show the raw unresolved rich presence token if resolution fails. -matrix_steam_bridge_network_presence_topic_show_raw_tokens: false +matrix_bridge_steam_network_presence_topic_show_raw_tokens: false # A public address that external services can use to reach this appservice -matrix_steam_bridge_appservice_public_address: "https://{{ matrix_server_fqn_matrix }}" +matrix_bridge_steam_appservice_public_address: "https://{{ matrix_server_fqn_matrix }}" # Public media configuration for external access to bridge media -matrix_steam_bridge_public_media_enabled: true +matrix_bridge_steam_public_media_enabled: true # A key for signing public media URLs. If set to "generate", a random key will be generated. # This will be auto-generated deterministically if matrix_homeserver_generic_secret_key is set. -matrix_steam_bridge_public_media_signing_key: '' +matrix_bridge_steam_public_media_signing_key: '' # Number of seconds that public media URLs are valid for. If set to 0, URLs will never expire. -matrix_steam_bridge_public_media_expiry: 0 -matrix_steam_bridge_public_media_hash_length: 32 +matrix_bridge_steam_public_media_expiry: 0 +matrix_bridge_steam_public_media_hash_length: 32 # Display name template for Steam users. # Available template variables: @@ -67,198 +67,198 @@ matrix_steam_bridge_public_media_hash_length: 32 # {{.SteamID}} - The numeric Steam ID # {{.ProfileURL}} - The Steam profile URL # You can use template functions like {{or}} to provide fallbacks. -matrix_steam_bridge_network_displayname_template: "{% raw %}{{ .PersonaName }} (Steam){% endraw %}" +matrix_bridge_steam_network_displayname_template: "{% raw %}{{ .PersonaName }} (Steam){% endraw %}" -matrix_steam_bridge_command_prefix: "!steam" +matrix_bridge_steam_command_prefix: "!steam" -matrix_steam_bridge_bridge_permissions: | +matrix_bridge_steam_bridge_permissions: | {{ - {matrix_steam_bridge_homeserver_domain: 'user'} + {matrix_bridge_steam_homeserver_domain: 'user'} | combine ({matrix_admin: 'admin'} if matrix_admin else {}) }} # TODO: May need to set network for public media? -matrix_steam_bridge_container_network: "" +matrix_bridge_steam_container_network: "" -matrix_steam_bridge_container_additional_networks: "{{ matrix_steam_bridge_container_additional_networks_auto + matrix_steam_bridge_container_additional_networks_custom }}" -matrix_steam_bridge_container_additional_networks_auto: [] -matrix_steam_bridge_container_additional_networks_custom: [] +matrix_bridge_steam_container_additional_networks: "{{ matrix_bridge_steam_container_additional_networks_auto + matrix_bridge_steam_container_additional_networks_custom }}" +matrix_bridge_steam_container_additional_networks_auto: [] +matrix_bridge_steam_container_additional_networks_custom: [] -# matrix_steam_bridge_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. +# matrix_bridge_steam_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container. # See `../templates/labels.j2` for details. # -# To inject your own other container labels, see `matrix_steam_bridge_container_labels_additional_labels`. -matrix_steam_bridge_container_labels_traefik_enabled: true -matrix_steam_bridge_container_labels_traefik_docker_network: "{{ matrix_steam_bridge_container_network }}" -matrix_steam_bridge_container_labels_traefik_entrypoints: web-secure -matrix_steam_bridge_container_labels_traefik_tls: "{{ matrix_steam_bridge_container_labels_traefik_entrypoints != 'web' }}" -matrix_steam_bridge_container_labels_traefik_tls_certResolver: default # noqa var-naming +# To inject your own other container labels, see `matrix_bridge_steam_container_labels_additional_labels`. +matrix_bridge_steam_container_labels_traefik_enabled: true +matrix_bridge_steam_container_labels_traefik_docker_network: "{{ matrix_bridge_steam_container_network }}" +matrix_bridge_steam_container_labels_traefik_entrypoints: web-secure +matrix_bridge_steam_container_labels_traefik_tls: "{{ matrix_bridge_steam_container_labels_traefik_entrypoints != 'web' }}" +matrix_bridge_steam_container_labels_traefik_tls_certResolver: default # noqa var-naming # Controls whether labels will be added that expose mautrix-instagram's metrics -matrix_steam_bridge_container_labels_metrics_enabled: "{{ matrix_steam_bridge_metrics_enabled and matrix_steam_bridge_metrics_proxying_enabled }}" -matrix_steam_bridge_container_labels_metrics_traefik_rule: "Host(`{{ matrix_steam_bridge_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_steam_bridge_metrics_proxying_path_prefix }}`)" -matrix_steam_bridge_container_labels_metrics_traefik_priority: 0 -matrix_steam_bridge_container_labels_metrics_traefik_entrypoints: "{{ matrix_steam_bridge_container_labels_traefik_entrypoints }}" -matrix_steam_bridge_container_labels_metrics_traefik_tls: "{{ matrix_steam_bridge_container_labels_metrics_traefik_entrypoints != 'web' }}" -matrix_steam_bridge_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_steam_bridge_container_labels_traefik_tls_certResolver }}" # noqa var-naming -matrix_steam_bridge_container_labels_metrics_middleware_basic_auth_enabled: false +matrix_bridge_steam_container_labels_metrics_enabled: "{{ matrix_bridge_steam_metrics_enabled and matrix_bridge_steam_metrics_proxying_enabled }}" +matrix_bridge_steam_container_labels_metrics_traefik_rule: "Host(`{{ matrix_bridge_steam_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_bridge_steam_metrics_proxying_path_prefix }}`)" +matrix_bridge_steam_container_labels_metrics_traefik_priority: 0 +matrix_bridge_steam_container_labels_metrics_traefik_entrypoints: "{{ matrix_bridge_steam_container_labels_traefik_entrypoints }}" +matrix_bridge_steam_container_labels_metrics_traefik_tls: "{{ matrix_bridge_steam_container_labels_metrics_traefik_entrypoints != 'web' }}" +matrix_bridge_steam_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_bridge_steam_container_labels_traefik_tls_certResolver }}" # noqa var-naming +matrix_bridge_steam_container_labels_metrics_middleware_basic_auth_enabled: false # See: https://doc.traefik.io/traefik/middlewares/http/basicauth/#users -matrix_steam_bridge_container_labels_metrics_middleware_basic_auth_users: '' +matrix_bridge_steam_container_labels_metrics_middleware_basic_auth_users: '' -# matrix_steam_bridge_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. +# matrix_bridge_steam_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. # See `../templates/labels.j2` for details. # # Example: -# matrix_steam_bridge_container_labels_additional_labels: | +# matrix_bridge_steam_container_labels_additional_labels: | # my.label=1 # another.label="here" -matrix_steam_bridge_container_labels_additional_labels: '' +matrix_bridge_steam_container_labels_additional_labels: '' # A list of extra arguments to pass to the container -matrix_steam_bridge_container_extra_arguments: [] +matrix_bridge_steam_container_extra_arguments: [] # List of systemd services that matrix_steam_bridge.service depends on. -matrix_steam_bridge_systemd_required_services_list: "{{ matrix_steam_bridge_systemd_required_services_list_default + matrix_steam_bridge_systemd_required_services_list_auto + matrix_steam_bridge_systemd_required_services_list_custom }}" -matrix_steam_bridge_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" -matrix_steam_bridge_systemd_required_services_list_auto: [] -matrix_steam_bridge_systemd_required_services_list_custom: [] +matrix_bridge_steam_systemd_required_services_list: "{{ matrix_bridge_steam_systemd_required_services_list_default + matrix_bridge_steam_systemd_required_services_list_auto + matrix_bridge_steam_systemd_required_services_list_custom }}" +matrix_bridge_steam_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" +matrix_bridge_steam_systemd_required_services_list_auto: [] +matrix_bridge_steam_systemd_required_services_list_custom: [] # List of systemd services that matrix_steam_bridge.service wants -matrix_steam_bridge_systemd_wanted_services_list: [] +matrix_bridge_steam_systemd_wanted_services_list: [] -matrix_steam_bridge_appservice_token: '' -matrix_steam_bridge_homeserver_token: '' +matrix_bridge_steam_appservice_token: '' +matrix_bridge_steam_homeserver_token: '' # Whether or not created rooms should have federation enabled. # If false, created portal rooms will never be federated. -matrix_steam_bridge_matrix_federate_rooms: false +matrix_bridge_steam_matrix_federate_rooms: false # Bridge configuration options # Should every user have their own portals rather than sharing them? -matrix_steam_bridge_bridge_split_portals: false +matrix_bridge_steam_bridge_split_portals: false # Cleanup on logout configuration -matrix_steam_bridge_bridge_cleanup_on_logout_enabled: false +matrix_bridge_steam_bridge_cleanup_on_logout_enabled: false # Valid values for cleanup actions: nothing, kick, unbridge, delete # nothing - Do nothing, let the user stay in the portals # kick - Remove the user from the portal rooms, but don't delete them # unbridge - Remove all ghosts in the room and disassociate it from the remote chat # delete - Remove all ghosts and users from the room (i.e. delete it) -matrix_steam_bridge_bridge_cleanup_on_logout_manual_private: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_manual_relayed: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_manual_shared_no_users: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_manual_shared_has_users: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_private: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_relayed: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_shared_no_users: nothing -matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_shared_has_users: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_manual_private: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_manual_relayed: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_manual_shared_no_users: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_manual_shared_has_users: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_private: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_relayed: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_shared_no_users: nothing +matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_shared_has_users: nothing # Homeserver configuration options # Does the homeserver support MSC2246 (async media uploads)? -matrix_steam_bridge_homeserver_async_media: false +matrix_bridge_steam_homeserver_async_media: false # Database-related configuration fields. # # To use Postgres: -# - adjust your database credentials via the `matrix_steam_bridge_postgres_*` variables -matrix_steam_bridge_database_engine: 'postgres' +# - adjust your database credentials via the `matrix_bridge_steam_postgres_*` variables +matrix_bridge_steam_database_engine: 'postgres' -matrix_steam_bridge_database_username: 'matrix_steam_bridge' -matrix_steam_bridge_database_password: 'some-password' -matrix_steam_bridge_database_hostname: '' -matrix_steam_bridge_database_port: 5432 -matrix_steam_bridge_database_name: 'matrix_steam_bridge' -matrix_steam_bridge_database_sslmode: disable +matrix_bridge_steam_database_username: 'matrix_steam_bridge' +matrix_bridge_steam_database_password: 'some-password' +matrix_bridge_steam_database_hostname: '' +matrix_bridge_steam_database_port: 5432 +matrix_bridge_steam_database_name: 'matrix_steam_bridge' +matrix_bridge_steam_database_sslmode: disable -matrix_steam_bridge_database_connection_string: 'postgres://{{ matrix_steam_bridge_database_username }}:{{ matrix_steam_bridge_database_password }}@{{ matrix_steam_bridge_database_hostname }}:{{ matrix_steam_bridge_database_port }}/{{ matrix_steam_bridge_database_name }}?sslmode={{ matrix_steam_bridge_database_sslmode }}' +matrix_bridge_steam_database_connection_string: 'postgres://{{ matrix_bridge_steam_database_username }}:{{ matrix_bridge_steam_database_password }}@{{ matrix_bridge_steam_database_hostname }}:{{ matrix_bridge_steam_database_port }}/{{ matrix_bridge_steam_database_name }}?sslmode={{ matrix_bridge_steam_database_sslmode }}' -matrix_steam_bridge_database_uri: "{{ { - 'postgres': matrix_steam_bridge_database_connection_string, -}[matrix_steam_bridge_database_engine] }}" +matrix_bridge_steam_database_uri: "{{ { + 'postgres': matrix_bridge_steam_database_connection_string, +}[matrix_bridge_steam_database_engine] }}" -matrix_steam_bridge_double_puppet_secrets: "{{ matrix_steam_bridge_double_puppet_secrets_auto | combine(matrix_steam_bridge_double_puppet_secrets_custom) }}" -matrix_steam_bridge_double_puppet_secrets_auto: {} -matrix_steam_bridge_double_puppet_secrets_custom: {} +matrix_bridge_steam_double_puppet_secrets: "{{ matrix_bridge_steam_double_puppet_secrets_auto | combine(matrix_bridge_steam_double_puppet_secrets_custom) }}" +matrix_bridge_steam_double_puppet_secrets_auto: {} +matrix_bridge_steam_double_puppet_secrets_custom: {} -matrix_steam_bridge_appservice_bot_username: steambot -matrix_steam_bridge_appservice_bot_displayname: Steam bridge bot -matrix_steam_bridge_appservice_bot_avatar: mxc://shadowdrake.org/EeNKAcrmByNubPwoyceQsBaN +matrix_bridge_steam_appservice_bot_username: steambot +matrix_bridge_steam_appservice_bot_displayname: Steam bridge bot +matrix_bridge_steam_appservice_bot_avatar: mxc://shadowdrake.org/EeNKAcrmByNubPwoyceQsBaN -matrix_steam_bridge_backfill_enabled: true +matrix_bridge_steam_backfill_enabled: true # Maximum number of messages to backfill in empty rooms -matrix_steam_bridge_backfill_max_initial_messages: 50 +matrix_bridge_steam_backfill_max_initial_messages: 50 # Maximum number of missed messages to backfill after bridge restarts -matrix_steam_bridge_backfill_max_catchup_messages: 500 +matrix_bridge_steam_backfill_max_catchup_messages: 500 # Shared secret for authentication of provisioning API requests. # If set to "disable", the provisioning API will be disabled. -matrix_steam_bridge_provisioning_shared_secret: disable +matrix_bridge_steam_provisioning_shared_secret: disable # Minimum severity of journal log messages. # Valid values: fatal, error, warn, info, debug, trace -matrix_steam_bridge_logging_level: 'warn' +matrix_bridge_steam_logging_level: 'warn' # Whether or not metrics endpoint should be enabled. # Enabling them is usually enough for a local (in-container) Prometheus to consume them. -# If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_steam_bridge_metrics_proxying_enabled`. -matrix_steam_bridge_metrics_enabled: false +# If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_bridge_steam_metrics_proxying_enabled`. +matrix_bridge_steam_metrics_enabled: false # Controls whether metrics should be exposed on a public URL. -matrix_steam_bridge_metrics_proxying_enabled: false -matrix_steam_bridge_metrics_proxying_hostname: '' -matrix_steam_bridge_metrics_proxying_path_prefix: '' +matrix_bridge_steam_metrics_proxying_enabled: false +matrix_bridge_steam_metrics_proxying_hostname: '' +matrix_bridge_steam_metrics_proxying_path_prefix: '' # Default configuration template which covers the generic use case. # You can customize it by controlling the various variables inside it. # -# For a more advanced customization, you can extend the default (see `matrix_steam_bridge_configuration_extension_yaml`) +# For a more advanced customization, you can extend the default (see `matrix_bridge_steam_configuration_extension_yaml`) # or completely replace this variable with your own template. -matrix_steam_bridge_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" +matrix_bridge_steam_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" -matrix_steam_bridge_configuration_extension_yaml: | +matrix_bridge_steam_configuration_extension_yaml: | # Your custom YAML configuration goes here. - # This configuration extends the default starting configuration (`matrix_steam_bridge_configuration_yaml`). + # This configuration extends the default starting configuration (`matrix_bridge_steam_configuration_yaml`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by - # completely redefining `matrix_steam_bridge_configuration_yaml`. + # completely redefining `matrix_bridge_steam_configuration_yaml`. -matrix_steam_bridge_configuration_extension: "{{ matrix_steam_bridge_configuration_extension_yaml | from_yaml if matrix_steam_bridge_configuration_extension_yaml | from_yaml is mapping else {} }}" +matrix_bridge_steam_configuration_extension: "{{ matrix_bridge_steam_configuration_extension_yaml | from_yaml if matrix_bridge_steam_configuration_extension_yaml | from_yaml is mapping else {} }}" # Holds the final configuration (a combination of the default and its extension). -# You most likely don't need to touch this variable. Instead, see `matrix_steam_bridge_configuration_yaml`. -matrix_steam_bridge_configuration: "{{ matrix_steam_bridge_configuration_yaml | from_yaml | combine(matrix_steam_bridge_configuration_extension, recursive=True) }}" +# You most likely don't need to touch this variable. Instead, see `matrix_bridge_steam_configuration_yaml`. +matrix_bridge_steam_configuration: "{{ matrix_bridge_steam_configuration_yaml | from_yaml | combine(matrix_bridge_steam_configuration_extension, recursive=True) }}" -matrix_steam_bridge_registration_yaml: | +matrix_bridge_steam_registration_yaml: | id: steam - as_token: "{{ matrix_steam_bridge_appservice_token }}" - hs_token: "{{ matrix_steam_bridge_homeserver_token }}" + as_token: "{{ matrix_bridge_steam_appservice_token }}" + hs_token: "{{ matrix_bridge_steam_homeserver_token }}" namespaces: users: - exclusive: true - regex: '^@steam_.+:{{ matrix_steam_bridge_homeserver_domain | regex_escape }}$' + regex: '^@steam_.+:{{ matrix_bridge_steam_homeserver_domain | regex_escape }}$' - exclusive: true - regex: '^@{{ matrix_steam_bridge_appservice_bot_username | regex_escape }}:{{ matrix_steam_bridge_homeserver_domain | regex_escape }}$' - url: {{ matrix_steam_bridge_appservice_address }} - sender_localpart: _bot_{{ matrix_steam_bridge_appservice_bot_username }} + regex: '^@{{ matrix_bridge_steam_appservice_bot_username | regex_escape }}:{{ matrix_bridge_steam_homeserver_domain | regex_escape }}$' + url: {{ matrix_bridge_steam_appservice_address }} + sender_localpart: _bot_{{ matrix_bridge_steam_appservice_bot_username }} rate_limited: false de.sorunome.msc2409.push_ephemeral: true receive_ephemeral: true - io.element.msc4190: {{ matrix_steam_bridge_msc4190_enabled | to_json }} + io.element.msc4190: {{ matrix_bridge_steam_msc4190_enabled | to_json }} -matrix_steam_bridge_registration: "{{ matrix_steam_bridge_registration_yaml | from_yaml }}" +matrix_bridge_steam_registration: "{{ matrix_bridge_steam_registration_yaml | from_yaml }}" # Enable End-to-bridge encryption -matrix_steam_bridge_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" -matrix_steam_bridge_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" -matrix_steam_bridge_bridge_encryption_require: false -matrix_steam_bridge_bridge_encryption_appservice: false -matrix_steam_bridge_bridge_encryption_key_sharing_allow: "{{ matrix_steam_bridge_bridge_encryption_allow }}" -matrix_steam_bridge_bridge_encryption_pickle_key: mautrix.bridge.e2ee +matrix_bridge_steam_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" +matrix_bridge_steam_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" +matrix_bridge_steam_bridge_encryption_require: false +matrix_bridge_steam_bridge_encryption_appservice: false +matrix_bridge_steam_bridge_encryption_key_sharing_allow: "{{ matrix_bridge_steam_bridge_encryption_allow }}" +matrix_bridge_steam_bridge_encryption_pickle_key: mautrix.bridge.e2ee -# matrix_steam_bridge_restart_necessary controls whether the service +# matrix_bridge_steam_restart_necessary controls whether the service # will be restarted (when true) or merely started (when false) by the # systemd service manager role (when conditional restart is enabled). # @@ -266,4 +266,4 @@ matrix_steam_bridge_bridge_encryption_pickle_key: mautrix.bridge.e2ee # 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 # installation tasks haven't run (e.g., due to --tags skipping them). -matrix_steam_bridge_restart_necessary: false +matrix_bridge_steam_restart_necessary: false diff --git a/roles/custom/matrix-bridge-steam/tasks/main.yml b/roles/custom/matrix-bridge-steam/tasks/main.yml index fc28fb7d3..8ea70730c 100644 --- a/roles/custom/matrix-bridge-steam/tasks/main.yml +++ b/roles/custom/matrix-bridge-steam/tasks/main.yml @@ -10,15 +10,15 @@ - install-all - install-matrix-steam-bridge block: - - when: matrix_steam_bridge_enabled | bool + - when: matrix_bridge_steam_enabled | bool ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" - - when: matrix_steam_bridge_enabled | bool + - when: matrix_bridge_steam_enabled | bool ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" - tags: - setup-all - setup-matrix-steam-bridge block: - - when: not matrix_steam_bridge_enabled | bool + - when: not matrix_bridge_steam_enabled | bool ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" diff --git a/roles/custom/matrix-bridge-steam/tasks/setup_install.yml b/roles/custom/matrix-bridge-steam/tasks/setup_install.yml index a4312e442..725489512 100644 --- a/roles/custom/matrix-bridge-steam/tasks/setup_install.yml +++ b/roles/custom/matrix-bridge-steam/tasks/setup_install.yml @@ -5,17 +5,17 @@ --- - ansible.builtin.set_fact: - matrix_steam_bridge_migration_requires_restart: false + matrix_bridge_steam_migration_requires_restart: false - name: Ensure Steam bridge image is pulled community.docker.docker_image_pull: - name: "{{ matrix_steam_bridge_container_image }}" + name: "{{ matrix_bridge_steam_container_image }}" pull: always - when: matrix_steam_bridge_enabled | bool and not matrix_steam_bridge_container_image_self_build - register: matrix_steam_bridge_container_image_pull_result + when: matrix_bridge_steam_enabled | bool and not matrix_bridge_steam_container_image_self_build + register: matrix_bridge_steam_container_image_pull_result retries: "{{ devture_playbook_help_container_retries_count }}" delay: "{{ devture_playbook_help_container_retries_delay }}" - until: matrix_steam_bridge_container_image_pull_result is not failed + until: matrix_bridge_steam_container_image_pull_result is not failed - name: Ensure Steam bridge paths exist ansible.builtin.file: @@ -25,67 +25,67 @@ owner: "{{ matrix_user_name }}" group: "{{ matrix_group_name }}" with_items: - - {path: "{{ matrix_steam_bridge_base_path }}", when: true} - - {path: "{{ matrix_steam_bridge_config_path }}", when: true} - - {path: "{{ matrix_steam_bridge_data_path }}", when: true} - - {path: "{{ matrix_steam_bridge_container_src_files_path }}", when: "{{ matrix_steam_bridge_container_image_self_build }}"} + - {path: "{{ matrix_bridge_steam_base_path }}", when: true} + - {path: "{{ matrix_bridge_steam_config_path }}", when: true} + - {path: "{{ matrix_bridge_steam_data_path }}", when: true} + - {path: "{{ matrix_bridge_steam_container_src_files_path }}", when: "{{ matrix_bridge_steam_container_image_self_build }}"} when: item.when | bool - name: Ensure Steam bridge repository is present on self-build ansible.builtin.git: - repo: "{{ matrix_steam_bridge_container_image_self_build_repo }}" - version: "{{ matrix_steam_bridge_container_image_self_build_repo_version }}" - dest: "{{ matrix_steam_bridge_container_src_files_path }}" + repo: "{{ matrix_bridge_steam_container_image_self_build_repo }}" + version: "{{ matrix_bridge_steam_container_image_self_build_repo_version }}" + dest: "{{ matrix_bridge_steam_container_src_files_path }}" force: "yes" become: true become_user: "{{ matrix_user_name }}" - register: matrix_steam_bridge_git_pull_results - when: "matrix_steam_bridge_enabled | bool and matrix_steam_bridge_container_image_self_build" + register: matrix_bridge_steam_git_pull_results + when: "matrix_bridge_steam_enabled | bool and matrix_bridge_steam_container_image_self_build" - name: Ensure Steam bridge Docker image is built community.docker.docker_image_build: - name: "{{ matrix_steam_bridge_container_image }}" + name: "{{ matrix_bridge_steam_container_image }}" dockerfile: Dockerfile - path: "{{ matrix_steam_bridge_container_src_files_path }}" + path: "{{ matrix_bridge_steam_container_src_files_path }}" pull: true - rebuild: "{{ 'always' if matrix_steam_bridge_git_pull_results.changed | bool else 'never' }}" - when: "matrix_steam_bridge_enabled | bool and matrix_steam_bridge_container_image_self_build | bool" - register: matrix_steam_bridge_container_image_build_result + rebuild: "{{ 'always' if matrix_bridge_steam_git_pull_results.changed | bool else 'never' }}" + when: "matrix_bridge_steam_enabled | bool and matrix_bridge_steam_container_image_self_build | bool" + register: matrix_bridge_steam_container_image_build_result - name: Ensure matrix-steam-bridge config.yaml installed ansible.builtin.copy: - content: "{{ matrix_steam_bridge_configuration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_steam_bridge_config_path }}/config.yaml" + content: "{{ matrix_bridge_steam_configuration | to_nice_yaml(indent=2, width=999999) }}" + dest: "{{ matrix_bridge_steam_config_path }}/config.yaml" mode: '0644' owner: "{{ matrix_user_name }}" group: "{{ matrix_group_name }}" - register: matrix_steam_bridge_config_result + register: matrix_bridge_steam_config_result - name: Ensure matrix-steam-bridge registration.yaml installed ansible.builtin.copy: - content: "{{ matrix_steam_bridge_registration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_steam_bridge_config_path }}/registration.yaml" + content: "{{ matrix_bridge_steam_registration | to_nice_yaml(indent=2, width=999999) }}" + dest: "{{ matrix_bridge_steam_config_path }}/registration.yaml" mode: '0644' owner: "{{ matrix_user_name }}" group: "{{ matrix_group_name }}" - register: matrix_steam_bridge_registration_result + register: matrix_bridge_steam_registration_result - name: Ensure matrix-steam-bridge support files installed ansible.builtin.template: src: "{{ role_path }}/templates/{{ item }}.j2" - dest: "{{ matrix_steam_bridge_base_path }}/{{ item }}" + dest: "{{ matrix_bridge_steam_base_path }}/{{ item }}" mode: '0640' owner: "{{ matrix_user_name }}" group: "{{ matrix_group_name }}" with_items: - labels - register: matrix_steam_bridge_support_files_result + register: matrix_bridge_steam_support_files_result - name: Ensure matrix-steam-bridge container network is created - when: matrix_steam_bridge_container_network != 'host' + when: matrix_bridge_steam_container_network != 'host' community.general.docker_network: enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" - name: "{{ matrix_steam_bridge_container_network }}" + name: "{{ matrix_bridge_steam_container_network }}" driver: bridge driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" @@ -94,19 +94,19 @@ src: "{{ role_path }}/templates/systemd/matrix-steam-bridge.service.j2" dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-steam-bridge.service" mode: '0644' - register: matrix_steam_bridge_systemd_service_result + register: matrix_bridge_steam_systemd_service_result - name: Determine whether matrix-steam-bridge needs a restart ansible.builtin.set_fact: - matrix_steam_bridge_restart_necessary: >- + matrix_bridge_steam_restart_necessary: >- {{ - matrix_steam_bridge_migration_requires_restart | default(false) - or matrix_steam_bridge_config_result.changed | default(false) - or matrix_steam_bridge_registration_result.changed | default(false) - or matrix_steam_bridge_support_files_result.changed | default(false) - or matrix_steam_bridge_systemd_service_result.changed | default(false) - or matrix_steam_bridge_container_image_pull_result.changed | default(false) - or matrix_steam_bridge_container_image_build_result.changed | default(false) + matrix_bridge_steam_migration_requires_restart | default(false) + or matrix_bridge_steam_config_result.changed | default(false) + or matrix_bridge_steam_registration_result.changed | default(false) + or matrix_bridge_steam_support_files_result.changed | default(false) + or matrix_bridge_steam_systemd_service_result.changed | default(false) + or matrix_bridge_steam_container_image_pull_result.changed | default(false) + or matrix_bridge_steam_container_image_build_result.changed | default(false) }} - name: Ensure matrix-steam-bridge.service restarted, if necessary @@ -114,4 +114,4 @@ name: "matrix-steam-bridge.service" state: restarted daemon_reload: true - when: "matrix_steam_bridge_migration_requires_restart | bool" + when: "matrix_bridge_steam_migration_requires_restart | bool" diff --git a/roles/custom/matrix-bridge-steam/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-steam/tasks/setup_uninstall.yml index 361be0420..a47a47e3e 100644 --- a/roles/custom/matrix-bridge-steam/tasks/setup_uninstall.yml +++ b/roles/custom/matrix-bridge-steam/tasks/setup_uninstall.yml @@ -7,9 +7,9 @@ - name: Check existence of matrix-steam-bridge service ansible.builtin.stat: path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-steam-bridge.service" - register: matrix_steam_bridge_service_stat + register: matrix_bridge_steam_service_stat -- when: matrix_steam_bridge_service_stat.stat.exists | bool +- when: matrix_bridge_steam_service_stat.stat.exists | bool block: - name: Ensure matrix-steam-bridge is stopped ansible.builtin.service: diff --git a/roles/custom/matrix-bridge-steam/tasks/validate_config.yml b/roles/custom/matrix-bridge-steam/tasks/validate_config.yml index 3c457716b..b15a50c78 100644 --- a/roles/custom/matrix-bridge-steam/tasks/validate_config.yml +++ b/roles/custom/matrix-bridge-steam/tasks/validate_config.yml @@ -11,15 +11,15 @@ Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml). when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0" with_items: - - {'old': 'matrix_steam_bridge_docker_image_name_prefix', 'new': 'matrix_steam_bridge_container_image_registry_prefix'} - - {'old': 'matrix_steam_bridge_docker_image', 'new': 'matrix_steam_bridge_container_image'} - - {'old': 'matrix_steam_bridge_docker_image_force_pull', 'new': 'matrix_steam_bridge_container_image_force_pull'} - - {'old': 'matrix_steam_bridge_docker_image_registry_prefix', 'new': 'matrix_steam_bridge_container_image_registry_prefix'} - - {'old': 'matrix_steam_bridge_docker_image_registry_prefix_upstream', 'new': 'matrix_steam_bridge_container_image_registry_prefix_upstream'} - - {'old': 'matrix_steam_bridge_docker_image_registry_prefix_upstream_default', 'new': 'matrix_steam_bridge_container_image_registry_prefix_upstream_default'} - - {'old': 'matrix_steam_bridge_docker_image_tag', 'new': 'matrix_steam_bridge_container_image_tag'} - - {'old': 'matrix_steam_bridge_docker_src_files_path', 'new': 'matrix_steam_bridge_container_src_files_path'} - - {'old': 'matrix_steam_bridge_container_image_force_pull', 'new': ' (the new community.docker.docker_image_pull module handles this natively)'} + - {'old': 'matrix_bridge_steam_docker_image_name_prefix', 'new': 'matrix_bridge_steam_container_image_registry_prefix'} + - {'old': 'matrix_bridge_steam_docker_image', 'new': 'matrix_bridge_steam_container_image'} + - {'old': 'matrix_bridge_steam_docker_image_force_pull', 'new': 'matrix_bridge_steam_container_image_force_pull'} + - {'old': 'matrix_bridge_steam_docker_image_registry_prefix', 'new': 'matrix_bridge_steam_container_image_registry_prefix'} + - {'old': 'matrix_bridge_steam_docker_image_registry_prefix_upstream', 'new': 'matrix_bridge_steam_container_image_registry_prefix_upstream'} + - {'old': 'matrix_bridge_steam_docker_image_registry_prefix_upstream_default', 'new': 'matrix_bridge_steam_container_image_registry_prefix_upstream_default'} + - {'old': 'matrix_bridge_steam_docker_image_tag', 'new': 'matrix_bridge_steam_container_image_tag'} + - {'old': 'matrix_bridge_steam_docker_src_files_path', 'new': 'matrix_bridge_steam_container_src_files_path'} + - {'old': 'matrix_bridge_steam_container_image_force_pull', 'new': ' (the new community.docker.docker_image_pull module handles this natively)'} - name: Fail if required matrix_steam_bridge settings not defined ansible.builtin.fail: @@ -27,11 +27,11 @@ You need to define a required configuration setting (`{{ item.name }}`). when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0" with_items: - - {'name': 'matrix_steam_bridge_appservice_token', when: true} - - {'name': 'matrix_steam_bridge_homeserver_address', when: true} - - {'name': 'matrix_steam_bridge_homeserver_token', when: true} - - {'name': 'matrix_steam_bridge_database_hostname', when: "{{ matrix_steam_bridge_database_engine == 'postgres' }}"} - - {'name': 'matrix_steam_bridge_container_network', when: true} - - {'name': 'matrix_steam_bridge_metrics_proxying_hostname', when: "{{ matrix_steam_bridge_metrics_proxying_enabled }}"} - - {'name': 'matrix_steam_bridge_metrics_proxying_path_prefix', when: "{{ matrix_steam_bridge_metrics_proxying_enabled }}"} + - {'name': 'matrix_bridge_steam_appservice_token', when: true} + - {'name': 'matrix_bridge_steam_homeserver_address', when: true} + - {'name': 'matrix_bridge_steam_homeserver_token', when: true} + - {'name': 'matrix_bridge_steam_database_hostname', when: "{{ matrix_bridge_steam_database_engine == 'postgres' }}"} + - {'name': 'matrix_bridge_steam_container_network', when: true} + - {'name': 'matrix_bridge_steam_metrics_proxying_hostname', when: "{{ matrix_bridge_steam_metrics_proxying_enabled }}"} + - {'name': 'matrix_bridge_steam_metrics_proxying_path_prefix', when: "{{ matrix_bridge_steam_metrics_proxying_enabled }}"} # TODO: Confirm additional config isn't mandatory for public_media diff --git a/roles/custom/matrix-bridge-steam/templates/config.yaml.j2 b/roles/custom/matrix-bridge-steam/templates/config.yaml.j2 index 38380161c..1df813e0b 100644 --- a/roles/custom/matrix-bridge-steam/templates/config.yaml.j2 +++ b/roles/custom/matrix-bridge-steam/templates/config.yaml.j2 @@ -7,7 +7,7 @@ network: get_proxy_url: null # Displayname template for Steam users. - displayname_template: {{ matrix_steam_bridge_network_displayname_template | to_json }} + displayname_template: {{ matrix_bridge_steam_network_displayname_template | to_json }} # Maximum number of conversations to sync on startup conversation_sync_limit: 20 @@ -22,7 +22,7 @@ network: # Enable presence tracking from Matrix to Steam # When enabled, your Steam status will automatically change based on # your Matrix presence and activity - enabled: {{ matrix_steam_bridge_network_presence_enabled | to_json }} + enabled: {{ matrix_bridge_steam_network_presence_enabled | to_json }} # Inactivity timeout in minutes before changing Steam status # This is used as a fallback when your Matrix server doesn't support @@ -33,7 +33,7 @@ network: # Status to set after inactivity timeout # Valid values: "snooze" (appear away/idle) or "invisible" (appear offline) - inactivity_status: {{ matrix_steam_bridge_network_presence_inactivity_status | to_json }} + inactivity_status: {{ matrix_bridge_steam_network_presence_inactivity_status | to_json }} # Whether typing events in Matrix should reset the inactivity timer # When true, typing will count as activity and keep you marked as online typing_resets_presence: true @@ -46,17 +46,17 @@ network: # Sets a Steam friend's current game (+ rich presence flavor text) as the DM room's m.room.topic. presence_topic: # Master switch for setting the DM room topic to the friend's current game - enabled: {{ matrix_steam_bridge_network_presence_topic_enabled | to_json }} + enabled: {{ matrix_bridge_steam_network_presence_topic_enabled | to_json }} # Append resolved rich presence flavor text to the topic (e.g. "Deadlock — Street Brawl: Paige (12 min)") - rich_presence_enabled: {{ matrix_steam_bridge_network_presence_topic_rich_presence_enabled | to_json }} + rich_presence_enabled: {{ matrix_bridge_steam_network_presence_topic_rich_presence_enabled | to_json }} # Fallback: show the raw unresolved rich presence token if resolution fails - show_raw_tokens: {{ matrix_steam_bridge_network_presence_topic_show_raw_tokens | to_json }} + show_raw_tokens: {{ matrix_bridge_steam_network_presence_topic_show_raw_tokens | to_json }} # Config options that affect the central bridge module. bridge: # The prefix for commands. Only required in non-management rooms. - command_prefix: {{ matrix_steam_bridge_command_prefix | to_json }} + command_prefix: {{ matrix_bridge_steam_command_prefix | to_json }} # Should the bridge create a space for each login containing the rooms that account is in? personal_filtering_spaces: true # Whether the bridge should set names and avatars explicitly for DM portals. @@ -70,7 +70,7 @@ bridge: # By default, users who are in the same group on the remote network will be # in the same Matrix room bridged to that group. If this is set to true, # every user will get their own Matrix room instead. - split_portals: {{ matrix_steam_bridge_bridge_split_portals | to_json }} + split_portals: {{ matrix_bridge_steam_bridge_split_portals | to_json }} # Should the bridge resend `m.bridge` events to all portals on startup? resend_bridge_info: false # Should `m.bridge` events be sent without a state key? @@ -109,24 +109,24 @@ bridge: # delete - Remove all ghosts and users from the room (i.e. delete it) cleanup_on_logout: # Should cleanup on logout be enabled at all? - enabled: {{ matrix_steam_bridge_bridge_cleanup_on_logout_enabled | to_json }} + enabled: {{ matrix_bridge_steam_bridge_cleanup_on_logout_enabled | to_json }} # Settings for manual logouts (explicitly initiated by the Matrix user) manual: # Action for private portals which will never be shared with other Matrix users. - private: {{ matrix_steam_bridge_bridge_cleanup_on_logout_manual_private | to_json }} + private: {{ matrix_bridge_steam_bridge_cleanup_on_logout_manual_private | to_json }} # Action for portals with a relay user configured. - relayed: {{ matrix_steam_bridge_bridge_cleanup_on_logout_manual_relayed | to_json }} + relayed: {{ matrix_bridge_steam_bridge_cleanup_on_logout_manual_relayed | to_json }} # Action for portals which may be shared, but don't currently have any other Matrix users. - shared_no_users: {{ matrix_steam_bridge_bridge_cleanup_on_logout_manual_shared_no_users | to_json }} + shared_no_users: {{ matrix_bridge_steam_bridge_cleanup_on_logout_manual_shared_no_users | to_json }} # Action for portals which have other logged-in Matrix users. - shared_has_users: {{ matrix_steam_bridge_bridge_cleanup_on_logout_manual_shared_has_users | to_json }} + shared_has_users: {{ matrix_bridge_steam_bridge_cleanup_on_logout_manual_shared_has_users | to_json }} # Settings for credentials being invalidated (initiated by the remote network, possibly through user action). # Keys have the same meanings as in the manual section. bad_credentials: - private: {{ matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_private | to_json }} - relayed: {{ matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_relayed | to_json }} - shared_no_users: {{ matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_shared_no_users | to_json }} - shared_has_users: {{ matrix_steam_bridge_bridge_cleanup_on_logout_bad_credentials_shared_has_users | to_json }} + private: {{ matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_private | to_json }} + relayed: {{ matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_relayed | to_json }} + shared_no_users: {{ matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_shared_no_users | to_json }} + shared_has_users: {{ matrix_bridge_steam_bridge_cleanup_on_logout_bad_credentials_shared_has_users | to_json }} # Settings for relay mode relay: @@ -173,7 +173,7 @@ bridge: # * - All Matrix users # domain - All users on that homeserver # mxid - Specific user - permissions: {{ matrix_steam_bridge_bridge_permissions | to_json }} + permissions: {{ matrix_bridge_steam_bridge_permissions | to_json }} # Config for the bridge's database. database: @@ -184,7 +184,7 @@ database: # https://github.com/mattn/go-sqlite3#connection-string # Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable # To connect via Unix socket, use something like postgres:///dbname?host=/var/run/postgresql - uri: {{ matrix_steam_bridge_database_uri | to_json }} + uri: {{ matrix_bridge_steam_database_uri | to_json }} # Maximum number of connections. max_open_conns: 5 max_idle_conns: 2 @@ -198,9 +198,9 @@ homeserver: # The address that this appservice can use to connect to the homeserver. # Local addresses without HTTPS are generally recommended when the bridge is running on the same machine, # but https also works if they run on different machines. - address: {{ matrix_steam_bridge_homeserver_address | to_json }} + address: {{ matrix_bridge_steam_homeserver_address | to_json }} # The domain of the homeserver (also known as server_name, used for MXIDs, etc). - domain: {{ matrix_steam_bridge_homeserver_domain | to_json }} + domain: {{ matrix_bridge_steam_homeserver_domain | to_json }} # What software is the homeserver running? # Standard Matrix homeservers like Synapse, Dendrite and Conduit should just use "standard" here. @@ -216,7 +216,7 @@ homeserver: # The bridge will use the appservice as_token to authorize requests. message_send_checkpoint_endpoint: # Does the homeserver support https://github.com/matrix-org/matrix-spec-proposals/pull/2246? - async_media: {{ matrix_steam_bridge_homeserver_async_media | to_json }} + async_media: {{ matrix_bridge_steam_homeserver_async_media | to_json }} # Should the bridge use a websocket for connecting to the homeserver? # The server side is currently not documented anywhere and is only implemented by mautrix-wsproxy, @@ -232,27 +232,27 @@ appservice: # Like the homeserver address, a local non-https address is recommended when the bridge is on the same machine. # If the bridge is elsewhere, you must secure the connection yourself (e.g. with https or wireguard) # If you want to use https, you need to use a reverse proxy. The bridge does not have TLS support built in. - address: {{ matrix_steam_bridge_appservice_address | to_json }} + address: {{ matrix_bridge_steam_appservice_address | to_json }} # A public address that external services can use to reach this appservice. # This is only needed for things like public media. A reverse proxy is generally necessary when using this field. # This value doesn't affect the registration file. - public_address: {{ matrix_steam_bridge_appservice_public_address | to_json }} + public_address: {{ matrix_bridge_steam_appservice_public_address | to_json }} # The hostname and port where this appservice should listen. # For Docker, you generally have to change the hostname to 0.0.0.0. hostname: 0.0.0.0 - port: {{ matrix_steam_bridge_appservice_port }} + port: {{ matrix_bridge_steam_appservice_port }} # The unique ID of this appservice. id: steam # Appservice bot details. bot: # Username of the appservice bot. - username: {{ matrix_steam_bridge_appservice_bot_username | to_json }} + username: {{ matrix_bridge_steam_appservice_bot_username | to_json }} # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty # to leave display name/avatar as-is. - displayname: {{ matrix_steam_bridge_appservice_bot_displayname | to_json(ensure_ascii=False) }} - avatar: {{ matrix_steam_bridge_appservice_bot_avatar | to_json }} + displayname: {{ matrix_bridge_steam_appservice_bot_displayname | to_json(ensure_ascii=False) }} + avatar: {{ matrix_bridge_steam_appservice_bot_avatar | to_json }} # Whether to receive ephemeral events via appservice transactions. ephemeral_events: true @@ -263,8 +263,8 @@ appservice: async_transactions: false # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. - as_token: {{ matrix_steam_bridge_appservice_token | to_json }} - hs_token: {{ matrix_steam_bridge_homeserver_token | to_json }} + as_token: {{ matrix_bridge_steam_appservice_token | to_json }} + hs_token: {{ matrix_bridge_steam_homeserver_token | to_json }} # Localpart template of MXIDs for remote users. # {% raw %}{{.}}{% endraw %} is replaced with the internal ID of the user. @@ -282,7 +282,7 @@ matrix: sync_direct_chat_list: true # Whether created rooms should have federation enabled. If false, created portal rooms # will never be federated. Changing this option requires recreating rooms. - federate_rooms: {{ matrix_steam_bridge_matrix_federate_rooms | to_json }} + federate_rooms: {{ matrix_bridge_steam_matrix_federate_rooms | to_json }} # The threshold as bytes after which the bridge should roundtrip uploads via the disk # rather than keeping the whole file in memory. upload_file_threshold: 5242880 @@ -302,7 +302,7 @@ provisioning: prefix: /_matrix/provision # Shared secret for authentication. If set to "generate" or null, a random secret will be generated, # or if set to "disable", the provisioning API will be disabled. - shared_secret: {{ matrix_steam_bridge_provisioning_shared_secret | to_json }} + shared_secret: {{ matrix_bridge_steam_provisioning_shared_secret | to_json }} # Whether to allow provisioning API requests to be authed using Matrix access tokens. # This follows the same rules as double puppeting to determine which server to contact to check the token, # which means that by default, it only works for users on the same server as the bridge. @@ -316,15 +316,15 @@ provisioning: public_media: # Should public media be enabled at all? # The public_address field under the appservice section MUST be set when enabling public media. - enabled: {{ matrix_steam_bridge_public_media_enabled | to_json }} + enabled: {{ matrix_bridge_steam_public_media_enabled | to_json }} # A key for signing public media URLs. # If set to "generate", a random key will be generated. - signing_key: {{ matrix_steam_bridge_public_media_signing_key | to_json }} + signing_key: {{ matrix_bridge_steam_public_media_signing_key | to_json }} # Number of seconds that public media URLs are valid for. # If set to 0, URLs will never expire. - expiry: {{ matrix_steam_bridge_public_media_expiry | to_json }} + expiry: {{ matrix_bridge_steam_public_media_expiry | to_json }} # Length of hash to use for public media URLs. Must be between 0 and 32. - hash_length: {{ matrix_steam_bridge_public_media_hash_length | to_json }} + hash_length: {{ matrix_bridge_steam_public_media_hash_length | to_json }} # Settings for converting remote media to custom mxc:// URIs instead of reuploading. # More details can be found at https://docs.mau.fi/bridges/go/discord/direct-media.html @@ -353,11 +353,11 @@ direct_media: # See https://docs.mau.fi/bridges/general/backfill.html for more details. backfill: # Whether to do backfilling at all. - enabled: {{ matrix_steam_bridge_backfill_enabled | to_json }} + enabled: {{ matrix_bridge_steam_backfill_enabled | to_json }} # Maximum number of messages to backfill in empty rooms. - max_initial_messages: {{ matrix_steam_bridge_backfill_max_initial_messages | to_json }} + max_initial_messages: {{ matrix_bridge_steam_backfill_max_initial_messages | to_json }} # Maximum number of missed messages to backfill after bridge restarts. - max_catchup_messages: {{ matrix_steam_bridge_backfill_max_catchup_messages | to_json }} + max_catchup_messages: {{ matrix_bridge_steam_backfill_max_catchup_messages | to_json }} # If a backfilled chat is older than this number of hours, # mark it as read even if it's unread on the remote network. unread_hours_threshold: 720 @@ -392,35 +392,35 @@ double_puppet: allow_discovery: false # Shared secrets for automatic double puppeting. # See https://docs.mau.fi/bridges/general/double-puppeting.html for instructions. - secrets: {{ matrix_steam_bridge_double_puppet_secrets | to_json }} + secrets: {{ matrix_bridge_steam_double_puppet_secrets | to_json }} # End-to-bridge encryption support options. # # See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info. encryption: # Whether to enable encryption at all. If false, the bridge will not function in encrypted rooms. - allow: {{ matrix_steam_bridge_bridge_encryption_allow | to_json }} + allow: {{ matrix_bridge_steam_bridge_encryption_allow | to_json }} # Whether to force-enable encryption in all bridged rooms. - default: {{ matrix_steam_bridge_bridge_encryption_default | to_json }} + default: {{ matrix_bridge_steam_bridge_encryption_default | to_json }} # Whether to require all messages to be encrypted and drop any unencrypted messages. - require: {{ matrix_steam_bridge_bridge_encryption_require | to_json }} + require: {{ matrix_bridge_steam_bridge_encryption_require | to_json }} # Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data. # This option is not yet compatible with standard Matrix servers like Synapse and should not be used. - appservice: {{ matrix_steam_bridge_bridge_encryption_appservice | to_json }} + appservice: {{ matrix_bridge_steam_bridge_encryption_appservice | to_json }} # Whether to use MSC4190 instead of appservice login to create the bridge bot device. # Requires the homeserver to support MSC4190 and the device masquerading parts of MSC3202. # Only relevant when using end-to-bridge encryption, required when using encryption with next-gen auth (MSC3861). # Changing this option requires updating the appservice registration file. - msc4190: {{ matrix_steam_bridge_msc4190_enabled | to_json }} + msc4190: {{ matrix_bridge_steam_msc4190_enabled | to_json }} # Whether to enable self-signing for bridges (Only the bridge bot uses this for now) # Requires msc4190 to replace keys on reset - self_sign: {{ matrix_steam_bridge_self_sign_enabled | to_json }} + self_sign: {{ matrix_bridge_steam_self_sign_enabled | to_json }} # Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled. # You must use a client that supports requesting keys from other users to use this feature. - allow_key_sharing: {{ matrix_steam_bridge_bridge_encryption_key_sharing_allow | to_json }} + allow_key_sharing: {{ matrix_bridge_steam_bridge_encryption_key_sharing_allow | to_json }} # Pickle key for encrypting encryption keys in the bridge database. # If set to generate, a random key will be generated. - pickle_key: {{ matrix_steam_bridge_bridge_encryption_pickle_key | to_json }} + pickle_key: {{ matrix_bridge_steam_bridge_encryption_pickle_key | to_json }} # Options for deleting megolm sessions from the bridge. delete_keys: # Beeper-specific: delete outbound sessions when hungryserv confirms @@ -479,7 +479,7 @@ encryption: # Logging config. See https://github.com/tulir/zeroconfig for details. logging: - min_level: {{ matrix_steam_bridge_logging_level | to_json }} + min_level: {{ matrix_bridge_steam_logging_level | to_json }} writers: - type: stdout format: pretty-colored diff --git a/roles/custom/matrix-bridge-steam/templates/labels.j2 b/roles/custom/matrix-bridge-steam/templates/labels.j2 index 77fa05a4c..c087b47a7 100644 --- a/roles/custom/matrix-bridge-steam/templates/labels.j2 +++ b/roles/custom/matrix-bridge-steam/templates/labels.j2 @@ -4,40 +4,40 @@ SPDX-FileCopyrightText: 2025 MDAD project contributors SPDX-License-Identifier: AGPL-3.0-or-later #} -{% if matrix_steam_bridge_container_labels_traefik_enabled %} +{% if matrix_bridge_steam_container_labels_traefik_enabled %} traefik.enable=true -{% if matrix_steam_bridge_container_labels_traefik_docker_network %} -traefik.docker.network={{ matrix_steam_bridge_container_labels_traefik_docker_network }} +{% if matrix_bridge_steam_container_labels_traefik_docker_network %} +traefik.docker.network={{ matrix_bridge_steam_container_labels_traefik_docker_network }} {% endif %} -traefik.http.services.matrix-steam-bridge.loadbalancer.server.port={{ matrix_steam_bridge_appservice_port }} +traefik.http.services.matrix-steam-bridge.loadbalancer.server.port={{ matrix_bridge_steam_appservice_port }} traefik.http.services.matrix-steam-bridge-metrics.loadbalancer.server.port=8000 -{% if matrix_steam_bridge_container_labels_metrics_enabled %} +{% if matrix_bridge_steam_container_labels_metrics_enabled %} ############################################################ # # # Metrics # # # ############################################################ -{% if matrix_steam_bridge_container_labels_metrics_middleware_basic_auth_enabled %} -traefik.http.middlewares.matrix-steam-bridge-metrics-basic-auth.basicauth.users={{ matrix_steam_bridge_container_labels_metrics_middleware_basic_auth_users }} +{% if matrix_bridge_steam_container_labels_metrics_middleware_basic_auth_enabled %} +traefik.http.middlewares.matrix-steam-bridge-metrics-basic-auth.basicauth.users={{ matrix_bridge_steam_container_labels_metrics_middleware_basic_auth_users }} traefik.http.routers.matrix-steam-bridge-metrics.middlewares=matrix-steam-bridge-metrics-basic-auth {% endif %} -traefik.http.routers.matrix-steam-bridge-metrics.rule={{ matrix_steam_bridge_container_labels_metrics_traefik_rule }} +traefik.http.routers.matrix-steam-bridge-metrics.rule={{ matrix_bridge_steam_container_labels_metrics_traefik_rule }} -{% if matrix_steam_bridge_container_labels_metrics_traefik_priority | int > 0 %} -traefik.http.routers.matrix-steam-bridge-metrics.priority={{ matrix_steam_bridge_container_labels_metrics_traefik_priority }} +{% if matrix_bridge_steam_container_labels_metrics_traefik_priority | int > 0 %} +traefik.http.routers.matrix-steam-bridge-metrics.priority={{ matrix_bridge_steam_container_labels_metrics_traefik_priority }} {% endif %} traefik.http.routers.matrix-steam-bridge-metrics.service=matrix-steam-bridge-metrics -traefik.http.routers.matrix-steam-bridge-metrics.entrypoints={{ matrix_steam_bridge_container_labels_metrics_traefik_entrypoints }} +traefik.http.routers.matrix-steam-bridge-metrics.entrypoints={{ matrix_bridge_steam_container_labels_metrics_traefik_entrypoints }} -traefik.http.routers.matrix-steam-bridge-metrics.tls={{ matrix_steam_bridge_container_labels_metrics_traefik_tls | to_json }} -{% if matrix_steam_bridge_container_labels_metrics_traefik_tls %} -traefik.http.routers.matrix-steam-bridge-metrics.tls.certResolver={{ matrix_steam_bridge_container_labels_metrics_traefik_tls_certResolver }} +traefik.http.routers.matrix-steam-bridge-metrics.tls={{ matrix_bridge_steam_container_labels_metrics_traefik_tls | to_json }} +{% if matrix_bridge_steam_container_labels_metrics_traefik_tls %} +traefik.http.routers.matrix-steam-bridge-metrics.tls.certResolver={{ matrix_bridge_steam_container_labels_metrics_traefik_tls_certResolver }} {% endif %} ############################################################ @@ -48,7 +48,7 @@ traefik.http.routers.matrix-steam-bridge-metrics.tls.certResolver={{ matrix_stea {% endif %} -{% if matrix_steam_bridge_public_media_enabled %} +{% if matrix_bridge_steam_public_media_enabled %} ############################################################ # # # Public Media # @@ -58,10 +58,10 @@ traefik.http.routers.matrix-steam-bridge-metrics.tls.certResolver={{ matrix_stea # Router for public media traefik.http.routers.matrix-steam-bridge-public-media.rule=Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`/_mautrix/publicmedia/{{ matrix_domain }}/`) traefik.http.routers.matrix-steam-bridge-public-media.service=matrix-steam-bridge -traefik.http.routers.matrix-steam-bridge-public-media.entrypoints={{ matrix_steam_bridge_container_labels_traefik_entrypoints }} -traefik.http.routers.matrix-steam-bridge-public-media.tls={{ matrix_steam_bridge_container_labels_traefik_tls | to_json }} -{% if matrix_steam_bridge_container_labels_traefik_tls %} -traefik.http.routers.matrix-steam-bridge-public-media.tls.certResolver={{ matrix_steam_bridge_container_labels_traefik_tls_certResolver }} +traefik.http.routers.matrix-steam-bridge-public-media.entrypoints={{ matrix_bridge_steam_container_labels_traefik_entrypoints }} +traefik.http.routers.matrix-steam-bridge-public-media.tls={{ matrix_bridge_steam_container_labels_traefik_tls | to_json }} +{% if matrix_bridge_steam_container_labels_traefik_tls %} +traefik.http.routers.matrix-steam-bridge-public-media.tls.certResolver={{ matrix_bridge_steam_container_labels_traefik_tls_certResolver }} {% endif %} @@ -75,4 +75,4 @@ traefik.http.routers.matrix-steam-bridge-public-media.tls.certResolver={{ matrix {% endif %} -{{ matrix_steam_bridge_container_labels_additional_labels }} +{{ matrix_bridge_steam_container_labels_additional_labels }} diff --git a/roles/custom/matrix-bridge-steam/templates/systemd/matrix-steam-bridge.service.j2 b/roles/custom/matrix-bridge-steam/templates/systemd/matrix-steam-bridge.service.j2 index b711101ce..991e32f08 100644 --- a/roles/custom/matrix-bridge-steam/templates/systemd/matrix-steam-bridge.service.j2 +++ b/roles/custom/matrix-bridge-steam/templates/systemd/matrix-steam-bridge.service.j2 @@ -1,11 +1,11 @@ #jinja2: lstrip_blocks: True [Unit] Description=Matrix Steam bridge -{% for service in matrix_steam_bridge_systemd_required_services_list %} +{% for service in matrix_bridge_steam_systemd_required_services_list %} Requires={{ service }} After={{ service }} {% endfor %} -{% for service in matrix_steam_bridge_systemd_wanted_services_list %} +{% for service in matrix_bridge_steam_systemd_wanted_services_list %} Wants={{ service }} {% endfor %} DefaultDependencies=no @@ -22,18 +22,18 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ --log-driver=none \ --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ --cap-drop=ALL \ - --network={{ matrix_steam_bridge_container_network }} \ - --mount type=bind,src={{ matrix_steam_bridge_config_path }},dst=/app/config,ro \ - --mount type=bind,src={{ matrix_steam_bridge_data_path }},dst=/app/data \ - --label-file={{ matrix_steam_bridge_base_path }}/labels \ - {% for arg in matrix_steam_bridge_container_extra_arguments %} + --network={{ matrix_bridge_steam_container_network }} \ + --mount type=bind,src={{ matrix_bridge_steam_config_path }},dst=/app/config,ro \ + --mount type=bind,src={{ matrix_bridge_steam_data_path }},dst=/app/data \ + --label-file={{ matrix_bridge_steam_base_path }}/labels \ + {% for arg in matrix_bridge_steam_container_extra_arguments %} {{ arg }} \ {% endfor %} - {{ matrix_steam_bridge_container_image }} \ + {{ matrix_bridge_steam_container_image }} \ /usr/bin/steam -c /app/config/config.yaml -r /app/config/registration.yaml --no-update -{% if matrix_steam_bridge_container_network != 'host' %} -{% for network in matrix_steam_bridge_container_additional_networks %} +{% if matrix_bridge_steam_container_network != 'host' %} +{% for network in matrix_bridge_steam_container_additional_networks %} ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-steam-bridge {% endfor %} {% endif %}