mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-07-15 19:24:45 +03:00
Remove the appservice-kakaotalk bridge
The bridge could only be installed by self-building its source code, and its upstream repository (on src.miscworks.net) has become unreachable (the Internet Archive last saw it alive in May 2026), making installation impossible. The bridge was also based on the long-unmaintained node-kakao library and carried a warning that using it may get KakaoTalk accounts banned. The playbook catches leftover matrix_appservice_kakaotalk_* variables and points users to the manual uninstallation instructions. Related to #5068 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# 2026-07-15
|
# 2026-07-15
|
||||||
|
|
||||||
|
## matrix-appservice-kakaotalk has been removed from the playbook
|
||||||
|
|
||||||
|
The [matrix-appservice-kakaotalk](./docs/configuring-playbook-bridge-appservice-kakaotalk.md) bridge has been removed from the playbook. This component could only be installed by self-building its source code, and its upstream repository has become unreachable, which makes installation impossible. The bridge was also based on the unmaintained node-kakao library, and there have been reports that using it may get KakaoTalk accounts banned.
|
||||||
|
|
||||||
|
The playbook will let you know if you're using any `matrix_appservice_kakaotalk_*` variables. You'll need to remove them from `vars.yml` and potentially [uninstall the component manually](./docs/configuring-playbook-bridge-appservice-kakaotalk.md#uninstalling-the-component-manually).
|
||||||
|
|
||||||
## Dedicated CAPTCHA variables for Matrix Authentication Service
|
## Dedicated CAPTCHA variables for Matrix Authentication Service
|
||||||
|
|
||||||
[Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) can now be protected with CAPTCHA (ReCaptcha v2, Cloudflare Turnstile, or hCaptcha) via dedicated variables, instead of going through `matrix_authentication_service_configuration_extension_yaml`. See the [captcha documentation](./docs/configuring-captcha.md#matrix-authentication-service) for details.
|
[Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) can now be protected with CAPTCHA (ReCaptcha v2, Cloudflare Turnstile, or hCaptcha) via dedicated variables, instead of going through `matrix_authentication_service_configuration_extension_yaml`. See the [captcha documentation](./docs/configuring-captcha.md#matrix-authentication-service) for details.
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ Bridges can be used to connect your Matrix installation with third-party communi
|
|||||||
| [mautrix-signal](https://github.com/mautrix/signal) | ❌ | Bridge to [Signal](https://www.signal.org/) | [Link](docs/configuring-playbook-bridge-mautrix-signal.md) |
|
| [mautrix-signal](https://github.com/mautrix/signal) | ❌ | Bridge to [Signal](https://www.signal.org/) | [Link](docs/configuring-playbook-bridge-mautrix-signal.md) |
|
||||||
| [beeper-linkedin](https://github.com/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) | [Link](docs/configuring-playbook-bridge-beeper-linkedin.md) |
|
| [beeper-linkedin](https://github.com/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) | [Link](docs/configuring-playbook-bridge-beeper-linkedin.md) |
|
||||||
| [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-appservice-irc.md) |
|
| [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-appservice-irc.md) |
|
||||||
| [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) | ❌ | Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) | [Link](docs/configuring-playbook-bridge-appservice-kakaotalk.md) |
|
|
||||||
| [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-appservice-discord.md) |
|
| [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-appservice-discord.md) |
|
||||||
| [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | [Link](docs/configuring-playbook-bridge-hookshot.md) |
|
| [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | [Link](docs/configuring-playbook-bridge-hookshot.md) |
|
||||||
| [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) | ❌ | Bridge to SMS | [Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md) |
|
| [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) | ❌ | Bridge to SMS | [Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md) |
|
||||||
|
|||||||
@@ -1,75 +1,26 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2022 Dennis Ciba
|
SPDX-FileCopyrightText: 2022 Dennis Ciba
|
||||||
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
|
SPDX-FileCopyrightText: 2022 - 2026 Slavi Pantaleev
|
||||||
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
|
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
|
||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# Setting up Appservice Kakaotalk bridging (optional)
|
# Setting up Appservice Kakaotalk bridging (optional, removed)
|
||||||
|
|
||||||
The playbook can install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) for you, for bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG). This bridge is based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code.
|
🪦 The playbook used to be able to install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) (a bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)), but no longer includes this component.
|
||||||
|
|
||||||
See the project's [documentation](https://src.miscworks.net/fair/matrix-appservice-kakaotalk/src/branch/master/README.md) to learn what it does and why it might be useful to you.
|
The bridge could only be installed by self-building its source code, and its upstream repository has become unreachable, which makes installation impossible. The bridge was also based on the now-unmaintained [node-kakao](https://github.com/storycraft/node-kakao) library, and there have been reports that using it may get your Kakaotalk account banned.
|
||||||
|
|
||||||
> [!WARNING]
|
## Uninstalling the component manually
|
||||||
> There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**.
|
|
||||||
|
|
||||||
## Prerequisite (optional)
|
If you still have matrix-appservice-kakaotalk 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_appservice_kakaotalk_enabled: true
|
|
||||||
```
|
|
||||||
|
|
||||||
### Extending the configuration
|
|
||||||
|
|
||||||
There are some additional things you may wish to configure about the bridge.
|
|
||||||
|
|
||||||
Take a look at:
|
|
||||||
|
|
||||||
- `roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
|
|
||||||
- `roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_kakaotalk_configuration_extension_yaml` variable
|
|
||||||
|
|
||||||
## Installing
|
|
||||||
|
|
||||||
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
|
|
||||||
|
|
||||||
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
|
|
||||||
```sh
|
```sh
|
||||||
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
|
systemctl disable --now matrix-appservice-kakaotalk.service
|
||||||
```
|
|
||||||
|
systemctl disable --now matrix-appservice-kakaotalk-node.service
|
||||||
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
|
|
||||||
|
rm -rf /matrix/appservice-kakaotalk
|
||||||
`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 `@kakaotalkbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain).
|
|
||||||
|
|
||||||
You then need to send `login --save EMAIL_OR_PHONE_NUMBER` to the bridge bot to enable bridging for your Kakaotalk account. The `--save` flag may be omitted, if you'd rather not save your password.
|
|
||||||
|
|
||||||
## 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-appservice-kakaotalk`.
|
|
||||||
|
|
||||||
### Increase logging verbosity
|
|
||||||
|
|
||||||
The default logging level for this component is `WARNING`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
matrix_appservice_kakaotalk_logging_level: DEBUG
|
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ This is the recommended way of setting up Double Puppeting, as it's easier to ac
|
|||||||
- Previously there were multiple different automatic double puppeting methods like one with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but they have been superseded by this Appservice Double Puppet method. Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future as the older methods were completely removed in the megabridge rewrites on [the upstream project](https://docs.mau.fi/bridges/general/double-puppeting.html#automatically).
|
- Previously there were multiple different automatic double puppeting methods like one with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but they have been superseded by this Appservice Double Puppet method. Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future as the older methods were completely removed in the megabridge rewrites on [the upstream project](https://docs.mau.fi/bridges/general/double-puppeting.html#automatically).
|
||||||
|
|
||||||
<!-- TODO: remove this note if the Shared Secret Auth service has stopped working or the bridges have been removed -->
|
<!-- TODO: remove this note if the Shared Secret Auth service has stopped working or the bridges have been removed -->
|
||||||
- Some bridges like [the deprecated Facebook mautrix bridge](configuring-playbook-bridge-mautrix-facebook.md) and [matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md), which is partially based on the Facebook bridge, are compatible with the Shared Secret Auth service only. These bridges automatically perform Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service is configured and enabled on the server for this playbook.
|
- Some bridges like [the deprecated Facebook mautrix bridge](configuring-playbook-bridge-mautrix-facebook.md) are compatible with the Shared Secret Auth service only. These bridges automatically perform Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service is configured and enabled on the server for this playbook.
|
||||||
|
|
||||||
#### Method 2: manually, by asking each user to provide a working access token
|
#### Method 2: manually, by asking each user to provide a working access token
|
||||||
|
|
||||||
|
|||||||
@@ -166,8 +166,6 @@ Bridges can be used to connect your Matrix installation with third-party communi
|
|||||||
|
|
||||||
- [Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)
|
- [Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)
|
||||||
|
|
||||||
- [Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)
|
|
||||||
|
|
||||||
- [Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)
|
- [Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)
|
||||||
|
|
||||||
- [Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) — a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira).
|
- [Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) — a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira).
|
||||||
@@ -263,6 +261,8 @@ Various services that don't fit any other categories.
|
|||||||
|
|
||||||
- [Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)
|
- [Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)
|
||||||
|
|
||||||
|
- [Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md) (removed; the upstream repository has become unreachable and the component could only be installed by self-building it)
|
||||||
|
|
||||||
- [Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued)
|
- [Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued)
|
||||||
|
|
||||||
- [Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; 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 Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; 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))
|
||||||
|
|||||||
@@ -99,7 +99,6 @@ Bridges can be used to connect your Matrix installation with third-party communi
|
|||||||
| [mautrix-signal](configuring-playbook-bridge-mautrix-signal.md) | [mautrix/signal](https://mau.dev/mautrix/signal/container_registry) | ❌ | Bridge to [Signal](https://www.signal.org/) |
|
| [mautrix-signal](configuring-playbook-bridge-mautrix-signal.md) | [mautrix/signal](https://mau.dev/mautrix/signal/container_registry) | ❌ | Bridge to [Signal](https://www.signal.org/) |
|
||||||
| [beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md) | [beeper/linkedin](https://ghcr.io/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) |
|
| [beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md) | [beeper/linkedin](https://ghcr.io/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) |
|
||||||
| [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) | [matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) |
|
| [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) | [matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) |
|
||||||
| [matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md) | Self-building | ❌ | Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) |
|
|
||||||
| [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) | [matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) |
|
| [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) | [matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) |
|
||||||
| [matrix-hookshot](configuring-playbook-bridge-hookshot.md) | [halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular |
|
| [matrix-hookshot](configuring-playbook-bridge-hookshot.md) | [halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular |
|
||||||
| [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-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 |
|
||||||
|
|||||||
@@ -102,8 +102,6 @@ matrix_homeserver_container_extra_arguments_auto: |
|
|||||||
+
|
+
|
||||||
(['--mount type=bind,src=' + matrix_appservice_irc_config_path + '/registration.yaml,dst=/matrix-appservice-irc-registration.yaml,ro'] if matrix_appservice_irc_enabled else [])
|
(['--mount type=bind,src=' + matrix_appservice_irc_config_path + '/registration.yaml,dst=/matrix-appservice-irc-registration.yaml,ro'] if matrix_appservice_irc_enabled else [])
|
||||||
+
|
+
|
||||||
(['--mount type=bind,src=' + matrix_appservice_kakaotalk_config_path + '/registration.yaml,dst=/matrix-appservice-kakaotalk-registration.yaml,ro'] if matrix_appservice_kakaotalk_enabled else [])
|
|
||||||
+
|
|
||||||
(['--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_beeper_linkedin_config_path + '/registration.yaml,dst=/matrix-beeper-linkedin-registration.yaml,ro'] if matrix_beeper_linkedin_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_wechat_config_path + '/registration.yaml,dst=/matrix-wechat-registration.yaml,ro'] if matrix_wechat_enabled else [])
|
||||||
@@ -161,8 +159,6 @@ matrix_homeserver_app_service_config_files_auto: |
|
|||||||
+
|
+
|
||||||
(['/matrix-appservice-irc-registration.yaml'] if matrix_appservice_irc_enabled else [])
|
(['/matrix-appservice-irc-registration.yaml'] if matrix_appservice_irc_enabled else [])
|
||||||
+
|
+
|
||||||
(['/matrix-appservice-kakaotalk-registration.yaml'] if matrix_appservice_kakaotalk_enabled else [])
|
|
||||||
+
|
|
||||||
(['/matrix-beeper-linkedin-registration.yaml'] if matrix_beeper_linkedin_enabled else [])
|
(['/matrix-beeper-linkedin-registration.yaml'] if matrix_beeper_linkedin_enabled else [])
|
||||||
+
|
+
|
||||||
(['/matrix-wechat-registration.yaml'] if matrix_wechat_enabled else [])
|
(['/matrix-wechat-registration.yaml'] if matrix_wechat_enabled else [])
|
||||||
@@ -370,20 +366,6 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
'groups': ['matrix', 'bridges', 'appservice-irc'],
|
'groups': ['matrix', 'bridges', 'appservice-irc'],
|
||||||
}] if matrix_appservice_irc_enabled else [])
|
}] if matrix_appservice_irc_enabled else [])
|
||||||
+
|
+
|
||||||
([{
|
|
||||||
'name': 'matrix-appservice-kakaotalk.service',
|
|
||||||
'priority': 2000,
|
|
||||||
'restart_necessary': (matrix_appservice_kakaotalk_restart_necessary | bool),
|
|
||||||
'groups': ['matrix', 'bridges', 'appservice-kakaotalk'],
|
|
||||||
}] if matrix_appservice_kakaotalk_enabled else [])
|
|
||||||
+
|
|
||||||
([{
|
|
||||||
'name': 'matrix-appservice-kakaotalk-node.service',
|
|
||||||
'priority': 1900,
|
|
||||||
'restart_necessary': (matrix_appservice_kakaotalk_restart_necessary | bool),
|
|
||||||
'groups': ['matrix', 'bridges', 'appservice-kakaotalk', 'appservice-kakaotalk-node'],
|
|
||||||
}] if matrix_appservice_kakaotalk_enabled else [])
|
|
||||||
+
|
|
||||||
([{
|
([{
|
||||||
'name': 'matrix-beeper-linkedin.service',
|
'name': 'matrix-beeper-linkedin.service',
|
||||||
'priority': 2000,
|
'priority': 2000,
|
||||||
@@ -1286,56 +1268,6 @@ matrix_appservice_irc_container_labels_traefik_tls_certResolver: "{{ traefik_cer
|
|||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
######################################################################
|
|
||||||
#
|
|
||||||
# matrix-bridge-appservice-kakaotalk
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
# We don't enable bridges by default.
|
|
||||||
matrix_appservice_kakaotalk_enabled: false
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_systemd_required_services_list_auto: |
|
|
||||||
{{
|
|
||||||
matrix_addons_homeserver_systemd_services_list
|
|
||||||
+
|
|
||||||
([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_appservice_kakaotalk_database_hostname == postgres_connection_hostname) else [])
|
|
||||||
}}
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream_default }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_appservice_kakaotalk_container_image_registry_prefix_upstream_default }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_container_network: "{{ matrix_addons_container_network }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_container_additional_networks_auto: |-
|
|
||||||
{{
|
|
||||||
(
|
|
||||||
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
|
|
||||||
+
|
|
||||||
([postgres_container_network] if (postgres_enabled and matrix_appservice_kakaotalk_database_hostname == postgres_connection_hostname and matrix_appservice_kakaotalk_container_network != postgres_container_network) else [])
|
|
||||||
) | unique
|
|
||||||
}}
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_appservice_token: "{{ (matrix_homeserver_generic_secret_key + ':as.kakao.hs') | hash('sha512') | to_uuid }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
|
|
||||||
matrix_appservice_kakaotalk_homeserver_token: "{{ (matrix_homeserver_generic_secret_key + ':as.kakao.hs') | hash('sha512') | to_uuid }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_homeserver_async_media: "{{ matrix_homeserver_implementation in ['synapse'] }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}"
|
|
||||||
matrix_appservice_kakaotalk_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
|
|
||||||
matrix_appservice_kakaotalk_database_password: "{{ (matrix_homeserver_generic_secret_key + ':as.kakao.db') | hash('sha512') | to_uuid }}"
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
#
|
|
||||||
# /matrix-bridge-appservice-kakaotalk
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
#
|
#
|
||||||
@@ -4128,12 +4060,6 @@ postgres_managed_databases_auto: |
|
|||||||
'password': matrix_appservice_irc_database_password,
|
'password': matrix_appservice_irc_database_password,
|
||||||
}] if (matrix_appservice_irc_enabled and matrix_appservice_irc_database_engine == 'postgres' and matrix_appservice_irc_database_hostname == postgres_connection_hostname) else [])
|
}] if (matrix_appservice_irc_enabled and matrix_appservice_irc_database_engine == 'postgres' and matrix_appservice_irc_database_hostname == postgres_connection_hostname) else [])
|
||||||
+
|
+
|
||||||
([{
|
|
||||||
'name': matrix_appservice_kakaotalk_database_name,
|
|
||||||
'username': matrix_appservice_kakaotalk_database_username,
|
|
||||||
'password': matrix_appservice_kakaotalk_database_password,
|
|
||||||
}] if (matrix_appservice_kakaotalk_enabled and matrix_appservice_kakaotalk_database_engine == 'postgres' and matrix_appservice_kakaotalk_database_hostname == postgres_connection_hostname) else [])
|
|
||||||
+
|
|
||||||
([{
|
([{
|
||||||
'name': matrix_beeper_linkedin_database_name,
|
'name': matrix_beeper_linkedin_database_name,
|
||||||
'username': matrix_beeper_linkedin_database_username,
|
'username': matrix_beeper_linkedin_database_username,
|
||||||
|
|||||||
@@ -1,233 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev
|
|
||||||
# SPDX-FileCopyrightText: 2023 Nikita Chernyi
|
|
||||||
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
# matrix-appservice-kakaotalk is a Matrix <-> Kakaotalk bridge
|
|
||||||
# Project source code URL: https://src.miscworks.net/fair/matrix-appservice-kakaotalk/
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_enabled: true
|
|
||||||
|
|
||||||
# No images are published for neither of the container images (appservice or node), so we're self-building everything.
|
|
||||||
matrix_appservice_kakaotalk_container_image_self_build: true
|
|
||||||
# matrix_appservice_kakaotalk_container_image_self_build_repo: "https://src.miscworks.net/fair/matrix-appservice-kakaotalk.git"
|
|
||||||
#
|
|
||||||
# hnarjis' fork is used instead of upstream (fair's), because upstream is currently broken.
|
|
||||||
# The following error happens when chatting up the bot without this fix:
|
|
||||||
# [2022-07-25 09:04:53,784] [ERROR@mau.as] Exception in Matrix event handler
|
|
||||||
# Traceback (most recent call last):
|
|
||||||
# File "/usr/lib/python3.9/site-packages/mautrix/appservice/as_handler.py", line 239, in try_handle
|
|
||||||
# await handler_func(event)
|
|
||||||
# File "/usr/lib/python3.9/site-packages/mautrix/bridge/matrix.py", line 820, in int_handle_event
|
|
||||||
# await self.int_handle_invite(evt)
|
|
||||||
# File "/usr/lib/python3.9/site-packages/mautrix/bridge/matrix.py", line 441, in int_handle_invite
|
|
||||||
# inviter = await self.bridge.get_user(evt.sender)
|
|
||||||
# File "/usr/lib/python3.9/site-packages/matrix_appservice_kakaotalk/__main__.py", line 112, in get_user
|
|
||||||
# return await User.get_by_mxid(user_id, create=create)
|
|
||||||
# File "/usr/lib/python3.9/site-packages/mautrix/util/async_getter_lock.py", line 60, in wrapper
|
|
||||||
# return await fn(cls, *args, **kwargs)
|
|
||||||
# File "/usr/lib/python3.9/site-packages/matrix_appservice_kakaotalk/user.py", line 227, in get_by_mxid
|
|
||||||
# user = cls(mxid)
|
|
||||||
# TypeError: __init__() missing 2 required positional arguments: 'force_login' and 'was_connected'
|
|
||||||
matrix_appservice_kakaotalk_container_image_self_build_repo: "https://src.miscworks.net/hnarjis/matrix-appservice-kakaotalk.git"
|
|
||||||
matrix_appservice_kakaotalk_container_image_self_build_repo_version: "{{ 'master' if matrix_appservice_kakaotalk_version == 'latest' else matrix_appservice_kakaotalk_version }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_node_version: "{{ matrix_appservice_kakaotalk_version }}"
|
|
||||||
matrix_appservice_kakaotalk_node_container_image: "{{ matrix_appservice_kakaotalk_node_container_image_registry_prefix }}fair/matrix-appservice-kakaotalk-node:{{ matrix_appservice_kakaotalk_node_version }}"
|
|
||||||
matrix_appservice_kakaotalk_node_container_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_kakaotalk_container_image_self_build else matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream }}"
|
|
||||||
matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream: "{{ matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream_default }}"
|
|
||||||
matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream_default: ""
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_version: 86c038fd2ffee5e0aebf65136f085cce7e38b54e
|
|
||||||
matrix_appservice_kakaotalk_container_image: "{{ matrix_appservice_kakaotalk_container_image_registry_prefix }}fair/matrix-appservice-kakaotalk:{{ matrix_appservice_kakaotalk_version }}"
|
|
||||||
matrix_appservice_kakaotalk_container_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_kakaotalk_container_image_self_build else matrix_appservice_kakaotalk_container_image_registry_prefix_upstream }}"
|
|
||||||
matrix_appservice_kakaotalk_container_image_registry_prefix_upstream: "{{ matrix_appservice_kakaotalk_container_image_registry_prefix_upstream_default }}"
|
|
||||||
matrix_appservice_kakaotalk_container_image_registry_prefix_upstream_default: ""
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_base_path: "{{ matrix_base_data_path }}/appservice-kakaotalk"
|
|
||||||
matrix_appservice_kakaotalk_config_path: "{{ matrix_appservice_kakaotalk_base_path }}/config"
|
|
||||||
matrix_appservice_kakaotalk_data_path: "{{ matrix_appservice_kakaotalk_base_path }}/data"
|
|
||||||
matrix_appservice_kakaotalk_container_src_files_path: "{{ matrix_appservice_kakaotalk_base_path }}/docker-src"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_command_prefix: "!kt"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_homeserver_address: ""
|
|
||||||
matrix_appservice_kakaotalk_homeserver_domain: '{{ matrix_domain }}'
|
|
||||||
# Whether asynchronous uploads via MSC2246 should be enabled for media.
|
|
||||||
# Requires a homeserver that supports MSC2246 (https://github.com/matrix-org/matrix-spec-proposals/pull/2246).
|
|
||||||
matrix_appservice_kakaotalk_homeserver_async_media: false
|
|
||||||
matrix_appservice_kakaotalk_appservice_address: 'http://matrix-appservice-kakaotalk:11115'
|
|
||||||
|
|
||||||
|
|
||||||
# A list of extra arguments to pass to the appservice-kakaotalk container
|
|
||||||
matrix_appservice_kakaotalk_container_extra_arguments: []
|
|
||||||
|
|
||||||
# List of systemd services that matrix-appservice-kakaotalk.service depends on.
|
|
||||||
matrix_appservice_kakaotalk_systemd_required_services_list: "{{ matrix_appservice_kakaotalk_systemd_required_services_list_default + matrix_appservice_kakaotalk_systemd_required_services_list_auto + matrix_appservice_kakaotalk_systemd_required_services_list_custom }}"
|
|
||||||
matrix_appservice_kakaotalk_systemd_required_services_list_default: |-
|
|
||||||
{{
|
|
||||||
([devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [])
|
|
||||||
+
|
|
||||||
['matrix-appservice-kakaotalk-node.service']
|
|
||||||
}}
|
|
||||||
matrix_appservice_kakaotalk_systemd_required_services_list_auto: []
|
|
||||||
matrix_appservice_kakaotalk_systemd_required_services_list_custom: []
|
|
||||||
|
|
||||||
# List of systemd services that matrix-appservice-kakaotalk.service wants
|
|
||||||
matrix_appservice_kakaotalk_systemd_wanted_services_list: []
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_container_network: ""
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_container_additional_networks: "{{ matrix_appservice_kakaotalk_container_additional_networks_auto + matrix_appservice_kakaotalk_container_additional_networks_custom }}"
|
|
||||||
matrix_appservice_kakaotalk_container_additional_networks_auto: []
|
|
||||||
matrix_appservice_kakaotalk_container_additional_networks_custom: []
|
|
||||||
|
|
||||||
# A list of extra arguments to pass to the appservice-kakaotalk-node container
|
|
||||||
matrix_appservice_kakaotalk_node_container_extra_arguments: []
|
|
||||||
|
|
||||||
# List of systemd services that matrix-appservice-kakaotalk-node.service depends on.
|
|
||||||
matrix_appservice_kakaotalk_node_systemd_required_services_list: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
|
|
||||||
|
|
||||||
# List of systemd services that matrix-appservice-kakaotalk-node.service wants
|
|
||||||
matrix_appservice_kakaotalk_node_systemd_wanted_services_list: []
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_appservice_token: ''
|
|
||||||
matrix_appservice_kakaotalk_homeserver_token: ''
|
|
||||||
|
|
||||||
# Whether or not created rooms should have federation enabled.
|
|
||||||
# If false, created portal rooms will never be federated.
|
|
||||||
matrix_appservice_kakaotalk_federate_rooms: true
|
|
||||||
|
|
||||||
# Database-related configuration fields.
|
|
||||||
#
|
|
||||||
# To use SQLite:
|
|
||||||
# - change the engine (`matrix_appservice_kakaotalk_database_engine: 'sqlite'`)
|
|
||||||
# To use Postgres:
|
|
||||||
# - adjust your database credentials via the `matrix_appservice_kakaotalk_database_*` variables
|
|
||||||
matrix_appservice_kakaotalk_database_engine: 'postgres'
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_sqlite_database_path_local: "{{ matrix_appservice_kakaotalk_data_path }}/appservice-kakaotalk.db"
|
|
||||||
matrix_appservice_kakaotalk_sqlite_database_path_in_container: "/data/appservice-kakaotalk.db"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_database_username: 'matrix_appservice_kakaotalk'
|
|
||||||
matrix_appservice_kakaotalk_database_password: 'some-password'
|
|
||||||
matrix_appservice_kakaotalk_database_hostname: ''
|
|
||||||
matrix_appservice_kakaotalk_database_port: 5432
|
|
||||||
matrix_appservice_kakaotalk_database_name: 'matrix_appservice_kakaotalk'
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_database_connection_string: 'postgres://{{ matrix_appservice_kakaotalk_database_username }}:{{ matrix_appservice_kakaotalk_database_password }}@{{ matrix_appservice_kakaotalk_database_hostname }}:{{ matrix_appservice_kakaotalk_database_port }}/{{ matrix_appservice_kakaotalk_database_name }}'
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_appservice_database: "{{ {
|
|
||||||
'sqlite': ('sqlite:///' + matrix_appservice_kakaotalk_sqlite_database_path_in_container),
|
|
||||||
'postgres': matrix_appservice_kakaotalk_database_connection_string,
|
|
||||||
}[matrix_appservice_kakaotalk_database_engine] }}"
|
|
||||||
|
|
||||||
|
|
||||||
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth).
|
|
||||||
# Also see: matrix_appservice_kakaotalk_bridge_login_shared_secret_map
|
|
||||||
matrix_appservice_kakaotalk_login_shared_secret: ''
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_bridge_login_shared_secret_map: "{{ {matrix_appservice_kakaotalk_homeserver_domain: matrix_appservice_kakaotalk_login_shared_secret} if matrix_appservice_kakaotalk_login_shared_secret else {} }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_bridge_relay_enabled: "{{ matrix_bridges_relay_enabled }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_bridge_permissions: |
|
|
||||||
{{
|
|
||||||
{matrix_appservice_kakaotalk_homeserver_domain: 'user'}
|
|
||||||
| combine({matrix_admin: 'admin'} if matrix_admin else {})
|
|
||||||
}}
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_appservice_bot_username: kakaotalkbot
|
|
||||||
matrix_appservice_kakaotalk_user_prefix: 'kakaotalk_'
|
|
||||||
|
|
||||||
# End-to-bridge encryption configuration
|
|
||||||
matrix_appservice_kakaotalk_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}"
|
|
||||||
matrix_appservice_kakaotalk_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}"
|
|
||||||
|
|
||||||
# Specifies the default log level for all bridge loggers.
|
|
||||||
matrix_appservice_kakaotalk_logging_level: WARNING
|
|
||||||
|
|
||||||
|
|
||||||
# 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_appservice_kakaotalk_configuration_extension_yaml`)
|
|
||||||
# or completely replace this variable with your own template.
|
|
||||||
matrix_appservice_kakaotalk_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_configuration_extension_yaml: |
|
|
||||||
# Your custom YAML configuration goes here.
|
|
||||||
# This configuration extends the default starting configuration (`matrix_appservice_kakaotalk_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_appservice_kakaotalk_configuration_yaml`.
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_configuration_extension: "{{ matrix_appservice_kakaotalk_configuration_extension_yaml | from_yaml if matrix_appservice_kakaotalk_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_appservice_kakaotalk_configuration_yaml`.
|
|
||||||
matrix_appservice_kakaotalk_configuration: "{{ matrix_appservice_kakaotalk_configuration_yaml | from_yaml | combine(matrix_appservice_kakaotalk_configuration_extension, recursive=True) }}"
|
|
||||||
|
|
||||||
|
|
||||||
# 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_appservice_kakaotalk_node_configuration_extension_yaml`)
|
|
||||||
# or completely replace this variable with your own template.
|
|
||||||
#
|
|
||||||
# The side-effect of this lookup is that Ansible would even parse the JSON for us, returning a dict.
|
|
||||||
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
|
|
||||||
matrix_appservice_kakaotalk_node_configuration_default: "{{ lookup('template', 'templates/node-config.json.j2', convert_data=False) | from_json }}"
|
|
||||||
|
|
||||||
# Your custom JSON configuration for appservice-kakaotalk-node should go to `matrix_appservice_kakaotalk_node_configuration_extension_json`.
|
|
||||||
# This configuration extends the default starting configuration (`matrix_appservice_kakaotalk_node_configuration_default`).
|
|
||||||
#
|
|
||||||
# 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_appservice_kakaotalk_node_configuration_default`.
|
|
||||||
#
|
|
||||||
# Example configuration extension follows:
|
|
||||||
#
|
|
||||||
# matrix_appservice_kakaotalk_node_configuration_extension_json: |
|
|
||||||
# {
|
|
||||||
# "register_timeout": 5000
|
|
||||||
# }
|
|
||||||
matrix_appservice_kakaotalk_node_configuration_extension_json: '{}'
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_node_configuration_extension: "{{ matrix_appservice_kakaotalk_node_configuration_extension_json | from_json if matrix_appservice_kakaotalk_node_configuration_extension_json | from_json is mapping else {} }}"
|
|
||||||
|
|
||||||
# Holds the final appservice-kakaotalk-node configuration (a combination of the default and its extension).
|
|
||||||
# You most likely don't need to touch this variable. Instead, see `matrix_appservice_kakaotalk_node_configuration_default`.
|
|
||||||
matrix_appservice_kakaotalk_node_configuration: "{{ matrix_appservice_kakaotalk_node_configuration_default | combine(matrix_appservice_kakaotalk_node_configuration_extension, recursive=True) }}"
|
|
||||||
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_registration_yaml: |
|
|
||||||
id: appservice-kakaotalk
|
|
||||||
as_token: {{ matrix_appservice_kakaotalk_appservice_token | to_json }}
|
|
||||||
hs_token: {{ matrix_appservice_kakaotalk_homeserver_token | to_json }}
|
|
||||||
namespaces:
|
|
||||||
users:
|
|
||||||
- exclusive: true
|
|
||||||
regex: '^@{{ matrix_appservice_kakaotalk_user_prefix | regex_escape }}.*:{{ matrix_appservice_kakaotalk_homeserver_domain | regex_escape }}$'
|
|
||||||
- exclusive: true
|
|
||||||
regex: '^@{{ matrix_appservice_kakaotalk_appservice_bot_username | regex_escape }}:{{ matrix_appservice_kakaotalk_homeserver_domain | regex_escape }}$'
|
|
||||||
url: {{ matrix_appservice_kakaotalk_appservice_address | to_json }}
|
|
||||||
sender_localpart: _appservice_kakaotalk
|
|
||||||
rate_limited: false
|
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_registration: "{{ matrix_appservice_kakaotalk_registration_yaml | from_yaml }}"
|
|
||||||
|
|
||||||
# matrix_appservice_kakaotalk_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).
|
|
||||||
#
|
|
||||||
# This value is automatically computed during installation based on whether
|
|
||||||
# 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_appservice_kakaotalk_restart_necessary: false
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2019 - 2023 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- setup-all
|
|
||||||
- setup-appservice-kakaotalk
|
|
||||||
- install-all
|
|
||||||
- install-appservice-kakaotalk
|
|
||||||
block:
|
|
||||||
- when: matrix_appservice_kakaotalk_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
|
||||||
|
|
||||||
- when: matrix_appservice_kakaotalk_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- setup-all
|
|
||||||
- setup-appservice-kakaotalk
|
|
||||||
block:
|
|
||||||
- when: not matrix_appservice_kakaotalk_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
|
||||||
@@ -1,136 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
|
|
||||||
# SPDX-FileCopyrightText: 2022 Sebastian Gumprich
|
|
||||||
# SPDX-FileCopyrightText: 2024 David Mehren
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk image is pulled
|
|
||||||
community.docker.docker_image_pull:
|
|
||||||
name: "{{ matrix_appservice_kakaotalk_container_image }}"
|
|
||||||
pull: always
|
|
||||||
when: not matrix_appservice_kakaotalk_container_image_self_build
|
|
||||||
register: matrix_appservice_kakaotalk_container_image_pull_result
|
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
|
||||||
until: matrix_appservice_kakaotalk_container_image_pull_result is not failed
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk-node image is pulled
|
|
||||||
community.docker.docker_image_pull:
|
|
||||||
name: "{{ matrix_appservice_kakaotalk_node_container_image }}"
|
|
||||||
pull: always
|
|
||||||
when: not matrix_appservice_kakaotalk_container_image_self_build
|
|
||||||
register: matrix_appservice_kakaotalk_node_container_image_pull_result
|
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
|
||||||
until: matrix_appservice_kakaotalk_node_container_image_pull_result is not failed
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk paths exist
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item.path }}"
|
|
||||||
state: directory
|
|
||||||
mode: '0750'
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
with_items:
|
|
||||||
- {path: "{{ matrix_appservice_kakaotalk_base_path }}", when: true}
|
|
||||||
- {path: "{{ matrix_appservice_kakaotalk_config_path }}", when: true}
|
|
||||||
- {path: "{{ matrix_appservice_kakaotalk_data_path }}", when: true}
|
|
||||||
- {path: "{{ matrix_appservice_kakaotalk_container_src_files_path }}", when: "{{ matrix_appservice_kakaotalk_container_image_self_build }}"}
|
|
||||||
when: item.when | bool
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk repository is present on self-build
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: "{{ matrix_appservice_kakaotalk_container_image_self_build_repo }}"
|
|
||||||
dest: "{{ matrix_appservice_kakaotalk_container_src_files_path }}"
|
|
||||||
version: "{{ matrix_appservice_kakaotalk_container_image_self_build_repo_version }}"
|
|
||||||
force: "yes"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ matrix_user_name }}"
|
|
||||||
register: matrix_appservice_kakaotalk_git_pull_results
|
|
||||||
when: "matrix_appservice_kakaotalk_container_image_self_build | bool"
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk-node Docker image is built
|
|
||||||
community.docker.docker_image_build:
|
|
||||||
name: "{{ matrix_appservice_kakaotalk_node_container_image }}"
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
path: "{{ matrix_appservice_kakaotalk_container_src_files_path }}/node"
|
|
||||||
pull: true
|
|
||||||
rebuild: "{{ 'always' if matrix_appservice_kakaotalk_git_pull_results.changed | bool else 'never' }}"
|
|
||||||
when: "matrix_appservice_kakaotalk_container_image_self_build | bool"
|
|
||||||
register: matrix_appservice_kakaotalk_node_container_image_build_result
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk Docker image is built
|
|
||||||
community.docker.docker_image_build:
|
|
||||||
name: "{{ matrix_appservice_kakaotalk_container_image }}"
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
path: "{{ matrix_appservice_kakaotalk_container_src_files_path }}"
|
|
||||||
pull: true
|
|
||||||
rebuild: "{{ 'always' if matrix_appservice_kakaotalk_git_pull_results.changed | bool else 'never' }}"
|
|
||||||
when: "matrix_appservice_kakaotalk_container_image_self_build | bool"
|
|
||||||
register: matrix_appservice_kakaotalk_container_image_build_result
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk-node config.json installed
|
|
||||||
ansible.builtin.copy:
|
|
||||||
content: "{{ matrix_appservice_kakaotalk_node_configuration | to_nice_json }}"
|
|
||||||
dest: "{{ matrix_appservice_kakaotalk_config_path }}/node-config.json"
|
|
||||||
mode: '0644'
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
register: matrix_appservice_kakaotalk_node_config_result
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk config.yaml installed
|
|
||||||
ansible.builtin.copy:
|
|
||||||
content: "{{ matrix_appservice_kakaotalk_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
|
||||||
dest: "{{ matrix_appservice_kakaotalk_config_path }}/config.yaml"
|
|
||||||
mode: '0644'
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
register: matrix_appservice_kakaotalk_config_result
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk registration.yaml installed
|
|
||||||
ansible.builtin.copy:
|
|
||||||
content: "{{ matrix_appservice_kakaotalk_registration | to_nice_yaml(indent=2, width=999999) }}"
|
|
||||||
dest: "{{ matrix_appservice_kakaotalk_config_path }}/registration.yaml"
|
|
||||||
mode: '0644'
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
register: matrix_appservice_kakaotalk_registration_result
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk container network is created
|
|
||||||
when: matrix_appservice_kakaotalk_container_network != 'host'
|
|
||||||
community.general.docker_network:
|
|
||||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
|
||||||
name: "{{ matrix_appservice_kakaotalk_container_network }}"
|
|
||||||
driver: bridge
|
|
||||||
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk-node.service installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-kakaotalk-node.service.j2"
|
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk-node.service"
|
|
||||||
mode: '0644'
|
|
||||||
register: matrix_appservice_kakaotalk_node_systemd_service_result
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk.service installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-kakaotalk.service.j2"
|
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk.service"
|
|
||||||
mode: '0644'
|
|
||||||
register: matrix_appservice_kakaotalk_systemd_service_result
|
|
||||||
|
|
||||||
- name: Determine whether matrix-appservice-kakaotalk needs a restart
|
|
||||||
ansible.builtin.set_fact:
|
|
||||||
matrix_appservice_kakaotalk_restart_necessary: >-
|
|
||||||
{{
|
|
||||||
matrix_appservice_kakaotalk_node_config_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_config_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_registration_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_node_systemd_service_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_systemd_service_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_container_image_pull_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_node_container_image_pull_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_container_image_build_result.changed | default(false)
|
|
||||||
or matrix_appservice_kakaotalk_node_container_image_build_result.changed | default(false)
|
|
||||||
}}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2022 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-kakaotalk service
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk.service"
|
|
||||||
register: matrix_appservice_kakaotalk_service_stat
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk is stopped
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: matrix-appservice-kakaotalk
|
|
||||||
state: stopped
|
|
||||||
enabled: false
|
|
||||||
daemon_reload: true
|
|
||||||
when: matrix_appservice_kakaotalk_service_stat.stat.exists | bool
|
|
||||||
|
|
||||||
- name: Check existence of matrix-appservice-kakaotalk-node service
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk-node.service"
|
|
||||||
register: matrix_appservice_kakaotalk_node_service_stat
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk-node is stopped
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: matrix-appservice-kakaotalk-node
|
|
||||||
state: stopped
|
|
||||||
enabled: false
|
|
||||||
daemon_reload: true
|
|
||||||
when: matrix_appservice_kakaotalk_node_service_stat.stat.exists | bool
|
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk.service files don't exist
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: absent
|
|
||||||
with_items:
|
|
||||||
- "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk-node.service"
|
|
||||||
- "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk.service"
|
|
||||||
when: matrix_appservice_kakaotalk_service_stat.stat.exists | bool or matrix_appservice_kakaotalk_node_service_stat.stat.exists | bool
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev
|
|
||||||
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed appservice-kakaotalk 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_appservice_kakaotalk_node_docker_image_name_prefix', 'new': 'matrix_appservice_kakaotalk_node_container_image_registry_prefix'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_image_name_prefix', 'new': 'matrix_appservice_kakaotalk_container_image_registry_prefix'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_image', 'new': 'matrix_appservice_kakaotalk_container_image'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_image_force_pull', 'new': 'matrix_appservice_kakaotalk_container_image_force_pull'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_image_registry_prefix', 'new': 'matrix_appservice_kakaotalk_container_image_registry_prefix'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream', 'new': 'matrix_appservice_kakaotalk_container_image_registry_prefix_upstream'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_image_registry_prefix_upstream_default', 'new': 'matrix_appservice_kakaotalk_container_image_registry_prefix_upstream_default'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_docker_src_files_path', 'new': 'matrix_appservice_kakaotalk_container_src_files_path'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_node_docker_image', 'new': 'matrix_appservice_kakaotalk_node_container_image'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_node_docker_image_force_pull', 'new': 'matrix_appservice_kakaotalk_node_container_image_force_pull'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_node_docker_image_registry_prefix', 'new': 'matrix_appservice_kakaotalk_node_container_image_registry_prefix'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream', 'new': 'matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_node_docker_image_registry_prefix_upstream_default', 'new': 'matrix_appservice_kakaotalk_node_container_image_registry_prefix_upstream_default'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
|
|
||||||
- {'old': 'matrix_appservice_kakaotalk_node_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
|
|
||||||
|
|
||||||
- name: Fail if required appservice-kakaotalk 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_appservice_kakaotalk_appservice_token', when: true}
|
|
||||||
- {'name': 'matrix_appservice_kakaotalk_homeserver_address', when: true}
|
|
||||||
- {'name': 'matrix_appservice_kakaotalk_homeserver_token', when: true}
|
|
||||||
- {'name': 'matrix_appservice_kakaotalk_database_hostname', when: "{{ matrix_appservice_kakaotalk_database_engine == 'postgres' }}"}
|
|
||||||
- {'name': 'matrix_appservice_kakaotalk_container_network', when: true}
|
|
||||||
@@ -1,276 +0,0 @@
|
|||||||
# Homeserver details
|
|
||||||
homeserver:
|
|
||||||
# The address that this appservice can use to connect to the homeserver.
|
|
||||||
address: {{ matrix_appservice_kakaotalk_homeserver_address | to_json }}
|
|
||||||
# The domain of the homeserver (for MXIDs, etc).
|
|
||||||
domain: {{ matrix_appservice_kakaotalk_homeserver_domain | to_json }}
|
|
||||||
# Whether or not to verify the SSL certificate of the homeserver.
|
|
||||||
# Only applies if address starts with https://
|
|
||||||
verify_ssl: true
|
|
||||||
# Whether or not the homeserver supports asmux-specific endpoints,
|
|
||||||
# such as /_matrix/client/unstable/net.maunium.asmux/dms for atomically
|
|
||||||
# updating m.direct.
|
|
||||||
asmux: false
|
|
||||||
# Number of retries for all HTTP requests if the homeserver isn't reachable.
|
|
||||||
http_retry_count: 4
|
|
||||||
# The URL to push real-time bridge status to.
|
|
||||||
# If set, the bridge will make POST requests to this URL whenever a user's MQTT connection state changes.
|
|
||||||
# The bridge will use the appservice as_token to authorize requests.
|
|
||||||
status_endpoint: null
|
|
||||||
# Endpoint for reporting per-message status.
|
|
||||||
message_send_checkpoint_endpoint: null
|
|
||||||
# Whether asynchronous uploads via MSC2246 should be enabled for media.
|
|
||||||
# Requires a media repo that supports MSC2246.
|
|
||||||
async_media: {{ matrix_appservice_kakaotalk_homeserver_async_media | to_json }}
|
|
||||||
|
|
||||||
# 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_appservice_kakaotalk_appservice_address | to_json }}
|
|
||||||
|
|
||||||
# The hostname and port where this appservice should listen.
|
|
||||||
hostname: 0.0.0.0
|
|
||||||
port: 11115
|
|
||||||
# The maximum body size of appservice API requests (from the homeserver) in mebibytes
|
|
||||||
# Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s
|
|
||||||
max_body_size: 1
|
|
||||||
|
|
||||||
# The full URI to the database. SQLite and Postgres are supported.
|
|
||||||
# Format examples:
|
|
||||||
# SQLite: sqlite:///filename.db
|
|
||||||
# Postgres: postgres://username:password@hostname/dbname
|
|
||||||
database: {{ matrix_appservice_kakaotalk_appservice_database | to_json }}
|
|
||||||
# Additional arguments for asyncpg.create_pool() or sqlite3.connect()
|
|
||||||
# https://magicstack.github.io/asyncpg/current/api/index.html#asyncpg.pool.create_pool
|
|
||||||
# https://docs.python.org/3/library/sqlite3.html#sqlite3.connect
|
|
||||||
# For sqlite, min_size is used as the connection thread pool size and max_size is ignored.
|
|
||||||
database_opts:
|
|
||||||
min_size: 5
|
|
||||||
max_size: 10
|
|
||||||
|
|
||||||
# The unique ID of this appservice.
|
|
||||||
id: appservice-kakaotalk
|
|
||||||
# Username of the appservice bot.
|
|
||||||
bot_username: {{ matrix_appservice_kakaotalk_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.
|
|
||||||
bot_displayname: KakaoTalk bridge bot
|
|
||||||
bot_avatar:
|
|
||||||
|
|
||||||
# Whether or not to receive ephemeral events via appservice transactions.
|
|
||||||
# Requires MSC2409 support (i.e. Synapse 1.22+).
|
|
||||||
# You should disable bridge -> sync_with_custom_puppets when this is enabled.
|
|
||||||
ephemeral_events: false
|
|
||||||
|
|
||||||
# Authentication tokens for AS <-> HS communication. Autogenerated; do not modify.
|
|
||||||
as_token: {{ matrix_appservice_kakaotalk_appservice_token | to_json }}
|
|
||||||
hs_token: {{ matrix_appservice_kakaotalk_homeserver_token | to_json }}
|
|
||||||
|
|
||||||
# Prometheus telemetry config. Requires prometheus-client to be installed.
|
|
||||||
metrics:
|
|
||||||
enabled: false
|
|
||||||
listen_port: 8000
|
|
||||||
|
|
||||||
# Manhole config.
|
|
||||||
manhole:
|
|
||||||
# Whether or not opening the manhole is allowed.
|
|
||||||
enabled: false
|
|
||||||
# The path for the unix socket.
|
|
||||||
path: /var/tmp/matrix-appservice-kakaotalk.manhole
|
|
||||||
# The list of UIDs who can be added to the whitelist.
|
|
||||||
# If empty, any UIDs can be specified in the open-manhole command.
|
|
||||||
whitelist:
|
|
||||||
- 0
|
|
||||||
|
|
||||||
# Config for things that are directly sent to KakaoTalk.
|
|
||||||
kakaotalk:
|
|
||||||
device_name: "KakaoTalk Bridge"
|
|
||||||
|
|
||||||
# Bridge config
|
|
||||||
bridge:
|
|
||||||
# Localpart template of MXIDs for KakaoTalk users.
|
|
||||||
# {userid} is replaced with the user ID of the KakaoTalk user.
|
|
||||||
username_template: "{{ matrix_appservice_kakaotalk_user_prefix }}{userid}"
|
|
||||||
# Displayname template for KakaoTalk users.
|
|
||||||
# {displayname} is replaced with the display name of the KakaoTalk user.
|
|
||||||
displayname_template: "{displayname} (KT)"
|
|
||||||
|
|
||||||
# The prefix for commands. Only required in non-management rooms.
|
|
||||||
command_prefix: {{ matrix_appservice_kakaotalk_command_prefix | to_json }}
|
|
||||||
|
|
||||||
# Number of chats to sync (and create portals for) on startup/login.
|
|
||||||
# Set to 0 to disable automatic syncing, or -1 to sync as much as possible.
|
|
||||||
initial_chat_sync: 20
|
|
||||||
# Whether or not the KakaoTalk users of logged in Matrix users should be
|
|
||||||
# invited to private chats when the user sends a message from another client.
|
|
||||||
invite_own_puppet_to_pm: false
|
|
||||||
# Whether or not to use /sync to get presence, read receipts and typing notifications
|
|
||||||
# when double puppeting is enabled
|
|
||||||
sync_with_custom_puppets: true
|
|
||||||
# Whether or not to update the m.direct account data event when double puppeting is enabled.
|
|
||||||
# Note that updating the m.direct event is not atomic (except with mautrix-asmux)
|
|
||||||
# and is therefore prone to race conditions.
|
|
||||||
sync_direct_chat_list: false
|
|
||||||
# Servers to always allow double puppeting from
|
|
||||||
double_puppet_server_map: {}
|
|
||||||
# Allow using double puppeting from any server with a valid client .well-known file.
|
|
||||||
double_puppet_allow_discovery: false
|
|
||||||
# Shared secrets 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.
|
|
||||||
# If using this for other servers than the bridge's server,
|
|
||||||
# you must also set the URL in the double_puppet_server_map.
|
|
||||||
login_shared_secret_map: {{ matrix_appservice_kakaotalk_bridge_login_shared_secret_map | to_json }}
|
|
||||||
# Whether or not to update avatars when syncing all contacts at startup.
|
|
||||||
update_avatar_initial_sync: true
|
|
||||||
# End-to-bridge encryption support options. These require matrix-nio to be installed with pip
|
|
||||||
# and 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_appservice_kakaotalk_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.
|
|
||||||
default: {{ matrix_appservice_kakaotalk_bridge_encryption_default| to_json }}
|
|
||||||
# Options for automatic key sharing.
|
|
||||||
key_sharing:
|
|
||||||
# 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: false
|
|
||||||
# Require the requesting device to have a valid cross-signing signature?
|
|
||||||
# This doesn't require that the bridge has verified the device, only that the user has verified it.
|
|
||||||
# Not yet implemented.
|
|
||||||
require_cross_signing: false
|
|
||||||
# Require devices to be verified by the bridge?
|
|
||||||
# Verification by the bridge is not yet implemented.
|
|
||||||
require_verification: true
|
|
||||||
# Whether or not the bridge should send a read receipt from the bridge bot when a message has
|
|
||||||
# been sent to KakaoTalk.
|
|
||||||
delivery_receipts: false
|
|
||||||
# Whether to allow inviting arbitrary mxids to portal rooms
|
|
||||||
allow_invites: false
|
|
||||||
# Whether or not created rooms should have federation enabled.
|
|
||||||
# If false, created portal rooms will never be federated.
|
|
||||||
federate_rooms: {{ matrix_appservice_kakaotalk_federate_rooms | to_json }}
|
|
||||||
# Settings for backfilling messages from KakaoTalk.
|
|
||||||
backfill:
|
|
||||||
# Whether or not the KakaoTalk users of logged in Matrix users should be
|
|
||||||
# invited to private chats when backfilling history from KakaoTalk. This is
|
|
||||||
# usually needed to prevent rate limits and to allow timestamp massaging.
|
|
||||||
invite_own_puppet: true
|
|
||||||
# Maximum number of messages to backfill initially.
|
|
||||||
# Set to 0 to disable backfilling when creating portal, or -1 to backfill as much as possible.
|
|
||||||
initial_limit: 0
|
|
||||||
# Maximum number of messages to backfill if messages were missed while
|
|
||||||
# the bridge was disconnected.
|
|
||||||
# Set to 0 to disable backfilling missed messages, or -1 to backfill as much as possible.
|
|
||||||
missed_limit: 1000
|
|
||||||
# If using double puppeting, should notifications be disabled
|
|
||||||
# while the initial backfill is in progress?
|
|
||||||
disable_notifications: false
|
|
||||||
# The number of seconds that a disconnection can last without triggering an automatic re-sync
|
|
||||||
# and missed message backfilling when reconnecting.
|
|
||||||
# Set to 0 to always re-sync, or -1 to never re-sync automatically.
|
|
||||||
resync_max_disconnected_time: 5
|
|
||||||
# Should users remain logged in after being disconnected from chatroom updates?
|
|
||||||
# This is a convenience feature, but might make the bridge look more suspicious to KakaoTalk.
|
|
||||||
remain_logged_in_on_disconnect: true
|
|
||||||
# May the bridge restore user logins with session tokens instead of requiring a password?
|
|
||||||
# This is a convenience feature, but might make the bridge look more suspicious to KakaoTalk.
|
|
||||||
# Note that password-based login will be tried first for users who have saved their password.
|
|
||||||
allow_token_relogin: true
|
|
||||||
# Should the bridge connect users to chatroom updates after a token-based login?
|
|
||||||
# This will disconnect any KakaoTalk PC/bridge sessions that were started since the last connection.
|
|
||||||
# This is a convenience feature, but might make the bridge look more suspicious to KakaoTalk.
|
|
||||||
reconnect_on_token_relogin: true
|
|
||||||
# Should the bridge do a resync for connected users on startup?
|
|
||||||
sync_on_startup: true
|
|
||||||
# Whether or not temporary disconnections should send notices to the notice room.
|
|
||||||
# If this is false, disconnections will never send messages and connections will only send
|
|
||||||
# messages if it was disconnected for more than resync_max_disconnected_time seconds.
|
|
||||||
temporary_disconnect_notices: true
|
|
||||||
# Disable bridge notices entirely
|
|
||||||
disable_bridge_notices: false
|
|
||||||
# Set this to true to tell the bridge to re-send m.bridge events to all rooms on the next run.
|
|
||||||
# This field will automatically be changed back to false after it,
|
|
||||||
# except if the config file is not writable.
|
|
||||||
resend_bridge_info: false
|
|
||||||
# Whether or not mute status and tags should only be bridged when the portal room is created.
|
|
||||||
tag_only_on_create: true
|
|
||||||
# If set to true, downloading media from the CDN will use a plain aiohttp client without the usual headers or
|
|
||||||
# other configuration. This may be useful if you don't want to use the default proxy for large files.
|
|
||||||
sandbox_media_download: false
|
|
||||||
|
|
||||||
# Permissions for using the bridge.
|
|
||||||
# Permitted values:
|
|
||||||
# relay - Allowed to be relayed through the bridge, no access to commands.
|
|
||||||
# user - Use the bridge with puppeting.
|
|
||||||
# admin - Use and administrate the bridge.
|
|
||||||
# Permitted keys:
|
|
||||||
# * - All Matrix users
|
|
||||||
# domain - All users on that homeserver
|
|
||||||
# mxid - Specific user
|
|
||||||
permissions: {{ matrix_appservice_kakaotalk_bridge_permissions | to_json }}
|
|
||||||
|
|
||||||
relay:
|
|
||||||
# Whether relay mode should be allowed. If allowed, `!kt set-relay` can be used to turn any
|
|
||||||
# authenticated user into a relaybot for that chat.
|
|
||||||
enabled: {{ matrix_appservice_kakaotalk_bridge_relay_enabled }}
|
|
||||||
# The formats to use when sending messages to KakaoTalk via a relay user.
|
|
||||||
#
|
|
||||||
# Available variables:
|
|
||||||
# $sender_displayname - The display name of the sender (e.g. Example User)
|
|
||||||
# $sender_username - The username (Matrix ID localpart) of the sender (e.g. alice)
|
|
||||||
# $sender_mxid - The Matrix ID of the sender (e.g. @alice:example.com)
|
|
||||||
# $message - The message content
|
|
||||||
message_formats:
|
|
||||||
m.text: '<b>$sender_displayname</b>: $message'
|
|
||||||
m.notice: '<b>$sender_displayname</b>: $message'
|
|
||||||
m.emote: '* <b>$sender_displayname</b> $message'
|
|
||||||
m.file: 'File from <b>$sender_displayname</b>: $message'
|
|
||||||
m.image: 'Image from <b>$sender_displayname</b>: $message'
|
|
||||||
m.audio: 'Audio from <b>$sender_displayname</b>: $message'
|
|
||||||
m.video: 'Video from <b>$sender_displayname</b>: $message'
|
|
||||||
m.location: '<b>$sender_displayname</b> sent a location'
|
|
||||||
|
|
||||||
rpc:
|
|
||||||
connection:
|
|
||||||
# Either unix or tcp
|
|
||||||
type: tcp
|
|
||||||
# Only for type: unix
|
|
||||||
# path: /rpc/rpc.sock
|
|
||||||
# Only for type: tcp
|
|
||||||
host: matrix-appservice-kakaotalk-node
|
|
||||||
port: 8000
|
|
||||||
|
|
||||||
# Python logging configuration.
|
|
||||||
#
|
|
||||||
# See section 16.7.2 of the Python documentation for more info:
|
|
||||||
# https://docs.python.org/3.6/library/logging.config.html#configuration-dictionary-schema
|
|
||||||
logging:
|
|
||||||
version: 1
|
|
||||||
formatters:
|
|
||||||
colored:
|
|
||||||
(): matrix_appservice_kakaotalk.util.ColorFormatter
|
|
||||||
format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s"
|
|
||||||
normal:
|
|
||||||
format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s"
|
|
||||||
handlers:
|
|
||||||
console:
|
|
||||||
class: logging.StreamHandler
|
|
||||||
formatter: colored
|
|
||||||
loggers:
|
|
||||||
mau:
|
|
||||||
level: {{ matrix_appservice_kakaotalk_logging_level | to_json }}
|
|
||||||
paho:
|
|
||||||
level: {{ matrix_appservice_kakaotalk_logging_level | to_json }}
|
|
||||||
aiohttp:
|
|
||||||
level: {{ matrix_appservice_kakaotalk_logging_level | to_json }}
|
|
||||||
root:
|
|
||||||
level: {{ matrix_appservice_kakaotalk_logging_level | to_json }}
|
|
||||||
handlers: [console]
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2022 MDAD project contributors
|
|
||||||
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
|
|
||||||
SPDX-FileCopyrightText: 2023 Nikita Chernyi
|
|
||||||
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"listen": {
|
|
||||||
"type": "tcp",
|
|
||||||
"host": "0.0.0.0",
|
|
||||||
"port": 8000,
|
|
||||||
"force": false
|
|
||||||
},
|
|
||||||
"register_timeout": 3000,
|
|
||||||
"logging_keys": {
|
|
||||||
"request": ["mxid"],
|
|
||||||
"response": ["status"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
-48
@@ -1,48 +0,0 @@
|
|||||||
#jinja2: lstrip_blocks: True
|
|
||||||
[Unit]
|
|
||||||
Description=appservice-kakaotalk-node bridge helper
|
|
||||||
{% for service in matrix_appservice_kakaotalk_node_systemd_required_services_list %}
|
|
||||||
Requires={{ service }}
|
|
||||||
After={{ service }}
|
|
||||||
{% endfor %}
|
|
||||||
{% for service in matrix_appservice_kakaotalk_node_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-appservice-kakaotalk-node 2>/dev/null || true'
|
|
||||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk-node 2>/dev/null || true'
|
|
||||||
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
|
|
||||||
--rm \
|
|
||||||
--name=matrix-appservice-kakaotalk-node \
|
|
||||||
--log-driver=none \
|
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
|
||||||
--cap-drop=ALL \
|
|
||||||
--network={{ matrix_appservice_kakaotalk_container_network }} \
|
|
||||||
--mount type=bind,src={{ matrix_appservice_kakaotalk_config_path }}/node-config.json,dst=/config.json,ro \
|
|
||||||
{% for arg in matrix_appservice_kakaotalk_node_container_extra_arguments %}
|
|
||||||
{{ arg }} \
|
|
||||||
{% endfor %}
|
|
||||||
{{ matrix_appservice_kakaotalk_node_container_image }} \
|
|
||||||
node src/main.js --config /config.json
|
|
||||||
|
|
||||||
{% if matrix_appservice_kakaotalk_container_network != 'host' %}
|
|
||||||
{% for network in matrix_appservice_kakaotalk_container_additional_networks %}
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-appservice-kakaotalk-node
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-kakaotalk-node
|
|
||||||
|
|
||||||
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-appservice-kakaotalk-node 2>/dev/null || true'
|
|
||||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk-node 2>/dev/null || true'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=30
|
|
||||||
SyslogIdentifier=matrix-appservice-kakaotalk-node
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
-3
@@ -1,3 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2022 - 2025 Slavi Pantaleev
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
-49
@@ -1,49 +0,0 @@
|
|||||||
#jinja2: lstrip_blocks: True
|
|
||||||
[Unit]
|
|
||||||
Description=appservice-kakaotalk bridge
|
|
||||||
{% for service in matrix_appservice_kakaotalk_systemd_required_services_list %}
|
|
||||||
Requires={{ service }}
|
|
||||||
After={{ service }}
|
|
||||||
{% endfor %}
|
|
||||||
{% for service in matrix_appservice_kakaotalk_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-appservice-kakaotalk 2>/dev/null || true'
|
|
||||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk 2>/dev/null || true'
|
|
||||||
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
|
|
||||||
--rm \
|
|
||||||
--name=matrix-appservice-kakaotalk \
|
|
||||||
--log-driver=none \
|
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
|
||||||
--cap-drop=ALL \
|
|
||||||
--network={{ matrix_appservice_kakaotalk_container_network }} \
|
|
||||||
--mount type=bind,src={{ matrix_appservice_kakaotalk_config_path }},dst=/config,ro \
|
|
||||||
--mount type=bind,src={{ matrix_appservice_kakaotalk_data_path }},dst=/data \
|
|
||||||
{% for arg in matrix_appservice_kakaotalk_container_extra_arguments %}
|
|
||||||
{{ arg }} \
|
|
||||||
{% endfor %}
|
|
||||||
{{ matrix_appservice_kakaotalk_container_image }} \
|
|
||||||
python3 -m matrix_appservice_kakaotalk -c /config/config.yaml --no-update
|
|
||||||
|
|
||||||
{% if matrix_appservice_kakaotalk_container_network != 'host' %}
|
|
||||||
{% for network in matrix_appservice_kakaotalk_container_additional_networks %}
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-appservice-kakaotalk
|
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-appservice-kakaotalk
|
|
||||||
|
|
||||||
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-appservice-kakaotalk 2>/dev/null || true'
|
|
||||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-appservice-kakaotalk 2>/dev/null || true'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=30
|
|
||||||
SyslogIdentifier=matrix-appservice-kakaotalk
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
-3
@@ -1,3 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2022 Slavi Pantaleev
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
@@ -723,6 +723,18 @@
|
|||||||
The following variables in your configuration need to be removed: {{ lookup('ansible.builtin.varnames', '^matrix_bot_matrix_registration_bot_.+', wantlist=True) | join(', ') }}
|
The following variables in your configuration need to be removed: {{ lookup('ansible.builtin.varnames', '^matrix_bot_matrix_registration_bot_.+', wantlist=True) | join(', ') }}
|
||||||
when: "lookup('ansible.builtin.varnames', '^matrix_bot_matrix_registration_bot_.+', wantlist=True) | length > 0"
|
when: "lookup('ansible.builtin.varnames', '^matrix_bot_matrix_registration_bot_.+', wantlist=True) | length > 0"
|
||||||
|
|
||||||
|
- name: (Deprecation) Catch and report matrix-appservice-kakaotalk variables
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: |-
|
||||||
|
matrix-appservice-kakaotalk was completely removed from the playbook in July 2026, because its upstream repository became unreachable and the component could only be installed by self-building it.
|
||||||
|
|
||||||
|
Please remove all `matrix_appservice_kakaotalk_*` variables from your configuration file (vars.yml).
|
||||||
|
|
||||||
|
You may also wish to uninstall the component manually. See `docs/configuring-playbook-bridge-appservice-kakaotalk.md` for more information.
|
||||||
|
|
||||||
|
The following variables in your configuration need to be removed: {{ lookup('ansible.builtin.varnames', '^matrix_appservice_kakaotalk_.+', wantlist=True) | join(', ') }}
|
||||||
|
when: "lookup('ansible.builtin.varnames', '^matrix_appservice_kakaotalk_.+', wantlist=True) | length > 0"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report matrix-ldap-registration-proxy variables
|
- name: (Deprecation) Catch and report matrix-ldap-registration-proxy variables
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: |-
|
msg: |-
|
||||||
|
|||||||
@@ -56,7 +56,6 @@
|
|||||||
- custom/matrix-alertmanager-receiver
|
- custom/matrix-alertmanager-receiver
|
||||||
- custom/matrix-bridge-appservice-discord
|
- custom/matrix-bridge-appservice-discord
|
||||||
- custom/matrix-bridge-appservice-irc
|
- custom/matrix-bridge-appservice-irc
|
||||||
- custom/matrix-bridge-appservice-kakaotalk
|
|
||||||
- custom/matrix-bridge-beeper-linkedin
|
- custom/matrix-bridge-beeper-linkedin
|
||||||
- custom/matrix-bridge-wechat
|
- custom/matrix-bridge-wechat
|
||||||
- custom/matrix-bridge-mautrix-twitter
|
- custom/matrix-bridge-mautrix-twitter
|
||||||
|
|||||||
Reference in New Issue
Block a user