diff --git a/CHANGELOG.md b/CHANGELOG.md index 4502b7512..5076af155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# 2025-11-04 + +## The Go Skype bridge has been removed from the playbook + +The [go-skype-bridge](./docs/configuring-playbook-bridge-go-skype-bridge.md) has been removed from the playbook, as Skype has been discontinued since the May 2025. + +The playbook will let you know if you're using any `matrix_go_skype_bridge_*` variables. You'll need to remove them from `vars.yml` and potentially [uninstall the bridge manually](./docs/configuring-playbook-bridge-go-skype-bridge.md#uninstalling-the-bridge-manually). + # 2025-10-02 ## Element Admin support diff --git a/docs/configuring-playbook-bridge-go-skype-bridge.md b/docs/configuring-playbook-bridge-go-skype-bridge.md index 9ec4e1fe4..c32bd20da 100644 --- a/docs/configuring-playbook-bridge-go-skype-bridge.md +++ b/docs/configuring-playbook-bridge-go-skype-bridge.md @@ -1,68 +1,26 @@ -# Setting up Go Skype Bridge bridging (optional) +# Setting up Go Skype Bridge bridging (optional, removed) -The playbook can install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge) for you, for bridging to [Skype](https://www.skype.com/). This bridge was created based on [mautrix-whatsapp](https://github.com/mautrix/whatsapp) and can be configured in a similar way to it. +🪦 The playbook used to be able to install and configure [go-skype-bridge](https://github.com/kelaresg/go-skype-bridge), but no longer includes this component, as Skype has been discontinued since May 2025. -See the project's [documentation](https://github.com/kelaresg/go-skype-bridge/blob/master/README.md) to learn what it does and why it might be useful to you. +## Uninstalling the bridge manually -## Prerequisite (optional) +If you still have the Go Skype bridge installed on your Matrix server, the playbook can no longer help you uninstall it and you will need to do it manually. To uninstall manually, run these commands on the server: -### Enable Shared Secret Auth - -If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook. - -See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-puppeting-optional) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about setting up Double Puppeting. - -**Note**: double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future. - -## Adjusting the playbook configuration - -To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: - -```yaml -matrix_go_skype_bridge_enabled: true -``` - -### Extending the configuration - -There are some additional things you may wish to configure about the bridge. - -See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc. - -**Note**: when following the guide to configure the bridge, make sure to replace `_mautrix_SERVICENAME_` in the variable names with `_go_skype_bridge_`. - -## Installing - -After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below: - - ```sh -ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start -``` - -The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` - -`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. Note these shortcuts run the `ensure-matrix-users-created` tag too. - -## Usage - -To use the bridge, you need to start a chat with `@skypebridgebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain). - -## Troubleshooting - -As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-go-skype-bridge`. - -### Increase logging verbosity - -The default logging level for this component is `warn`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: - -```yaml -# Valid values: fatal, error, warn, info, debug -matrix_go_skype_bridge_log_level: 'info' +systemctl disable --now matrix-go-skype-bridge.service + +rm -rf /matrix/go-skype-bridge + +/matrix/postgres/bin/cli-non-interactive 'DROP DATABASE matrix_go_skype_bridge;' ``` diff --git a/docs/configuring-playbook-bridge-mx-puppet-skype.md b/docs/configuring-playbook-bridge-mx-puppet-skype.md index ffca067d6..c570c47f5 100644 --- a/docs/configuring-playbook-bridge-mx-puppet-skype.md +++ b/docs/configuring-playbook-bridge-mx-puppet-skype.md @@ -10,4 +10,4 @@ SPDX-License-Identifier: AGPL-3.0-or-later 🪦 The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time. -Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook. +The playbook used to be able to install and configure [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) as alternative to this bridge, but no longer includes this component, because Skype has been discontinued since May 2025. diff --git a/docs/configuring-playbook.md b/docs/configuring-playbook.md index 2b3de57ba..ac5ad30c8 100644 --- a/docs/configuring-playbook.md +++ b/docs/configuring-playbook.md @@ -188,8 +188,6 @@ Bridges can be used to connect your Matrix installation with third-party communi - [Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md) -- [Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md) - - [Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md) - [Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md) @@ -281,6 +279,8 @@ Various services that don't fit any other categories. - [Setting up Go-NEB](configuring-playbook-bot-go-neb.md) (unmaintained; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bridge-hookshot.md)) +- [Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md) (removed; Skype has been discontinued since May 2025) + - [Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) (unmaintained; the bridge's author suggests taking a look at [baibot](https://github.com/etkecc/baibot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bot-baibot.md)) - [Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md)) diff --git a/docs/container-images.md b/docs/container-images.md index 6d0b668c8..1c96d87a0 100644 --- a/docs/container-images.md +++ b/docs/container-images.md @@ -108,7 +108,6 @@ Bridges can be used to connect your Matrix installation with third-party communi | [matrix-sms-bridge](configuring-playbook-bridge-matrix-bridge-sms.md) | [folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge) | ❌ | Bridge to SMS | | [matrix-wechat](configuring-playbook-bridge-wechat.md) | [lxduo/matrix-wechat](https://hub.docker.com/r/lxduo/matrix-wechat) | ❌ | Bridge to [WeChat](https://www.wechat.com/) | | [Heisenbridge](configuring-playbook-bridge-heisenbridge.md) | [hif1/heisenbridge](https://hub.docker.com/r/hif1/heisenbridge) | ❌ | Bouncer-style bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | -| [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) | [nodefyme/go-skype-bridge](https://hub.docker.com/r/nodefyme/go-skype-bridge) | ❌ | Bridge to [Skype](https://www.skype.com) | | [mx-puppet-slack](configuring-playbook-bridge-mx-puppet-slack.md) | [mx-puppet/slack/mx-puppet-slack](https://gitlab.com/mx-puppet/slack/mx-puppet-slack/container_registry) | ❌ | Bridge to [Slack](https://slack.com) | | [mx-puppet-instagram](configuring-playbook-bridge-mx-puppet-instagram.md) | [sorunome/mx-puppet-instagram](https://hub.docker.com/r/sorunome/mx-puppet-instagram) | ❌ | Bridge for Instagram-DMs ([Instagram](https://www.instagram.com/)) | | [mx-puppet-twitter](configuring-playbook-bridge-mx-puppet-twitter.md) | [sorunome/mx-puppet-twitter](https://hub.docker.com/r/sorunome/mx-puppet-twitter) | ❌ | Bridge for Twitter-DMs ([Twitter](https://twitter.com/)) | diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index 7962e137c..dafbf7569 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -110,8 +110,6 @@ matrix_homeserver_container_extra_arguments_auto: | + (['--mount type=bind,src=' + matrix_beeper_linkedin_config_path + '/registration.yaml,dst=/matrix-beeper-linkedin-registration.yaml,ro'] if matrix_beeper_linkedin_enabled else []) + - (['--mount type=bind,src=' + matrix_go_skype_bridge_config_path + '/registration.yaml,dst=/matrix-go-skype-bridge-registration.yaml,ro'] if matrix_go_skype_bridge_enabled else []) - + (['--mount type=bind,src=' + matrix_wechat_config_path + '/registration.yaml,dst=/matrix-wechat-registration.yaml,ro'] if matrix_wechat_enabled else []) + (['--mount type=bind,src=' + matrix_heisenbridge_base_path + '/registration.yaml,dst=/heisenbridge-registration.yaml,ro'] if matrix_heisenbridge_enabled else []) @@ -185,8 +183,6 @@ matrix_homeserver_app_service_config_files_auto: | + (['/matrix-beeper-linkedin-registration.yaml'] if matrix_beeper_linkedin_enabled else []) + - (['/matrix-go-skype-bridge-registration.yaml'] if matrix_go_skype_bridge_enabled else []) - + (['/matrix-wechat-registration.yaml'] if matrix_wechat_enabled else []) + (['/heisenbridge-registration.yaml'] if matrix_heisenbridge_enabled else []) @@ -329,8 +325,6 @@ devture_systemd_service_manager_services_list_auto: | + ([{'name': 'matrix-beeper-linkedin.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'beeper-linkedin']}] if matrix_beeper_linkedin_enabled else []) + - ([{'name': 'matrix-go-skype-bridge.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'go-skype']}] if matrix_go_skype_bridge_enabled else []) - + ([{'name': 'matrix-wechat.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'wechat']}] if matrix_wechat_enabled else []) + ([{'name': 'matrix-wechat-agent.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'wechat']}] if matrix_wechat_enabled else []) @@ -1074,56 +1068,6 @@ matrix_beeper_linkedin_database_password: "{{ '%s' | format(matrix_homeserver_ge # ###################################################################### - -###################################################################### -# -# matrix-bridge-go-skype-bridge -# -###################################################################### - -# We don't enable bridges by default. -matrix_go_skype_bridge_enabled: false - -matrix_go_skype_bridge_systemd_required_services_list_auto: | - {{ - matrix_addons_homeserver_systemd_services_list - + - ([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_go_skype_bridge_database_hostname == postgres_connection_hostname) else []) - }} - -matrix_go_skype_bridge_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_go_skype_bridge_docker_image_registry_prefix_upstream_default }}" - -matrix_go_skype_bridge_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}" - -matrix_go_skype_bridge_container_network: "{{ matrix_addons_container_network }}" - -matrix_go_skype_bridge_container_additional_networks_auto: |- - {{ - ( - ([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network]) - + - ([postgres_container_network] if (postgres_enabled and matrix_go_skype_bridge_database_hostname == postgres_connection_hostname and matrix_go_skype_bridge_container_network != postgres_container_network) else []) - ) | unique - }} - -matrix_go_skype_bridge_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'skype.as.token', rounds=655555) | to_uuid }}" - -matrix_go_skype_bridge_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}" -matrix_go_skype_bridge_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'skype.hs.token', rounds=655555) | to_uuid }}" - -matrix_go_skype_bridge_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}" - -# Postgres is the default, except if not using internal Postgres server -matrix_go_skype_bridge_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}" -matrix_go_skype_bridge_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}" -matrix_go_skype_bridge_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'goskype.db', rounds=655555) | to_uuid }}" - -###################################################################### -# -# /matrix-bridge-go-skype-bridge -# -###################################################################### - ###################################################################### # # matrix-bridge-mautrix-bluesky @@ -4352,12 +4296,6 @@ postgres_managed_databases_auto: | 'password': matrix_beeper_linkedin_database_password, }] if (matrix_beeper_linkedin_enabled and matrix_beeper_linkedin_database_engine == 'postgres' and matrix_beeper_linkedin_database_hostname == postgres_connection_hostname) else []) + - ([{ - 'name': matrix_go_skype_bridge_database_name, - 'username': matrix_go_skype_bridge_database_username, - 'password': matrix_go_skype_bridge_database_password, - }] if (matrix_go_skype_bridge_enabled and matrix_go_skype_bridge_database_engine == 'postgres' and matrix_go_skype_bridge_database_hostname == postgres_connection_hostname) else []) - + ([{ 'name': matrix_wechat_database_name, 'username': matrix_wechat_database_username, @@ -5285,11 +5223,6 @@ matrix_synapse_admin_config_asManagedUsers_auto: | '^@linkedin_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', ] if matrix_beeper_linkedin_enabled else []) + - ([ - '^@'+(matrix_go_skype_bridge_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$', - '^@skype_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', - ] if matrix_go_skype_bridge_enabled else []) - + ([ '^@heisenbridge:'+(matrix_domain | regex_escape)+'$', '^@hbirc_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$', diff --git a/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml b/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml deleted file mode 100644 index 92f43be70..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/defaults/main.yml +++ /dev/null @@ -1,164 +0,0 @@ -# SPDX-FileCopyrightText: 2022 - 2023 Nikita Chernyi -# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev -# SPDX-FileCopyrightText: 2022 - 2025 MDAD project contributors -# SPDX-FileCopyrightText: 2022 Arthur Brugière -# SPDX-FileCopyrightText: 2022 Vladimir Panteleev -# SPDX-FileCopyrightText: 2023 Samuel Meenzen -# SPDX-FileCopyrightText: 2024 Suguru Hirahara -# -# SPDX-License-Identifier: AGPL-3.0-or-later - ---- -# Go Skype Bridge is a Matrix <-> Skype bridge -# Project source code URL: https://github.com/kelaresg/go-skype-bridge - -matrix_go_skype_bridge_enabled: true - -matrix_go_skype_bridge_container_image_self_build: false -matrix_go_skype_bridge_container_image_self_build_repo: "https://github.com/kelaresg/go-skype-bridge.git" -matrix_go_skype_bridge_container_image_self_build_branch: "{{ 'master' if matrix_go_skype_bridge_version == 'latest' else matrix_go_skype_bridge_version }}" - -# renovate: datasource=docker depName=nodefyme/go-skype-bridge -matrix_go_skype_bridge_version: latest -matrix_go_skype_bridge_docker_image: "{{ matrix_go_skype_bridge_docker_image_registry_prefix }}nodefyme/go-skype-bridge:{{ matrix_go_skype_bridge_version }}" -matrix_go_skype_bridge_docker_image_registry_prefix: "{{ 'localhost/' if matrix_go_skype_bridge_container_image_self_build else matrix_go_skype_bridge_docker_image_registry_prefix_upstream }}" -matrix_go_skype_bridge_docker_image_registry_prefix_upstream: "{{ matrix_go_skype_bridge_docker_image_registry_prefix_upstream_default }}" -matrix_go_skype_bridge_docker_image_registry_prefix_upstream_default: "docker.io/" -matrix_go_skype_bridge_docker_image_force_pull: "{{ matrix_go_skype_bridge_docker_image.endswith(':latest') }}" - -matrix_go_skype_bridge_base_path: "{{ matrix_base_data_path }}/go-skype-bridge" -matrix_go_skype_bridge_config_path: "{{ matrix_go_skype_bridge_base_path }}/config" -matrix_go_skype_bridge_data_path: "{{ matrix_go_skype_bridge_base_path }}/data" -matrix_go_skype_bridge_docker_src_files_path: "{{ matrix_go_skype_bridge_base_path }}/docker-src" - -matrix_go_skype_bridge_homeserver_address: "" -matrix_go_skype_bridge_homeserver_domain: "{{ matrix_domain }}" -matrix_go_skype_bridge_appservice_address: 'http://matrix-go-skype-bridge:8080' - -matrix_go_skype_bridge_container_network: "" - -matrix_go_skype_bridge_container_additional_networks: "{{ matrix_go_skype_bridge_container_additional_networks_auto + matrix_go_skype_bridge_container_additional_networks_custom }}" -matrix_go_skype_bridge_container_additional_networks_auto: [] -matrix_go_skype_bridge_container_additional_networks_custom: [] - -# A list of extra arguments to pass to the container -matrix_go_skype_bridge_container_extra_arguments: [] - -# List of systemd services that matrix-go-skype-bridge.service depends on. -matrix_go_skype_bridge_systemd_required_services_list: "{{ matrix_go_skype_bridge_systemd_required_services_list_default + matrix_go_skype_bridge_systemd_required_services_list_auto + matrix_go_skype_bridge_systemd_required_services_list_custom }}" -matrix_go_skype_bridge_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" -matrix_go_skype_bridge_systemd_required_services_list_auto: [] -matrix_go_skype_bridge_systemd_required_services_list_custom: [] - -# List of systemd services that matrix-go-skype-bridge.service wants -matrix_go_skype_bridge_systemd_wanted_services_list: [] - -matrix_go_skype_bridge_appservice_token: '' -matrix_go_skype_bridge_homeserver_token: '' - -matrix_go_skype_bridge_appservice_bot_username: skypebridgebot - -matrix_go_skype_bridge_command_prefix: "!skype" - -# Whether or not created rooms should have federation enabled. -# If false, created portal rooms will never be federated. -matrix_go_skype_bridge_federate_rooms: true - -# Database-related configuration fields. -# -# To use SQLite, stick to these defaults. -# -# To use Postgres: -# - change the engine (`matrix_go_skype_bridge_database_engine: 'postgres'`) -# - adjust your database credentials via the `matrix_go_skype_bridge_database_*` variables -matrix_go_skype_bridge_database_engine: 'sqlite' - -matrix_go_skype_bridge_sqlite_database_path_local: "{{ matrix_go_skype_bridge_data_path }}/go-skype-bridge.db" -matrix_go_skype_bridge_sqlite_database_path_in_container: "/data/go-skype-bridge.db" - -matrix_go_skype_bridge_database_username: 'matrix_go_skype_bridge' -matrix_go_skype_bridge_database_password: 'some-password' -matrix_go_skype_bridge_database_hostname: '' -matrix_go_skype_bridge_database_port: 5432 -matrix_go_skype_bridge_database_name: 'matrix_go_skype_bridge' -matrix_go_skype_bridge_database_sslmode: disable - -matrix_go_skype_bridge_database_connection_string: 'postgresql://{{ matrix_go_skype_bridge_database_username }}:{{ matrix_go_skype_bridge_database_password }}@{{ matrix_go_skype_bridge_database_hostname }}:{{ matrix_go_skype_bridge_database_port }}/{{ matrix_go_skype_bridge_database_name }}?sslmode={{ matrix_go_skype_bridge_database_sslmode }}' - -matrix_go_skype_bridge_appservice_database_type: "{{ - { - 'sqlite': 'sqlite3', - 'postgres':'postgres', - }[matrix_go_skype_bridge_database_engine] -}}" - -matrix_go_skype_bridge_appservice_database_uri: "{{ - { - 'sqlite': matrix_go_skype_bridge_sqlite_database_path_in_container, - 'postgres': matrix_go_skype_bridge_database_connection_string, - }[matrix_go_skype_bridge_database_engine] -}}" - -# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth). -matrix_go_skype_bridge_login_shared_secret: '' -matrix_go_skype_bridge_bridge_login_shared_secret_map: - "{{ {matrix_go_skype_bridge_homeserver_domain: matrix_go_skype_bridge_login_shared_secret} if matrix_go_skype_bridge_login_shared_secret else {} }}" - -# Servers to always allow double puppeting from -matrix_go_skype_bridge_bridge_double_puppet_server_map: - "{{ matrix_go_skype_bridge_homeserver_domain: matrix_go_skype_bridge_homeserver_address }}" - -# Enable End-to-bridge encryption -matrix_go_skype_bridge_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}" -matrix_go_skype_bridge_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}" - -# Minimum severity of journal log messages. -# Valid values: fatal, error, warn, info, debug -matrix_go_skype_bridge_log_level: 'warn' - -matrix_go_skype_bridge_bridge_permissions: | - {{ - {matrix_go_skype_bridge_homeserver_domain: 'user'} - | combine({matrix_admin: 'admin'} if matrix_admin else {}) - }} - -# Default go-skype-bridge 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_go_skype_bridge_configuration_extension_yaml`) -# or completely replace this variable with your own template. -matrix_go_skype_bridge_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" - -matrix_go_skype_bridge_configuration_extension_yaml: | - # Your custom YAML configuration goes here. - # This configuration extends the default starting configuration (`matrix_go_skype_bridge_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_go_skype_bridge_configuration_yaml`. - -matrix_go_skype_bridge_configuration_extension: "{{ matrix_go_skype_bridge_configuration_extension_yaml | from_yaml if matrix_go_skype_bridge_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_go_skype_bridge_configuration_yaml`. -matrix_go_skype_bridge_configuration: "{{ matrix_go_skype_bridge_configuration_yaml | from_yaml | combine(matrix_go_skype_bridge_configuration_extension, recursive=True) }}" - -matrix_go_skype_bridge_registration_yaml: | - id: skype - url: {{ matrix_go_skype_bridge_appservice_address }} - as_token: "{{ matrix_go_skype_bridge_appservice_token }}" - hs_token: "{{ matrix_go_skype_bridge_homeserver_token }}" - # See https://github.com/mautrix/signal/issues/43 - sender_localpart: _bot_{{ matrix_go_skype_bridge_appservice_bot_username }} - rate_limited: false - namespaces: - users: - - regex: '^@skype-(.*):{{ matrix_go_skype_bridge_homeserver_domain | regex_escape }}$' - exclusive: true - - exclusive: true - regex: '^@{{ matrix_go_skype_bridge_appservice_bot_username | regex_escape }}:{{ matrix_go_skype_bridge_homeserver_domain | regex_escape }}$' - de.sorunome.msc2409.push_ephemeral: true - receive_ephemeral: true - -matrix_go_skype_bridge_registration: "{{ matrix_go_skype_bridge_registration_yaml | from_yaml }}" diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml deleted file mode 100644 index a92f08d98..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/main.yml +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev -# SPDX-FileCopyrightText: 2022 Vladimir Panteleev -# -# SPDX-License-Identifier: AGPL-3.0-or-later - ---- - -- tags: - - setup-all - - setup-go-skype-bridge - - install-all - - install-go-skype-bridge - block: - - when: matrix_go_skype_bridge_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" - - - when: matrix_go_skype_bridge_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" - -- tags: - - setup-all - - setup-go-skype-bridge - block: - - when: not matrix_go_skype_bridge_enabled | bool - ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml deleted file mode 100644 index e877e9dfd..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_install.yml +++ /dev/null @@ -1,155 +0,0 @@ -# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev -# SPDX-FileCopyrightText: 2022 Sebastian Gumprich -# SPDX-FileCopyrightText: 2022 Vladimir Panteleev -# SPDX-FileCopyrightText: 2024 David Mehren -# -# SPDX-License-Identifier: AGPL-3.0-or-later - ---- - -- ansible.builtin.set_fact: - matrix_go_skype_bridge_requires_restart: false - -- when: "matrix_go_skype_bridge_database_engine == 'postgres'" - block: - - name: Check if an SQLite database already exists - ansible.builtin.stat: - path: "{{ matrix_go_skype_bridge_sqlite_database_path_local }}" - register: matrix_go_skype_bridge_sqlite_database_path_local_stat_result - - - when: "matrix_go_skype_bridge_sqlite_database_path_local_stat_result.stat.exists | bool" - block: - - ansible.builtin.include_role: - name: galaxy/postgres - tasks_from: migrate_db_to_postgres - vars: - postgres_db_migration_request: - src: "{{ matrix_go_skype_bridge_sqlite_database_path_local }}" - dst: "{{ matrix_go_skype_bridge_database_connection_string }}" - caller: "{{ role_path | basename }}" - engine_variable_name: 'matrix_go_skype_bridge_database_engine' - engine_old: 'sqlite' - systemd_services_to_stop: ['matrix-go-skype-bridge.service'] - pgloader_options: ['--with "quote identifiers"'] - - - ansible.builtin.set_fact: - matrix_go_skype_bridge_requires_restart: true - -- name: Ensure Go Skype Bridge paths exists - ansible.builtin.file: - path: "{{ item.path }}" - state: directory - mode: 0750 - owner: "{{ matrix_user_name }}" - group: "{{ matrix_group_name }}" - with_items: - - {path: "{{ matrix_go_skype_bridge_base_path }}", when: true} - - {path: "{{ matrix_go_skype_bridge_config_path }}", when: true} - - {path: "{{ matrix_go_skype_bridge_data_path }}", when: true} - - {path: "{{ matrix_go_skype_bridge_docker_src_files_path }}", when: "{{ matrix_go_skype_bridge_container_image_self_build }}"} - when: item.when | bool - -- name: Ensure Go Skype Bridge image is pulled - community.docker.docker_image: - name: "{{ matrix_go_skype_bridge_docker_image }}" - source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" - force_source: "{{ matrix_go_skype_bridge_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_go_skype_bridge_docker_image_force_pull }}" - when: not matrix_go_skype_bridge_container_image_self_build - register: result - retries: "{{ devture_playbook_help_container_retries_count }}" - delay: "{{ devture_playbook_help_container_retries_delay }}" - until: result is not failed - -- name: Ensure Go Skype Bridge repository is present on self-build - ansible.builtin.git: - repo: "{{ matrix_go_skype_bridge_container_image_self_build_repo }}" - dest: "{{ matrix_go_skype_bridge_docker_src_files_path }}" - version: "{{ matrix_go_skype_bridge_container_image_self_build_branch }}" - force: "yes" - become: true - become_user: "{{ matrix_user_name }}" - register: matrix_go_skype_bridge_git_pull_results - when: "matrix_go_skype_bridge_container_image_self_build | bool" - -- name: Ensure Go Skype Bridge Docker image is built - community.docker.docker_image: - name: "{{ matrix_go_skype_bridge_docker_image }}" - source: build - force_source: "{{ matrix_go_skype_bridge_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" - force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_go_skype_bridge_git_pull_results.changed }}" - build: - dockerfile: Dockerfile - path: "{{ matrix_go_skype_bridge_docker_src_files_path }}" - pull: true - when: "matrix_go_skype_bridge_container_image_self_build | bool" - -- name: Check if an old database file exists - ansible.builtin.stat: - path: "{{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db" - register: matrix_go_skype_bridge_stat_database - -- name: Check if an old Matrix state file exists - ansible.builtin.stat: - path: "{{ matrix_go_skype_bridge_base_path }}/mx-state.json" - register: matrix_go_skype_bridge_stat_mx_state - -- name: (Data relocation) Ensure matrix-go-skype-bridge.service is stopped - ansible.builtin.service: - name: matrix-go-skype-bridge - state: stopped - enabled: false - daemon_reload: true - failed_when: false - when: "matrix_go_skype_bridge_stat_database.stat.exists" - -- name: (Data relocation) Move go-skype-bridge database file to ./data directory - ansible.builtin.command: - cmd: "mv {{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db {{ matrix_go_skype_bridge_data_path }}/go-skype-bridge.db" - creates: "{{ matrix_go_skype_bridge_data_path }}/go-skype-bridge.db" - removes: "{{ matrix_go_skype_bridge_base_path }}/go-skype-bridge.db" - when: "matrix_go_skype_bridge_stat_database.stat.exists" - -- name: (Data relocation) Move go-skype-bridge mx-state file to ./data directory - ansible.builtin.command: - cmd: "mv {{ matrix_go_skype_bridge_base_path }}/mx-state.json {{ matrix_go_skype_bridge_data_path }}/mx-state.json" - creates: "{{ matrix_go_skype_bridge_data_path }}/mx-state.json" - removes: "{{ matrix_go_skype_bridge_base_path }}/mx-state.json" - when: "matrix_go_skype_bridge_stat_mx_state.stat.exists" - -- name: Ensure go-skype-bridge config.yaml installed - ansible.builtin.copy: - content: "{{ matrix_go_skype_bridge_configuration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_go_skype_bridge_config_path }}/config.yaml" - mode: 0644 - owner: "{{ matrix_user_name }}" - group: "{{ matrix_group_name }}" - -- name: Ensure go-skype-bridge registration.yaml installed - ansible.builtin.copy: - content: "{{ matrix_go_skype_bridge_registration | to_nice_yaml(indent=2, width=999999) }}" - dest: "{{ matrix_go_skype_bridge_config_path }}/registration.yaml" - mode: 0644 - owner: "{{ matrix_user_name }}" - group: "{{ matrix_group_name }}" - -- name: Ensure matrix-go-skype-bridge container network is created - community.general.docker_network: - enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" - name: "{{ matrix_go_skype_bridge_container_network }}" - driver: bridge - driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" - -- name: Ensure matrix-go-skype-bridge.service installed - ansible.builtin.template: - src: "{{ role_path }}/templates/systemd/matrix-go-skype-bridge.service.j2" - dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-go-skype-bridge.service" - mode: 0644 - register: matrix_go_skype_bridge_systemd_service_result - -- name: Ensure matrix-go-skype-bridge.service restarted, if necessary - ansible.builtin.service: - name: "matrix-go-skype-bridge.service" - state: restarted - daemon_reload: true - when: "matrix_go_skype_bridge_requires_restart | bool" diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml deleted file mode 100644 index b7d3373c3..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/setup_uninstall.yml +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Slavi Pantaleev -# SPDX-FileCopyrightText: 2022 Vladimir Panteleev -# -# SPDX-License-Identifier: AGPL-3.0-or-later - ---- - -- name: Check existence of matrix-go-skype-bridge service - ansible.builtin.stat: - path: "/etc/systemd/system/matrix-go-skype-bridge.service" - register: matrix_go_skype_bridge_service_stat - -- when: matrix_go_skype_bridge_service_stat.stat.exists | bool - block: - - name: Ensure matrix-go-skype-bridge is stopped - ansible.builtin.service: - name: matrix-go-skype-bridge - state: stopped - enabled: false - daemon_reload: true - - - name: Ensure matrix-go-skype-bridge.service doesn't exist - ansible.builtin.file: - path: "/etc/systemd/system/matrix-go-skype-bridge.service" - state: absent diff --git a/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml b/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml deleted file mode 100644 index b1c73a99c..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/tasks/validate_config.yml +++ /dev/null @@ -1,28 +0,0 @@ -# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev -# SPDX-FileCopyrightText: 2022 Vladimir Panteleev -# SPDX-FileCopyrightText: 2025 Suguru Hirahara -# -# SPDX-License-Identifier: AGPL-3.0-or-later - ---- - -- name: Fail if required go-skype-bridge settings not defined - ansible.builtin.fail: - msg: >- - 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_go_skype_bridge_appservice_token', when: true} - - {'name': 'matrix_go_skype_bridge_homeserver_address', when: true} - - {'name': 'matrix_go_skype_bridge_homeserver_token', when: true} - - {'name': 'matrix_go_skype_bridge_database_hostname', when: "{{ matrix_go_skype_bridge_database_engine == 'postgres' }}"} - - {'name': 'matrix_go_skype_bridge_container_network', when: true} - -- name: (Deprecation) Catch and report renamed go-skype-bridge variables - ansible.builtin.fail: - msg: >- - Your configuration contains a variable, which now has a different name. - 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_go_skype_bridge_docker_image_name_prefix', 'new': 'matrix_go_skype_bridge_docker_image_registry_prefix'} diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2 b/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2 deleted file mode 100644 index 219a7e97d..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2 +++ /dev/null @@ -1,237 +0,0 @@ -#jinja2: lstrip_blocks: True -# Homeserver details. -homeserver: - # The address that this appservice can use to connect to the homeserver. - address: {{ matrix_go_skype_bridge_homeserver_address }} - # The domain of the homeserver (for MXIDs, etc). - domain: {{ matrix_go_skype_bridge_homeserver_domain }} - # If you don’t know what this is, no need to modify(for parse "mention user/reply message, etc") - server_name: matrix.to - -# Application service host/registration related details. -# Changing these values requires regeneration of the registration. -appservice: - # The address that the homeserver can use to connect to this appservice. - address: {{ matrix_go_skype_bridge_appservice_address }} - - # The hostname and port where this appservice should listen. - hostname: 0.0.0.0 - port: 8080 - - # Database config. - database: - # The database type. "sqlite3" and "postgres" are supported. - type: {{ matrix_go_skype_bridge_appservice_database_type|to_json }} - # The database URI. - # SQLite: File name is enough. https://github.com/mattn/go-sqlite3#connection-string - # Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable - uri: {{ matrix_go_skype_bridge_appservice_database_uri|to_json }} - # Maximum number of connections. Mostly relevant for Postgres. - max_open_conns: 20 - max_idle_conns: 2 - - # Settings for provisioning API - provisioning: - # Prefix for the provisioning API paths. - prefix: /_matrix/provision/v1 - # Shared secret for authentication. If set to "disable", the provisioning API will be disabled. - shared_secret: disable - - # The unique ID of this appservice. - id: skype - # Appservice bot details. - bot: - # Username of the appservice bot. - username: skypebridgebot - # Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty - # to leave display name/avatar as-is. - displayname: Skype bridge bot - avatar: mxc://matrix.org/kGQUDQyPiwbRXPFkjoBrPyhC - - # Authentication tokens for AS <-> HS communication. Autogenerated; do not modify. - as_token: "{{ matrix_go_skype_bridge_appservice_token }}" - hs_token: "{{ matrix_go_skype_bridge_homeserver_token }}" - -# Bridge config -bridge: - # Localpart template of MXIDs for Skype users. - # {{ '{{.}}' }} is replaced with the phone number of the Skype user. - username_template: {{ 'skype-{{.}}' }} - # Displayname template for Skype users. - # {{ '{{.Notify}}' }} - nickname set by the Skype user - # {{ '{{.Jid}}' }} - phone number (international format) - # The following variables are also available, but will cause problems on multi-user instances: - # {{ '{{.Name}}' }} - display name from contact list - # {{ '{{.Short}}' }} - short display name from contact list - # To use multiple if's, you need to use: {{ '{{else if .Name}}' }}, for example: - # "{{ '{{if .Notify}}' }}{{ '{{.Notify}}' }}{{ '{{else if .Name}}' }}{{ '{{.Name}}' }}{{ '{{else}}' }}{{ '{{.Jid}}' }}{{ '{{end}}' }} (WA)" - displayname_template: "{{ '{{if .DisplayName}}' }}{{ '{{.DisplayName}}' }}{{ '{{else}}' }}{{ '{{.PersonId}}' }}{{ '{{end}}' }} (Skype)" - # Localpart template for per-user room grouping community IDs. - # On startup, the bridge will try to create these communities, add all of the specific user's - # portals to the community, and invite the Matrix user to it. - # (Note that, by default, non-admins might not have your homeserver's permission to create - # communities.) - # {{ '{{.Localpart}}' }} is the MXID localpart and {{ '{{.Server}}' }} is the MXID server part of the user. - community_template: skype-{{ '{{.Localpart}}' }}={{ '{{.Server}}' }} - - # Skype connection timeout in seconds. - connection_timeout: 20 - # If Skype doesn't respond within connection_timeout, should the bridge try to fetch the message - # to see if it was actually bridged? Use this if you have problems with sends timing out but actually - # succeeding. - fetch_message_on_timeout: false - # Whether or not the bridge should send a read receipt from the bridge bot when a message has been - # sent to Skype. If fetch_message_on_timeout is enabled, a successful post-timeout fetch will - # trigger a read receipt too. - delivery_receipts: false - # Number of times to regenerate QR code when logging in. - # The regenerated QR code is sent as an edit and essentially multiplies the login timeout (20 seconds) - login_qr_regen_count: 2 - # Maximum number of times to retry connecting on connection error. - max_connection_attempts: 3 - # Number of seconds to wait between connection attempts. - # Negative numbers are exponential backoff: -connection_retry_delay + 1 + 2^attempts - connection_retry_delay: -1 - # Whether or not the bridge should send a notice to the user's management room when it retries connecting. - # If false, it will only report when it stops retrying. - report_connection_retry: true - # Maximum number of seconds to wait for chats to be sent at startup. - # If this is too low and you have lots of chats, it could cause backfilling to fail. - chat_list_wait: 30 - # Maximum number of seconds to wait to sync portals before force unlocking message processing. - # If this is too low and you have lots of chats, it could cause backfilling to fail. - portal_sync_wait: 600 - - # Whether or not to send call start/end notices to Matrix. - call_notices: - start: true - end: true - - # Number of chats to sync for new users. - # Since some of the obtained conversations are not the conversations that the user needs to see, - # the actual number of conversations displayed on the Matrix client will be slightly less than the set value - initial_chat_sync_count: 10 - # Number of old messages to fill when creating new portal rooms. - initial_history_fill_count: 20 - # Whether or not notifications should be turned off while filling initial history. - # Only applicable when using double puppeting. - initial_history_disable_notifications: false - # Maximum number of chats to sync when recovering from downtime. - # Set to -1 to sync all new chats during downtime. - recovery_chat_sync_limit: -1 - # Whether or not to sync history when recovering from downtime. - recovery_history_backfill: true - # Maximum number of seconds since last message in chat to skip - # syncing the chat in any case. This setting will take priority - # over both recovery_chat_sync_limit and initial_chat_sync_count. - # Default is 3 days = 259200 seconds - sync_max_chat_age: 259200 - - # sync contact, Non-martix-standard parameter, defaults to false - sync_contact: false - - # Whether or not to sync with custom puppets to receive EDUs that - # are not normally sent to appservices. - sync_with_custom_puppets: true - - # Servers to always allow double puppeting from - double_puppet_server_map: - "{{ matrix_go_skype_bridge_homeserver_domain }}": {{ matrix_go_skype_bridge_homeserver_address }} - # Allow using double puppeting from any server with a valid client .well-known file. - double_puppet_allow_discovery: false - # Shared secret for https://github.com/devture/matrix-synapse-shared-secret-auth - # - # If set, custom puppets will be enabled automatically for local users - # instead of users having to find an access token and run `login-matrix` - # manually. - login_shared_secret_map: {{ matrix_go_skype_bridge_bridge_login_shared_secret_map|to_json }} - - # Whether or not to invite own Skype user's Matrix puppet into private - # chat portals when backfilling if needed. - # This always uses the default puppet instead of custom puppets due to - # rate limits and timestamp massaging. - invite_own_puppet_for_backfilling: true - # Whether or not to explicitly set the avatar and room name for private - # chat portal rooms. This can be useful if the previous field works fine, - # but causes room avatar/name bugs. - private_chat_portal_meta: true - - # Whether or not thumbnails from Skype should be sent. - # They're disabled by default due to very low resolution. - Skype_thumbnail: false - - # Allow invite permission for user. User can invite any bots to room with Skype - # users (private chat and groups) - allow_user_invite: false - - # The prefix for commands. Only required in non-management rooms. - command_prefix: "{{ matrix_go_skype_bridge_command_prefix }}" - - # End-to-bridge encryption support options. This requires login_shared_secret to be configured - # in order to get a device for the bridge bot. - # - # Additionally, https://github.com/matrix-org/synapse/pull/5758 is required if using a normal - # application service. - encryption: - # Allow encryption, work in group chat rooms with e2ee enabled - allow: {{ matrix_go_skype_bridge_bridge_encryption_allow|to_json }} - # Default to encryption, force-enable encryption in all portals the bridge creates - # This will cause the bridge bot to be in private chats for the encryption to work properly. - # It is recommended to also set private_chat_portal_meta to true when using this. - default: {{ matrix_go_skype_bridge_bridge_encryption_default|to_json }} - - puppet_id: - # when set to true, the matrixid of the contact (puppet) from the bridge to the Matrix will be encrypted into another string - allow: false - # 8 characters - key: '12dsf323' - # Use the username_template prefix. (Warning: At present, username_template cannot be too complicated, otherwise this function may cause unknown errors) - username_template_prefix: 'skype-' - - # Permissions for using the bridge. - # Permitted values: - # relaybot - Talk through the relaybot (if enabled), no access otherwise - # user - Access to use the bridge to chat with a Skype account. - # admin - User level and some additional administration tools - # Permitted keys: - # * - All Matrix users - # domain - All users on that homeserver - # mxid - Specific user - permissions: {{ matrix_go_skype_bridge_bridge_permissions|to_json }} - - relaybot: - # Whether or not relaybot support is enabled. - enabled: false - # The management room for the bot. This is where all status notifications are posted and - # in this room, you can use `!wa ` instead of `!wa relaybot `. Omitting - # the command prefix completely like in user management rooms is not possible. - management: '!qporfwt:example.com' - # List of users to invite to all created rooms that include the relaybot. - invites: [] - # The formats to use when sending messages to Skype via the relaybot. - message_formats: - m.text: "{{ '{{ .Sender.Displayname }}' }}: {{ '{{ .Message }}' }}" - m.notice: "{{ '{{ .Sender.Displayname }}' }}:: {{ '{{ .Message }}' }}" - m.emote: "* {{ '{{ .Sender.Displayname }}' }}: {{ '{{ .Message }}' }}" - m.file: "{{ '{{ .Sender.Displayname }}' }}: sent a file" - m.image: "{{ '{{ .Sender.Displayname }}' }}: sent an image" - m.audio: "{{ '{{ .Sender.Displayname }}' }}: sent an audio file" - m.video: "{{ '{{ .Sender.Displayname }}' }}: sent a video" - m.location: "{{ '{{ .Sender.Displayname }}' }}: sent a location" - -# Logging config. -logging: - # The directory for log files. Will be created if not found. - directory: ./logs - # Available variables: .Date for the file date and .Index for different log files on the same day. - # empty/null = journal logging only - file_name_format: - # Date format for file names in the Go time format: https://golang.org/pkg/time/#pkg-constants - file_date_format: "2006-01-02" - # Log file permissions. - file_mode: 0600 - # Timestamp format for log entries in the Go time format. - timestamp_format: "Jan _2, 2006 15:04:05" - # Minimum severity for log messages. - # Options: debug, info, warn, error, fatal - print_level: {{ matrix_go_skype_bridge_log_level }} diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2.license b/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2.license deleted file mode 100644 index c9507bbdb..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/templates/config.yaml.j2.license +++ /dev/null @@ -1,6 +0,0 @@ -SPDX-FileCopyrightText: 2022 MDAD project contributors -SPDX-FileCopyrightText: 2022 Nikita Chernyi -SPDX-FileCopyrightText: 2022 Vladimir Panteleev -SPDX-FileCopyrightText: 2024 Suguru Hirahara - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 b/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 deleted file mode 100644 index 816dd676a..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2 +++ /dev/null @@ -1,48 +0,0 @@ -#jinja2: lstrip_blocks: True -[Unit] -Description=Matrix Go Skype Bridge bridge -{% for service in matrix_go_skype_bridge_systemd_required_services_list %} -Requires={{ service }} -After={{ service }} -{% endfor %} -{% for service in matrix_go_skype_bridge_systemd_wanted_services_list %} -Wants={{ service }} -{% endfor %} -DefaultDependencies=no - -[Service] -Type=simple -Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-go-skype-bridge 2>/dev/null || true' -ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-go-skype-bridge 2>/dev/null || true' - -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ - --rm \ - --name=matrix-go-skype-bridge \ - --log-driver=none \ - --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ - --cap-drop=ALL \ - --network={{ matrix_go_skype_bridge_container_network }} \ - --mount type=bind,src={{ matrix_go_skype_bridge_config_path }},dst=/config \ - --mount type=bind,src={{ matrix_go_skype_bridge_data_path }},dst=/data \ - --workdir=/data \ - {% for arg in matrix_go_skype_bridge_container_extra_arguments %} - {{ arg }} \ - {% endfor %} - {{ matrix_go_skype_bridge_docker_image }} \ - /usr/bin/matrix-skype -c /config/config.yaml -r /config/registration.yaml - -{% for network in matrix_go_skype_bridge_container_additional_networks %} -ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-go-skype-bridge -{% endfor %} - -ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-go-skype-bridge - -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-go-skype-bridge 2>/dev/null || true' -ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-go-skype-bridge 2>/dev/null || true' -Restart=always -RestartSec=30 -SyslogIdentifier=matrix-go-skype-bridge - -[Install] -WantedBy=multi-user.target diff --git a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2.license b/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2.license deleted file mode 100644 index 9815cd215..000000000 --- a/roles/custom/matrix-bridge-go-skype-bridge/templates/systemd/matrix-go-skype-bridge.service.j2.license +++ /dev/null @@ -1,4 +0,0 @@ -SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev -SPDX-FileCopyrightText: 2022 Vladimir Panteleev - -SPDX-License-Identifier: AGPL-3.0-or-later diff --git a/roles/custom/matrix_playbook_migration/tasks/validate_config.yml b/roles/custom/matrix_playbook_migration/tasks/validate_config.yml index 53d0a32d4..a6858c6da 100644 --- a/roles/custom/matrix_playbook_migration/tasks/validate_config.yml +++ b/roles/custom/matrix_playbook_migration/tasks/validate_config.yml @@ -558,3 +558,15 @@ The following variables in your configuration need to be removed: {{ lookup('ansible.builtin.varnames', '^matrix_email2matrix_.+', wantlist=True) | join(', ') }} when: "lookup('ansible.builtin.varnames', '^matrix_email2matrix_.+', wantlist=True) | length > 0" + +- name: (Deprecation) Catch and report go-skype-bridge variables + ansible.builtin.fail: + msg: |- + The go-skype-bridge was completely removed from the playbook in November 2025, as Skype has been discontinued since May 2025. + + Please remove all `matrix_go_skype_bridge_*` variables from your configuration file (vars.yml). + + You may also wish to uninstall the bridge manually. See `docs/configuring-playbook-bridge-go-skype-bridge.md` for more information. + + The following variables in your configuration need to be removed: {{ lookup('ansible.builtin.varnames', '^matrix_go_skype_bridge_.+', wantlist=True) | join(', ') }} + when: "lookup('ansible.builtin.varnames', '^matrix_go_skype_bridge_.+', wantlist=True) | length > 0" diff --git a/setup.yml b/setup.yml index 7e4168440..bdcfcc7fb 100644 --- a/setup.yml +++ b/setup.yml @@ -60,7 +60,6 @@ - custom/matrix-bridge-appservice-irc - custom/matrix-bridge-appservice-kakaotalk - custom/matrix-bridge-beeper-linkedin - - custom/matrix-bridge-go-skype-bridge - custom/matrix-bridge-wechat - custom/matrix-bridge-mautrix-facebook - custom/matrix-bridge-mautrix-twitter