79 Commits

Author SHA1 Message Date
renovate[bot]
b83af55dcb chore(deps): update matrixdotorg/sygnal docker tag to v0.17.0 2025-12-10 10:42:51 +00:00
renovate[bot]
aec4185135 chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.144.0 2025-12-10 06:47:15 +02:00
renovate[bot]
fd612f99fd chore(deps): update nginx docker tag to v1.29.4 2025-12-10 06:42:59 +02:00
renovate[bot]
ddc5e094a3 chore(deps): update ghcr.io/element-hq/matrix-authentication-service docker tag to v1.8.0 2025-12-10 06:42:37 +02:00
renovate[bot]
c14d1bd1f4 chore(deps): update dependency sphinx to v9.0.4 2025-12-09 09:31:34 +02:00
The one with the braid
fe9f70517e fix: migrate Traefik Cert Dumper configuration
Relates to 904a98d56c.

Signed-off-by: The one with the braid <info@braid.business>
2025-12-09 09:30:53 +02:00
renovate[bot]
59ab28cab2 chore(deps): update dependency urllib3 to v2.6.1 2025-12-09 01:17:49 +02:00
renovate[bot]
904a98d56c chore(deps): update dependency traefik_certs_dumper to v2.10.0-3 2025-12-08 20:33:46 +02:00
renovate[bot]
f36983bfdb chore(deps): update joseluisq/static-web-server docker tag to v2.40.1 2025-12-08 11:25:51 +02:00
Slavi Pantaleev
88dcfbdaa7 Override matrix_matrixto_base_path in terms of matrix_base_data_path in group_vars/matrix_servers
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4787
2025-12-08 05:39:14 +02:00
renovate[bot]
d5580ea322 chore(deps): update dependency sphinx-markdown-builder to v0.6.9 2025-12-07 21:29:59 +02:00
Slavi Pantaleev
95884479c3 Fix tag name typo (setup-jwt-service -> setup-livekit-jwt-service) for the livekit-jwt-service role 2025-12-06 08:35:33 +02:00
Slavi Pantaleev
64fc64921c Upgrade livekit-jwt-service (v0.3.0 -> v0.4.0) and adapt configuration
Ref: https://github.com/element-hq/lk-jwt-service/releases/tag/v0.4.0

Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4784
2025-12-06 08:34:33 +02:00
Slavi Pantaleev
4238ec6e86 Upgrade baibot (v1.9.0 -> v1.10.0) 2025-12-06 07:12:48 +02:00
renovate[bot]
940dcb0162 chore(deps): update dependency traefik to v3.6.4-0 2025-12-06 07:04:50 +02:00
renovate[bot]
98663a8386 chore(deps): update dependency urllib3 to v2.6.0 2025-12-05 18:28:01 +02:00
Suguru Hirahara
bbfe345758 Update faq.md: add the section about coturn errors
Signed-off-by: Suguru Hirahara <did:key:z6MkvVZk1A3KBApWJXv2Ju4H14ErDfRGxh8zxdXSZ4vACDg5>
2025-12-05 17:37:50 +02:00
renovate[bot]
c7ed2deb22 chore(deps): update dependency livekit_server to v1.9.7-0 2025-12-05 14:56:06 +02:00
Aine
1bc70935a0 Synapse Admin v0.11.1-etke50 2025-12-04 18:55:40 +00:00
renovate[bot]
472bf1c58c chore(deps): update dependency sphinx to v9.0.3 2025-12-04 06:29:36 +02:00
renovate[bot]
717c9bfd7d chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.6 2025-12-03 21:15:42 +02:00
Slavi Pantaleev
325b22a302 Stop using deprecated vars variable in all other custom roles
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4776

Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4777
2025-12-02 21:32:15 +02:00
Kim Brose
f8f7406c51 Stop using deprecated vars variable for matrix-element-call 2025-12-02 20:10:35 +02:00
Kim Brose
caa2e338bc Stop using deprecated vars variable for matrix-dimension 2025-12-02 20:10:35 +02:00
renovate[bot]
585d606856 chore(deps): update dependency prometheus to v3.8.0-0 2025-12-02 18:07:36 +02:00
dependabot[bot]
cf97144ed8 Bump ansible/ansible-lint from 25.11.1 to 25.12.0
Bumps [ansible/ansible-lint](https://github.com/ansible/ansible-lint) from 25.11.1 to 25.12.0.
- [Release notes](https://github.com/ansible/ansible-lint/releases)
- [Commits](https://github.com/ansible/ansible-lint/compare/v25.11.1...v25.12.0)

---
updated-dependencies:
- dependency-name: ansible/ansible-lint
  dependency-version: 25.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 18:07:25 +02:00
renovate[bot]
d5709e4596 chore(deps): update ghcr.io/element-hq/element-call docker tag to v0.16.3 2025-12-02 18:07:14 +02:00
renovate[bot]
1838840f65 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.5 2025-12-02 18:06:41 +02:00
Slavi Pantaleev
0041bd01c3 Upgrade Postgres (v18.1-2 -> v18.1-3) 2025-12-02 07:38:38 +02:00
renovate[bot]
aea799260f chore(deps): update dependency docker to v7.9.0 2025-12-02 06:31:45 +02:00
renovate[bot]
1ee83861c3 chore(deps): update dependency sphinx to v9.0.1 2025-12-01 20:10:45 +02:00
renovate[bot]
db793428a1 chore(deps): update dependency livekit_server to v1.9.6-0 2025-12-01 16:57:40 +02:00
Slavi Pantaleev
f31be1a725 Adapt to static-webserver v2.40.0 changes to the public directory
Ref:

- https://github.com/static-web-server/static-web-server/releases/tag/v2.40.0
- https://github.com/static-web-server/static-web-server/pull/567
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4767

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4768

Regression since a451f1fcb1
2025-12-01 13:50:06 +02:00
renovate[bot]
a451f1fcb1 chore(deps): update joseluisq/static-web-server docker tag to v2.40.0 2025-12-01 08:31:47 +02:00
Slavi Pantaleev
64d890300b Upgrade docker-sdk-for-python (c38854e4c8451520e20163af1dd5f657790332da -> 542a2d68db4e9a8e9bb4b508052760b900c7dce6) 2025-11-30 17:50:05 +02:00
renovate[bot]
7e0815c5ea chore(deps): update dependency sphinx to v9 2025-11-30 16:12:43 +02:00
Slavi Pantaleev
fb0a1bd489 Upgrade baibot (v1.8.3 -> v1.9.0) 2025-11-30 12:37:57 +02:00
Aine
bab3a47c50 fix zulip bridge service name on removal 2025-11-28 18:48:24 +00:00
renovate[bot]
a88c394ae0 chore(deps): update ghcr.io/matrix-org/rageshake docker tag to v1.17.1 2025-11-28 17:54:12 +02:00
Slavi Pantaleev
eda41e89c1 Upgrade baibot (v1.8.2 -> v1.8.3) 2025-11-28 14:53:31 +02:00
renovate[bot]
d1b480de65 chore(deps): update dependency backup_borg to v1.4.2-2.0.12-0
Some checks failed
Matrix CI / yamllint (push) Successful in 9s
Matrix CI / Run pre-commit (push) Failing after 58s
Matrix CI / ansible-lint (push) Successful in 11m4s
2025-11-28 05:23:51 +02:00
renovate[bot]
2821774fca chore(deps): update ghcr.io/element-hq/matrix-authentication-service docker tag to v1.7.0
Some checks failed
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been skipped
Lock Threads / action (push) Has been skipped
2025-11-27 03:22:44 +02:00
renovate[bot]
77a173f8b2 chore(deps): update oci.element.io/element-admin docker tag to v0.1.9
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-26 18:03:26 +02:00
Slavi Pantaleev
ebdb2cc827 Use a proper (bool) value for the matrix_bot_draupnir_login_native variable
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Otherwise Ansible casts the "" string to a bool.
This works, but it's deprecated and a bad idea anyway.
2025-11-26 13:20:20 +02:00
Slavi Pantaleev
9b7767f451 Upgrade Postgres (v18.1-1 -> v18.1-2) 2025-11-26 13:17:04 +02:00
Slavi Pantaleev
201d3ea087 Upgrade Postgres (v18.1-0 -> v18.1-1) 2025-11-26 12:02:48 +02:00
Slavi Pantaleev
bf3f4a9059 Upgrade timesync (v1.1.0-0 -> v1.1.0-1) 2025-11-26 12:01:47 +02:00
Slavi Pantaleev
cbf8a2e7e9 Upgrade docker-sdk-for-python (129c8590e106b83e6f4c259649a613c6279e937a -> c38854e4c8451520e20163af1dd5f657790332da) 2025-11-26 11:59:38 +02:00
Slavi Pantaleev
ddf0fe7167 Fix Ansible inject_facts_as_vars deprecation warning 2025-11-26 11:56:57 +02:00
Slavi Pantaleev
07423d3dd4 Upgrade playbook-help (7663e3114513e56f28d3ed762059b445c678a71a -> 8630e4f1749bcb659c412820f754473f09055052) 2025-11-26 11:35:28 +02:00
Slavi Pantaleev
430f350733 Stop using deprecated vars variable 2025-11-26 11:35:09 +02:00
renovate[bot]
889970314a chore(deps): update docker.io/metio/matrix-alertmanager-receiver docker tag to v2025.11.26 2025-11-26 09:22:30 +02:00
renovate[bot]
1f2f7e468e chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.143.0
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-11-26 06:12:17 +02:00
Michael Hoang
6865a59e88 Document using Signal nicknames
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-25 05:51:43 +02:00
renovate[bot]
e128c761ba chore(deps): update dependency jitsi to v10655 2025-11-25 05:02:56 +02:00
renovate[bot]
4caf38e682 chore(deps): update ansible/ansible-lint action to v25.11.1 2025-11-25 05:02:30 +02:00
renovate[bot]
2eadddcde9 chore(deps): update gnuxie/draupnir docker tag to v2.8.0
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-23 15:57:05 +02:00
Suguru Hirahara
6cc837600a Add Matrix.to (#4750)
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-11-23 06:53:37 +02:00
renovate[bot]
7181131967 chore(deps): update actions/checkout action to v6
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-20 21:41:59 +02:00
Suguru Hirahara
a116620238 Update the link to the FluffyChat website
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Signed-off-by: Suguru Hirahara <did:key:z6MkvVZk1A3KBApWJXv2Ju4H14ErDfRGxh8zxdXSZ4vACDg5>
2025-11-20 17:16:05 +09:00
Slavi Pantaleev
b464f3cc55 Upgrade baibot (v1.8.1 -> v1.8.2)
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-11-20 06:14:56 +02:00
Slavi Pantaleev
fb2d7481dc Upgrade playbook-state-preserver (ff2fd42e1c1a9e28e3312bbd725395f9c2fc7f16 -> dd6e15246b7a9a2d921e0b3f9cd8a4a917a1bb2f)
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-19 06:50:55 +02:00
renovate[bot]
388e79ea5a chore(deps): update dependency traefik to v3.6.2-0 2025-11-19 06:16:35 +02:00
Richard Meyer
0ab40bbd9c Update synapse to v1.142.1 2025-11-19 06:15:06 +02:00
renovate[bot]
9582f6a565 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.4
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-18 17:08:43 +02:00
Slavi Pantaleev
4b2919b538 Bump OpenAI text-generation model for baibot (gpt-5 -> gpt-5.1)
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-11-18 06:24:08 +02:00
Slavi Pantaleev
d05c83d0d5 Bump Anthropic text-generation model for baibot (claude-3-7-sonnet-20250219 -> claude-sonnet-4-5-20250929) 2025-11-18 06:23:47 +02:00
renovate[bot]
97a1562942 chore(deps): update dock.mau.dev/maubot/maubot docker tag to v0.6.0
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-17 18:24:25 +02:00
Benjamin Blacher
346dfbbc07 Add support for signal polls 2025-11-17 18:18:16 +02:00
renovate[bot]
7520469644 chore(deps): update dependency ntfy to v2.15.0-0
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-11-17 07:09:53 +02:00
renovate[bot]
8405bbdb94 chore(deps): update dock.mau.dev/mautrix/whatsapp docker tag to v0.2511.0
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-16 15:09:38 +02:00
renovate[bot]
dfa38bec2c chore(deps): update dock.mau.dev/mautrix/twitter docker tag to v0.2511.0 2025-11-16 15:09:30 +02:00
renovate[bot]
4e3dd04b17 chore(deps): update dock.mau.dev/mautrix/slack docker tag to v0.2511.0 2025-11-16 15:09:15 +02:00
renovate[bot]
ff884f5b4b chore(deps): update dock.mau.dev/mautrix/signal docker tag to v0.2511.0 2025-11-16 15:09:08 +02:00
renovate[bot]
4b93bbde98 chore(deps): update dock.mau.dev/mautrix/meta docker tag to v0.2511.0 2025-11-16 15:08:59 +02:00
renovate[bot]
46f00c89cc chore(deps): update dependency etherpad to v2.5.2-2 2025-11-16 15:07:35 +02:00
renovate[bot]
f3020a8ce6 chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.2511.0 2025-11-16 15:07:26 +02:00
renovate[bot]
1e3e722f8f chore(deps): update dependency livekit_server to v1.9.4-0
Some checks failed
Lock Threads / action (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
2025-11-16 06:16:43 +02:00
renovate[bot]
f276b204a7 chore(deps): update dependency click to v8.3.1 2025-11-16 06:16:30 +02:00
84 changed files with 797 additions and 120 deletions

View File

@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Run yamllint
uses: frenck/action-yamllint@v1.5.0
ansible-lint:
@@ -23,10 +23,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check out
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Run ansible-lint
uses: ansible/ansible-lint@v25.11.0
uses: ansible/ansible-lint@v25.12.0
with:
args: "roles/custom"
setup_python: "true"
@@ -37,6 +37,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Run pre-commit
uses: pre-commit/action@v3.0.1

View File

@@ -1,3 +1,19 @@
# 2025-12-09
## Traefik Cert Dumper upgrade
The variable `traefik_certs_dumper_ssl_dir_path` was renamed to `traefik_certs_dumper_ssl_path`. Users who use [their own webserver with Traefik](docs/configuring-playbook-own-webserver.md) may need to adjust their configuration.
The variable `traefik_certs_dumper_dumped_certificates_dir_path` was renamed to `traefik_certs_dumper_dumped_certificates_path`. Users who use [SRV Server Delegation](docs/howto-srv-server-delegation.md) may need to adjust their configuration.
# 2025-11-23
## Matrix.to support
The playbook now supports [Matrix.to](https://github.com/matrix-org/matrix.to) — a simple URL redirection service which powers [matrix.to](https://matrix.to).
To learn more, see our [Setting up Matrix.to](docs/configuring-playbook-matrixto.md) documentation page.
# 2025-11-09
## matrix-appservice-webhooks has been removed from the playbook

View File

@@ -179,6 +179,7 @@ Various services that don't fit any other categories.
| [synapse_auto_accept_invite](https://github.com/matrix-org/synapse-auto-accept-invite) | ❌ | Synapse module to automatically accept invites | [Link](docs/configuring-playbook-synapse-auto-accept-invite.md) |
| [synapse_auto_compressor](https://github.com/matrix-org/rust-synapse-compress-state/#automated-tool-synapse_auto_compressor) | ❌ | Cli tool that automatically compresses `state_groups` database table in background | [Link](docs/configuring-playbook-synapse-auto-compressor.md) |
| [Matrix Corporal](https://github.com/devture/matrix-corporal) (advanced) | ❌ | Reconciliator and gateway for a managed Matrix server | [Link](docs/configuring-playbook-matrix-corporal.md) |
| [Matrix.to](https://github.com/matrix-org/matrix.to) | ❌ | Simple URL redirection service for the Matrix ecosystem | [Link](docs/configuring-playbook-matrixto.md) |
| [Etherpad](https://etherpad.org) | ❌ | Open source collaborative text editor | [Link](docs/configuring-playbook-etherpad.md) |
| [Jitsi](https://jitsi.org/) | ❌ | Open source video-conferencing platform | [Link](docs/configuring-playbook-jitsi.md) |
| [Cactus Comments](https://cactus.chat) | ❌ | Federated comment system built on Matrix | [Link](docs/configuring-playbook-cactus-comments.md) |

View File

@@ -13,7 +13,7 @@ FluffyChat Web is a cute cross-platform (web, iOS, Android) messenger for Matrix
💡 **Note**: the latest version of FluffyChat Web is also available on the web, hosted by 3rd parties. If you trust giving your credentials to the following 3rd party Single Page Application, you can consider using it from there:
- [fluffychat.im](https://fluffychat.im/web), hosted by the [FluffyChat](https://fluffychat.im/) developers
- [fluffychat.im](https://fluffychat.im/web), hosted by the [FluffyChat](https://fluffy.chat/) developers
## Adjusting DNS records

View File

@@ -0,0 +1,68 @@
<!--
SPDX-FileCopyrightText: 2023 - 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Matrix.to (optional)
The playbook can install and configure the [Matrix.to](https://github.com/matrix-org/matrix.to) URL redirection service for you.
See the project's [documentation](https://github.com/matrix-org/matrix.to/blob/main/README.md) to learn what it does and why it might be useful to you.
## Adjusting DNS records
By default, this playbook installs Matrix.to on the `mt.` subdomain (`mt.example.com`) and requires you to create a CNAME record for `mt`, which targets `matrix.example.com`.
When setting, replace `example.com` with your own.
## Adjusting the playbook configuration
To enable Matrix.to, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_matrixto_enabled: true
```
### Adjusting the Matrix.to URL (optional)
By tweaking the `matrix_matrixto_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
Example additional configuration for your `vars.yml` file:
```yaml
# Change the default hostname
matrix_matrixto_hostname: t.example.com
```
After changing the domain, **you may need to adjust your DNS** records to point the Matrix.to domain to the Matrix server.
### Extending the configuration
There are some additional things you may wish to configure about the server.
Take a look at:
- `roles/custom/matrix-matrixto/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
## Installing
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook 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
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
Refer to the project's [documentation](https://github.com/matrix-org/matrix.to/blob/main/README.md) for available parameters, etc.
## 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-matrixto`.

View File

@@ -51,7 +51,7 @@ matrix_playbook_reverse_proxy_type: other-traefik-container
# Adjust to point to your Traefik container
matrix_playbook_reverse_proxy_hostname: name-of-your-traefik-container
traefik_certs_dumper_ssl_dir_path: "/path/to/your/traefiks/acme.json/directory"
traefik_certs_dumper_ssl_path: "/path/to/your/traefiks/acme.json/directory"
# Uncomment and adjust the variable below if the name of your federation entrypoint is different
# than the default value (matrix-federation).

View File

@@ -247,6 +247,8 @@ Various services that don't fit any other categories.
- [Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)
- [Setting up Matrix.to](configuring-playbook-matrixto.md)
- [Setting up Etherpad](configuring-playbook-etherpad.md)
- [Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)

View File

@@ -440,6 +440,19 @@ To prevent double-logging, Docker logging is disabled by explicitly passing `--l
See [this section](maintenance-and-troubleshooting.md#how-to-see-the-logs) on the page for maintenance and troubleshooting for more details to see the logs.
### The server fails to start due to the `Unable to start service matrix-coturn.service` error. Why and how to solve it?
The error is most likely because Traefik cannot obtain SSL certificates due to certain reasons such as wrong domain name configuration or port 80 being unavailable due to other services.
If Traefik fails to obtain an SSL certificate for domain names such as `matrix.`, Traefik Certs Dumper cannot extract the SSL certificate out of there, and coturn cannot be started and the error occurs. Refer to these comments for details:
- <https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3957#issuecomment-2599590441>
- <https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4570#issuecomment-3364111466>
If you are not sure what the problem is, at first make sure that you have set the "base domain" (`example.com`, **not `matrix.example.com`**) to `matrix_domain`. You should be able to find it at the top of your `vars.yml`.
If it is correctly specified, look Traefik's logs (`journalctl -fu matrix-traefik.service`) for errors by Let's Encrypt for troubleshooting.
## Miscellaneous
### I would like to see this favorite service of mine integrated and become available on my Matrix server. How can I request it?

View File

@@ -112,12 +112,12 @@ matrix_coturn_container_additional_volumes: |
(
[
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/certificate.crt'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/*.' + matrix_domain + '/certificate.crt'),
'dst': '/certificate.crt',
'options': 'ro',
},
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/privatekey.key'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/*.' + matrix_domain + '/privatekey.key'),
'dst': '/privatekey.key',
'options': 'ro',
},
@@ -173,12 +173,12 @@ matrix_coturn_container_additional_volumes: |
(
[
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/certificate.crt'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/*.' + matrix_domain + '/certificate.crt'),
'dst': '/certificate.crt',
'options': 'ro',
},
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/*.' + matrix_domain + '/privatekey.key'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/*.' + matrix_domain + '/privatekey.key'),
'dst': '/privatekey.key',
'options': 'ro',
},

View File

@@ -363,6 +363,8 @@ devture_systemd_service_manager_services_list_auto: |
+
([{'name': 'matrix-coturn.service', 'priority': (900 if devture_systemd_service_manager_service_restart_mode == 'clean-stop-start' else 1500), 'groups': ['matrix', 'coturn']}] if matrix_coturn_enabled else [])
+
([{'name': 'matrix-matrixto.service', 'priority': 4000, 'groups': ['matrix', 'matrixto']}] if matrix_matrixto_enabled else [])
+
([{'name': 'matrix-rageshake.service', 'priority': 4000, 'groups': ['matrix', 'rageshake']}] if matrix_rageshake_enabled else [])
+
([{'name': 'matrix-coturn-reload.timer', 'priority': 5000, 'groups': ['matrix', 'coturn']}] if (matrix_coturn_enabled and matrix_coturn_tls_enabled) else [])
@@ -2240,8 +2242,8 @@ matrix_postmoogle_container_image_self_build: "{{ matrix_architecture not in ['a
matrix_postmoogle_ssl_path: |-
{{
{
'playbook-managed-traefik': (traefik_certs_dumper_dumped_certificates_dir_path if traefik_certs_dumper_enabled else ''),
'other-traefik-container': (traefik_certs_dumper_dumped_certificates_dir_path if traefik_certs_dumper_enabled else ''),
'playbook-managed-traefik': (traefik_certs_dumper_dumped_certificates_path if traefik_certs_dumper_enabled else ''),
'other-traefik-container': (traefik_certs_dumper_dumped_certificates_path if traefik_certs_dumper_enabled else ''),
'none': '',
}[matrix_playbook_reverse_proxy_type]
}}
@@ -3077,6 +3079,38 @@ matrix_corporal_matrix_registration_shared_secret: "{{ matrix_synapse_registrati
#
######################################################################
######################################################################
#
# matrix-matrixto
#
######################################################################
# We don't enable matrixto by default.
matrix_matrixto_enabled: false
matrix_matrixto_base_path: "{{ matrix_base_data_path }}/matrixto"
# The container image is not provided at https://github.com/matrix-org/matrix.to
matrix_matrixto_container_image_self_build: true
matrix_matrixto_hostname: "{{ matrix_server_fqn_matrixto }}"
matrix_matrixto_container_network: matrix-matrixto
matrix_matrixto_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}"
matrix_matrixto_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '5000') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
matrix_matrixto_container_labels_traefik_enabled: "{{ matrix_playbook_traefik_labels_enabled }}"
matrix_matrixto_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_matrixto_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_matrixto_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
######################################################################
#
# /matrix-matrixto
#
######################################################################
######################################################################
#
@@ -3157,12 +3191,12 @@ matrix_coturn_container_additional_volumes: |
(
[
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/' + matrix_server_fqn_matrix + '/certificate.crt'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/' + matrix_server_fqn_matrix + '/certificate.crt'),
'dst': '/certificate.crt',
'options': 'ro',
},
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/' + matrix_server_fqn_matrix + '/privatekey.key'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/' + matrix_server_fqn_matrix + '/privatekey.key'),
'dst': '/privatekey.key',
'options': 'ro',
},
@@ -5847,7 +5881,7 @@ traefik_certs_dumper_base_path: "{{ matrix_base_data_path }}/traefik-certs-dumpe
traefik_certs_dumper_uid: "{{ matrix_user_uid }}"
traefik_certs_dumper_gid: "{{ matrix_user_gid }}"
traefik_certs_dumper_ssl_dir_path: "{{ traefik_ssl_dir_path if traefik_enabled else '' }}"
traefik_certs_dumper_ssl_path: "{{ traefik_ssl_dir_path if traefik_enabled else '' }}"
traefik_certs_dumper_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else traefik_certs_dumper_container_image_registry_prefix_upstream_default }}"
@@ -5956,12 +5990,12 @@ livekit_server_container_additional_volumes_auto: |
(
[
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/' + livekit_server_config_turn_domain + '/certificate.crt'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/' + livekit_server_config_turn_domain + '/certificate.crt'),
'dst': livekit_server_config_turn_cert_file,
'options': 'ro',
},
{
'src': (traefik_certs_dumper_dumped_certificates_dir_path + '/' + livekit_server_config_turn_domain + '/privatekey.key'),
'src': (traefik_certs_dumper_dumped_certificates_path + '/' + livekit_server_config_turn_domain + '/privatekey.key'),
'dst': livekit_server_config_turn_key_file,
'options': 'ro',
},

View File

@@ -2,7 +2,7 @@ alabaster==1.0.0
babel==2.17.0
certifi==2025.11.12
charset-normalizer==3.4.4
click==8.3.0
click==8.3.1
docutils==0.22.3
idna==3.11
imagesize==1.4.1
@@ -19,9 +19,9 @@ PyYAML==6.0.3
requests==2.32.5
setuptools==80.9.0
snowballstemmer==3.0.1
Sphinx==8.2.3
Sphinx==9.0.4
sphinx-intl==2.3.2
sphinx-markdown-builder==0.6.8
sphinx-markdown-builder==0.6.9
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
@@ -30,4 +30,4 @@ sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
tabulate==0.9.0
uc-micro-py==1.0.3
urllib3==2.5.0
urllib3==2.6.1

View File

@@ -4,19 +4,19 @@
version: v1.0.0-5
name: auxiliary
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
version: v1.4.2-2.0.11-1
version: v1.4.2-2.0.12-0
name: backup_borg
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-container-socket-proxy.git
version: v0.4.1-2
name: container_socket_proxy
- src: git+https://github.com/geerlingguy/ansible-role-docker
version: 7.8.0
version: 7.9.0
name: docker
- src: git+https://github.com/devture/com.devture.ansible.role.docker_sdk_for_python.git
version: 129c8590e106b83e6f4c259649a613c6279e937a
version: 542a2d68db4e9a8e9bb4b508052760b900c7dce6
name: docker_sdk_for_python
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git
version: v2.5.2-1
version: v2.5.2-2
name: etherpad
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git
version: v4.98.1-r0-2-2
@@ -25,31 +25,31 @@
version: v11.6.5-4
name: grafana
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git
version: v10590-0
version: v10655-0
name: jitsi
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git
version: v1.9.3-0
version: v1.9.7-0
name: livekit_server
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
version: v2.14.0-3
version: v2.15.0-0
name: ntfy
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git
version: 7663e3114513e56f28d3ed762059b445c678a71a
version: 8630e4f1749bcb659c412820f754473f09055052
name: playbook_help
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages.git
version: 9b4b088c62b528b73a9a7c93d3109b091dd42ec6
name: playbook_runtime_messages
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_state_preserver.git
version: ff2fd42e1c1a9e28e3312bbd725395f9c2fc7f16
version: dd6e15246b7a9a2d921e0b3f9cd8a4a917a1bb2f
name: playbook_state_preserver
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git
version: v18.1-0
version: v18.1-3
name: postgres
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git
version: v18-0
name: postgres_backup
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git
version: v3.7.3-1
version: v3.8.0-0
name: prometheus
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
version: v1.9.1-12
@@ -64,13 +64,13 @@
version: v1.0.0-4
name: systemd_service_manager
- src: git+https://github.com/devture/com.devture.ansible.role.timesync.git
version: v1.1.0-0
version: v1.1.0-1
name: timesync
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git
version: v3.6.1-0
version: v3.6.4-0
name: traefik
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git
version: v2.10.0-2
version: v2.10.0-3
name: traefik_certs_dumper
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-valkey.git
version: v9-0

View File

@@ -11,7 +11,7 @@
matrix_alertmanager_receiver_enabled: true
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_version: 2025.11.12
matrix_alertmanager_receiver_version: 2025.11.26
matrix_alertmanager_receiver_scheme: https

View File

@@ -12,7 +12,7 @@
matrix_appservice_draupnir_for_all_enabled: true
# renovate: datasource=docker depName=gnuxie/draupnir
matrix_appservice_draupnir_for_all_version: "v2.7.1"
matrix_appservice_draupnir_for_all_version: "v2.8.0"
matrix_appservice_draupnir_for_all_container_image_self_build: false
matrix_appservice_draupnir_for_all_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"

View File

@@ -13,7 +13,7 @@
with_items:
- "matrix_appservice_draupnir_for_all_config_adminRoom"
- "matrix_bot_draupnir_container_network"
when: "vars[item] == '' or vars[item] is none"
when: "lookup('vars', item, default='') == '' or lookup('vars', item, default='') is none"
- name: (Deprecation) Catch and report renamed matrix-appservice-draupnir-for-all settings
ansible.builtin.fail:

View File

@@ -22,7 +22,7 @@ matrix_authentication_service_container_repo_version: "{{ 'main' if matrix_authe
matrix_authentication_service_container_src_files_path: "{{ matrix_base_data_path }}/matrix-authentication-service/container-src"
# renovate: datasource=docker depName=ghcr.io/element-hq/matrix-authentication-service
matrix_authentication_service_version: 1.6.0
matrix_authentication_service_version: 1.8.0
matrix_authentication_service_container_image_registry_prefix: "{{ 'localhost/' if matrix_authentication_service_container_image_self_build else matrix_authentication_service_container_image_registry_prefix_upstream }}"
matrix_authentication_service_container_image_registry_prefix_upstream: "{{ matrix_authentication_service_container_image_registry_prefix_upstream_default }}"
matrix_authentication_service_container_image_registry_prefix_upstream_default: "ghcr.io/"

View File

@@ -19,7 +19,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | string | length == 0"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_authentication_service_syn2mas_synapse_homeserver_config_path', when: true}

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | string | length == 0"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_authentication_service_hostname', when: true}
- {'name': 'matrix_authentication_service_config_database_username', when: true}

View File

@@ -148,6 +148,9 @@ matrix_server_fqn_ntfy: "ntfy.{{ matrix_domain }}"
# This is where you access rageshake.
matrix_server_fqn_rageshake: "rageshake.{{ matrix_domain }}"
# This is where you access Matrix.to.
matrix_server_fqn_matrixto: "mt.{{ matrix_domain }}"
matrix_federation_public_port: 8448
# The name of the Traefik entrypoint for handling Matrix Federation
@@ -270,7 +273,7 @@ matrix_metrics_exposure_http_basic_auth_users: ''
# - nevertheless, the playbook expects that you would install Traefik yourself via other means
# - you should make sure your Traefik configuration is compatible with what the playbook would have configured (web, web-secure, matrix-federation entrypoints, etc.)
# - you need to set `matrix_playbook_reverse_proxyable_services_additional_network` to the name of your Traefik network
# - Traefik certs dumper will be enabled by default (`traefik_certs_dumper_enabled`). You need to point it to your Traefik's SSL certificates (`traefik_certs_dumper_ssl_dir_path`)
# - Traefik certs dumper will be enabled by default (`traefik_certs_dumper_enabled`). You need to point it to your Traefik's SSL certificates (`traefik_certs_dumper_ssl_path`)
#
# - `none`
# - no reverse-proxy will be installed

View File

@@ -17,7 +17,7 @@ matrix_bot_baibot_container_repo_version: "{{ 'main' if matrix_bot_baibot_versio
matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src"
# renovate: datasource=docker depName=ghcr.io/etkecc/baibot
matrix_bot_baibot_version: v1.8.1
matrix_bot_baibot_version: v1.10.0
matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}"
matrix_bot_baibot_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else matrix_bot_baibot_container_image_registry_prefix_upstream }}"
matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}"
@@ -204,8 +204,8 @@ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_base_url: ht
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key: ""
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_enabled: true
# For valid model choices, see: https://platform.anthropic.com/docs/models
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-3-7-sonnet-20250219
# For valid model choices, see: https://docs.claude.com/en/docs/about-claude/models/overview
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-sonnet-4-5-20250929
# The prompt text to use (can be null or empty to not use a prompt).
# See: https://huggingface.co/docs/transformers/en/tasks/prompting
matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}"
@@ -368,7 +368,7 @@ matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: ""
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_enabled: true
# For valid model choices, see: https://platform.openai.com/docs/models
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-5
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-5.1
# The prompt text to use (can be null or empty to not use a prompt).
# See: https://huggingface.co/docs/transformers/en/tasks/prompting
matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}"

View File

@@ -12,7 +12,7 @@
matrix_bot_draupnir_enabled: true
# renovate: datasource=docker depName=gnuxie/draupnir
matrix_bot_draupnir_version: "v2.7.1"
matrix_bot_draupnir_version: "v2.8.0"
matrix_bot_draupnir_container_image_self_build: false
matrix_bot_draupnir_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"
@@ -101,7 +101,7 @@ matrix_bot_draupnir_password: "{{ matrix_bot_draupnir_pantalaimon_password }}"
# Controls if we activate the config block for Pantalaimon for now. Its name will
# probably be changed for our usecase due to Draupnir's push to scrub Pantalaimon from the codebase.
# This configuration option does not follow the common naming schema as its not controlling a config key directly.
matrix_bot_draupnir_login_native: ""
matrix_bot_draupnir_login_native: false
# The room ID where people can use the bot. The bot has no access controls, so
# anyone in this room can use the bot - secure your room!

View File

@@ -44,7 +44,7 @@
- {'name': 'matrix_bot_draupnir_config_rawHomeserverUrl', when: true}
- {'name': 'matrix_bot_draupnir_pantalaimon_username', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
- {'name': 'matrix_bot_draupnir_pantalaimon_password', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
when: "item.when | bool and (vars[item.name] == '' or vars[item.name] is none)"
when: "item.when | bool and (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
- name: Fail if Draupnir room hijacking enabled without enabling the Synapse Admin API
ansible.builtin.fail:
@@ -57,7 +57,7 @@
with_items:
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_login_native }}"}
when: "item.when | bool and not (vars[item.name] == '' or vars[item.name] is none)"
when: "item.when | bool and not (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
- name: Fail when matrix_bot_draupnir_config_experimentalRustCrypto is enabled together with matrix_bot_draupnir_pantalaimon_use
ansible.builtin.fail:

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_bot_matrix_registration_bot_bot_password"
- "matrix_bot_matrix_registration_bot_api_base_url"

View File

@@ -30,7 +30,7 @@ matrix_bot_maubot_docker_repo: "https://mau.dev/maubot/maubot.git"
matrix_bot_maubot_docker_repo_version: "{{ 'master' if matrix_bot_maubot_version == 'latest' else matrix_bot_maubot_version }}"
# renovate: datasource=docker depName=dock.mau.dev/maubot/maubot
matrix_bot_maubot_version: v0.5.2
matrix_bot_maubot_version: v0.6.0
matrix_bot_maubot_docker_image: "{{ matrix_bot_maubot_docker_image_registry_prefix }}maubot/maubot:{{ matrix_bot_maubot_version }}"
matrix_bot_maubot_docker_image_registry_prefix: "{{ 'localhost/' if matrix_bot_maubot_container_image_self_build else matrix_bot_maubot_docker_image_registry_prefix_upstream }}"
matrix_bot_maubot_docker_image_registry_prefix_upstream: "{{ matrix_bot_maubot_docker_image_registry_prefix_upstream_default }}"

View File

@@ -18,14 +18,14 @@
- {'name': 'matrix_bot_mjolnir_raw_homeserver_url', when: true}
- {'name': 'matrix_bot_mjolnir_pantalaimon_username', when: "{{ matrix_bot_mjolnir_pantalaimon_use }}"}
- {'name': 'matrix_bot_mjolnir_pantalaimon_password', when: "{{ matrix_bot_mjolnir_pantalaimon_use }}"}
when: "item.when | bool and (vars[item.name] == '' or vars[item.name] is none)"
when: "item.when | bool and (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
- name: Fail if inappropriate variables are defined
ansible.builtin.fail:
msg: "The `{{ item.name }}` variable must be undefined or have a null value."
with_items:
- {'name': 'matrix_bot_mjolnir_access_token', when: "{{ matrix_bot_mjolnir_pantalaimon_use }}"}
when: "item.when | bool and not (vars[item.name] == '' or vars[item.name] is none)"
when: "item.when | bool and not (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
- name: (Deprecation) Catch and report renamed Mjolnir settings
ansible.builtin.fail:

View File

@@ -51,7 +51,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_hookshot_appservice_token"
- "matrix_hookshot_homeserver_address"
@@ -62,7 +62,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) to enable GitHub.
when: "matrix_hookshot_github_enabled and vars[item] == ''"
when: "matrix_hookshot_github_enabled and lookup('vars', item, default='') == ''"
with_items:
- "matrix_hookshot_github_auth_id"
- "matrix_hookshot_github_webhook_secret"
@@ -71,7 +71,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) to enable GitHub OAuth.
when: "matrix_hookshot_github_oauth_enabled and vars[item] == ''"
when: "matrix_hookshot_github_oauth_enabled and lookup('vars', item, default='') == ''"
with_items:
- "matrix_hookshot_github_oauth_client_id"
- "matrix_hookshot_github_oauth_client_secret"
@@ -80,7 +80,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) to enable Jira.
when: "matrix_hookshot_jira_enabled and vars[item] == ''"
when: "matrix_hookshot_jira_enabled and lookup('vars', item, default='') == ''"
with_items:
- "matrix_hookshot_jira_webhook_secret"
@@ -88,7 +88,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) to enable Jira OAuth.
when: "matrix_hookshot_jira_oauth_enabled and vars[item] == ''"
when: "matrix_hookshot_jira_oauth_enabled and lookup('vars', item, default='') == ''"
with_items:
- "matrix_hookshot_jira_oauth_client_id"
- "matrix_hookshot_jira_oauth_client_secret"

View File

@@ -18,7 +18,7 @@ matrix_mautrix_gmessages_container_image_self_build_repo: "https://github.com/ma
matrix_mautrix_gmessages_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_gmessages_version == 'latest' else matrix_mautrix_gmessages_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/gmessages
matrix_mautrix_gmessages_version: v0.2510.0
matrix_mautrix_gmessages_version: v0.2511.0
# See: https://mau.dev/mautrix/gmessages/container_registry
matrix_mautrix_gmessages_docker_image: "{{ matrix_mautrix_gmessages_docker_image_registry_prefix }}mautrix/gmessages:{{ matrix_mautrix_gmessages_version }}"

View File

@@ -20,7 +20,7 @@ matrix_mautrix_meta_instagram_enabled: true
matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram
# renovate: datasource=docker depName=dock.mau.dev/mautrix/meta
matrix_mautrix_meta_instagram_version: v0.2510.0
matrix_mautrix_meta_instagram_version: v0.2511.0
matrix_mautrix_meta_instagram_base_path: "{{ matrix_base_data_path }}/mautrix-meta-instagram"
matrix_mautrix_meta_instagram_config_path: "{{ matrix_mautrix_meta_instagram_base_path }}/config"

View File

@@ -20,7 +20,7 @@ matrix_mautrix_meta_messenger_enabled: true
matrix_mautrix_meta_messenger_identifier: matrix-mautrix-meta-messenger
# renovate: datasource=docker depName=dock.mau.dev/mautrix/meta
matrix_mautrix_meta_messenger_version: v0.2510.0
matrix_mautrix_meta_messenger_version: v0.2511.0
matrix_mautrix_meta_messenger_base_path: "{{ matrix_base_data_path }}/mautrix-meta-messenger"
matrix_mautrix_meta_messenger_config_path: "{{ matrix_mautrix_meta_messenger_base_path }}/config"

View File

@@ -25,7 +25,7 @@ matrix_mautrix_signal_container_image_self_build_repo: "https://mau.dev/mautrix/
matrix_mautrix_signal_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_signal_version == 'latest' else matrix_mautrix_signal_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/signal
matrix_mautrix_signal_version: v0.2510.0
matrix_mautrix_signal_version: v0.2511.0
# See: https://mau.dev/mautrix/signal/container_registry
matrix_mautrix_signal_docker_image: "{{ matrix_mautrix_signal_docker_image_registry_prefix }}mautrix/signal:{{ matrix_mautrix_signal_docker_image_tag }}"
@@ -50,11 +50,14 @@ matrix_mautrix_signal_appservice_address: "http://matrix-mautrix-signal:8080"
matrix_mautrix_signal_msc4190_enabled: "{{ matrix_bridges_msc4190_enabled }}"
matrix_mautrix_signal_self_sign_enabled: "{{ matrix_bridges_self_sign_enabled }}"
matrix_mautrix_signal_extev_polls: false
matrix_mautrix_signal_command_prefix: "!signal"
# Displayname template for Signal users.
# {{.ProfileName}} - The Signal profile name set by the user.
# {{.ContactName}} - The name for the user from your phone's contact list. This is not safe on multi-user instances.
# {{.Nickname}} - The nickname set for the user in the native Signal app. This is not safe on multi-user instances.
# {{.PhoneNumber}} - The phone number of the user.
# {{.UUID}} - The UUID of the Signal user.
# {{.AboutEmoji}} - The emoji set by the user in their profile.

View File

@@ -19,6 +19,8 @@ network:
# Google Maps: 'https://www.google.com/maps/place/%[1]s,%[2]s'
# OpenStreetMap: 'https://www.openstreetmap.org/?mlat=%[1]s&mlon=%[2]s'
location_format: 'https://www.google.com/maps/place/%[1]s,%[2]s'
# Should polls be sent using unstable MSC3381 event types?
extev_polls: {{ matrix_mautrix_signal_extev_polls | to_json }}
# Config options that affect the central bridge module.
bridge:

View File

@@ -17,7 +17,7 @@ matrix_mautrix_slack_container_image_self_build_repo: "https://mau.dev/mautrix/s
matrix_mautrix_slack_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_slack_version == 'latest' else matrix_mautrix_slack_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/slack
matrix_mautrix_slack_version: v0.2510.0
matrix_mautrix_slack_version: v0.2511.0
# See: https://mau.dev/mautrix/slack/container_registry
matrix_mautrix_slack_docker_image: "{{ matrix_mautrix_slack_docker_image_registry_prefix }}mautrix/slack:{{ matrix_mautrix_slack_version }}"
matrix_mautrix_slack_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_slack_container_image_self_build else matrix_mautrix_slack_docker_image_registry_prefix_upstream }}"

View File

@@ -22,7 +22,7 @@ matrix_mautrix_twitter_container_image_self_build_repo: "https://github.com/maut
matrix_mautrix_twitter_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_twitter_version == 'latest' else matrix_mautrix_twitter_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/twitter
matrix_mautrix_twitter_version: v0.2510.0
matrix_mautrix_twitter_version: v0.2511.0
# See: https://mau.dev/tulir/mautrix-twitter/container_registry
matrix_mautrix_twitter_docker_image: "{{ matrix_mautrix_twitter_docker_image_registry_prefix }}mautrix/twitter:{{ matrix_mautrix_twitter_version }}"
matrix_mautrix_twitter_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_twitter_container_image_self_build else matrix_mautrix_twitter_docker_image_registry_prefix_upstream }}"

View File

@@ -28,7 +28,7 @@ matrix_mautrix_whatsapp_container_image_self_build_repo: "https://mau.dev/mautri
matrix_mautrix_whatsapp_container_image_self_build_branch: "{{ 'master' if matrix_mautrix_whatsapp_version == 'latest' else matrix_mautrix_whatsapp_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/whatsapp
matrix_mautrix_whatsapp_version: v0.2510.0
matrix_mautrix_whatsapp_version: v0.2511.0
# See: https://mau.dev/mautrix/whatsapp/container_registry
matrix_mautrix_whatsapp_docker_image: "{{ matrix_mautrix_whatsapp_docker_image_registry_prefix }}mautrix/whatsapp:{{ matrix_mautrix_whatsapp_version }}"

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_mautrix_androidsms_appservice_token"
- "matrix_mautrix_androidsms_homeserver_token"

View File

@@ -11,7 +11,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_sms_bridge_appservice_token"
- "matrix_sms_bridge_homeserver_hostname"

View File

@@ -15,7 +15,7 @@
block:
- name: Ensure matrix-bridge-zulip is stopped
ansible.builtin.service:
name: matrix-bridge-zulip
name: matrix-zulip-bridge
state: stopped
enabled: false
daemon_reload: true

View File

@@ -18,7 +18,7 @@ matrix_cactus_comments_client_public_path: "{{ matrix_cactus_comments_client_bas
matrix_cactus_comments_client_public_path_file_permissions: "0644"
# renovate: datasource=docker depName=joseluisq/static-web-server
matrix_cactus_comments_client_version: 2.39.0
matrix_cactus_comments_client_version: 2.40.1
matrix_cactus_comments_client_container_image: "{{ matrix_cactus_comments_client_container_image_registry_prefix }}joseluisq/static-web-server:{{ matrix_cactus_comments_client_container_image_tag }}"
matrix_cactus_comments_client_container_image_registry_prefix: "{{ matrix_cactus_comments_client_container_image_registry_prefix_upstream }}"

View File

@@ -8,7 +8,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_cactus_comments_client_hostname
- matrix_cactus_comments_client_path_prefix

View File

@@ -29,7 +29,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
{% endif %}
--env-file={{ matrix_cactus_comments_client_base_path }}/env \
--label-file={{ matrix_cactus_comments_client_base_path }}/labels \
--mount type=bind,src={{ matrix_cactus_comments_client_public_path }},dst=/public,ro \
--mount type=bind,src={{ matrix_cactus_comments_client_public_path }},dst=/var/public,ro \
{{ matrix_cactus_comments_client_container_image }}
{% for network in matrix_cactus_comments_client_container_additional_networks %}

View File

@@ -24,7 +24,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_cactus_comments_as_token"
- "matrix_cactus_comments_hs_token"

View File

@@ -36,7 +36,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_client_cinny_container_labels_traefik_hostname
- matrix_client_cinny_container_labels_traefik_path_prefix

View File

@@ -26,10 +26,10 @@ matrix_client_element_container_image_self_build_repo: "https://github.com/eleme
# Controls whether to patch webpack.config.js when self-building, so that building can pass on low-memory systems (< 4 GB RAM):
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1357
# - https://github.com/element-hq/element-web/issues/19544
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}"
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_facts['memtotal_mb'] < 4096 }}"
# renovate: datasource=docker depName=ghcr.io/element-hq/element-web
matrix_client_element_version: v1.12.3
matrix_client_element_version: v1.12.6
matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_registry_prefix }}element-hq/element-web:{{ matrix_client_element_version }}"
matrix_client_element_docker_image_registry_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_client_element_docker_image_registry_prefix_upstream }}"

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item }}`) for using FluffyChat Web.
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_client_fluffychat_container_network
@@ -27,7 +27,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_client_fluffychat_container_labels_traefik_hostname
- matrix_client_fluffychat_container_labels_traefik_path_prefix

View File

@@ -30,7 +30,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_client_hydrogen_container_labels_traefik_hostname
- matrix_client_hydrogen_container_labels_traefik_path_prefix

View File

@@ -20,7 +20,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item }}`) for using SchildiChat Web.
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_client_schildichat_default_hs_url
- matrix_client_schildichat_container_network
@@ -39,7 +39,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_client_schildichat_container_labels_traefik_hostname
- matrix_client_schildichat_container_labels_traefik_path_prefix

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) for using matrix-corporal.
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_corporal_container_network"
- "matrix_corporal_matrix_homeserver_api_endpoint"

View File

@@ -39,7 +39,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_dimension_container_labels_traefik_hostname
- matrix_dimension_container_labels_traefik_path_prefix

View File

@@ -11,7 +11,7 @@
matrix_element_admin_enabled: true
# renovate: datasource=docker depName=oci.element.io/element-admin
matrix_element_admin_version: 0.1.8
matrix_element_admin_version: 0.1.9
matrix_element_admin_scheme: https

View File

@@ -21,7 +21,7 @@ matrix_element_call_enabled: false
matrix_rtc_enabled: "{{ matrix_element_call_enabled }}"
# renovate: datasource=docker depName=ghcr.io/element-hq/element-call
matrix_element_call_version: v0.16.1
matrix_element_call_version: v0.16.3
matrix_element_call_scheme: https

View File

@@ -17,7 +17,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | string | length == 0"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_element_call_container_network', when: true}
- {'name': 'matrix_element_call_hostname', when: true}

View File

@@ -11,7 +11,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_ldap_registration_proxy_hostname"
- "matrix_ldap_registration_proxy_ldap_uri"

View File

@@ -25,7 +25,7 @@ matrix_livekit_jwt_service_container_additional_networks_auto: []
matrix_livekit_jwt_service_container_additional_networks_custom: []
# renovate: datasource=docker depName=ghcr.io/element-hq/lk-jwt-service
matrix_livekit_jwt_service_version: 0.3.0
matrix_livekit_jwt_service_version: 0.4.0
matrix_livekit_jwt_service_container_image_self_build: false
matrix_livekit_jwt_service_container_repo: "https://github.com/element-hq/lk-jwt-service.git"
@@ -68,8 +68,15 @@ matrix_livekit_jwt_service_container_labels_additional_labels: ''
# A list of extra arguments to pass to the container
matrix_livekit_jwt_service_container_extra_arguments: []
# Controls the LK_JWT_PORT environment variable
matrix_livekit_jwt_service_environment_variable_livekit_jwt_port: 8080
# Controls the port that the service listens on internally in the container.
# This is still used for Traefik configuration and container port binding.
matrix_livekit_jwt_service_container_port: 8080
# Controls the LIVEKIT_JWT_BIND environment variable.
# This is the preferred method in v0.4.0+, replacing the deprecated LIVEKIT_JWT_PORT.
# Format: "host:port" or ":port" (to bind to all interfaces).
# The default ":8080" binds to all interfaces on port 8080.
matrix_livekit_jwt_service_environment_variable_livekit_jwt_bind: ":{{ matrix_livekit_jwt_service_container_port }}"
# Controls the LIVEKIT_KEY environment variable
matrix_livekit_jwt_service_environment_variable_livekit_key: ""

View File

@@ -8,7 +8,7 @@
- tags:
- setup-all
- setup-jwt-service
- setup-livekit-jwt-service
- install-all
- install-livekit-jwt-service
block:

View File

@@ -6,11 +6,20 @@
---
- name: (Deprecation) Catch and report renamed LiveKit JWT Service settings
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_livekit_jwt_service_environment_variable_livekit_jwt_port', 'new': 'matrix_livekit_jwt_service_container_port'}
- name: Fail if required LiveKit JWT Service settings are not defined
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | string | length == 0"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_livekit_jwt_service_hostname', when: true}
- {'name': 'matrix_livekit_jwt_service_container_network', when: true}

View File

@@ -5,7 +5,7 @@ SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
#}
LIVEKIT_JWT_PORT={{ matrix_livekit_jwt_service_environment_variable_livekit_jwt_port | int | to_json }}
LIVEKIT_JWT_BIND={{ matrix_livekit_jwt_service_environment_variable_livekit_jwt_bind }}
LIVEKIT_KEY={{ matrix_livekit_jwt_service_environment_variable_livekit_key }}
LIVEKIT_URL={{ matrix_livekit_jwt_service_environment_variable_livekit_url }}

View File

@@ -10,7 +10,7 @@ traefik.enable=true
traefik.docker.network={{ matrix_livekit_jwt_service_container_labels_traefik_docker_network }}
traefik.http.services.matrix-livekit-jwt-service.loadbalancer.server.port={{ matrix_livekit_jwt_service_environment_variable_livekit_jwt_port }}
traefik.http.services.matrix-livekit-jwt-service.loadbalancer.server.port={{ matrix_livekit_jwt_service_container_port }}
{% set middlewares = [] %}

View File

@@ -20,7 +20,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--cap-drop=ALL \
--network={{ matrix_livekit_jwt_service_container_network }} \
{% if matrix_livekit_jwt_service_container_http_host_bind_port %}
-p {{ matrix_livekit_jwt_service_container_http_host_bind_port }}:{{ matrix_livekit_jwt_service_environment_variable_livekit_jwt_port }} \
-p {{ matrix_livekit_jwt_service_container_http_host_bind_port }}:{{ matrix_livekit_jwt_service_container_port }} \
{% endif %}
--env-file={{ matrix_livekit_jwt_service_base_path }}/env \
--label-file={{ matrix_livekit_jwt_service_base_path }}/labels \

View File

@@ -0,0 +1,178 @@
# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi
# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev
# SPDX-FileCopyrightText: 2024 Sergio Durigan Junior
# SPDX-FileCopyrightText: 2025 MASH project contributors
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
# Project source code URL: https://app.radicle.xyz/nodes/seed.radicle.garden/rad%3Az3Re1EQbd186vUQDwHByYiLadsVWY
matrix_matrixto_enabled: true
matrix_matrixto_identifier: matrix-matrixto
matrix_matrixto_base_path: "/{{ matrix_matrixto_identifier }}"
matrix_matrixto_version: 1.2.17-1
matrix_matrixto_scheme: https
# The hostname at which Matrix.to is served.
matrix_matrixto_hostname: ""
# The path at which Matrix.to is exposed.
# This value must either be `/` or not end with a slash (e.g. `/matrixto`).
#
# Hosting Matrix.to under a subpath does not seem to be possible due to Matrix.to's
# technical limitations.
matrix_matrixto_path_prefix: /
matrix_matrixto_container_image: "{{ matrix_matrixto_container_image_registry_prefix }}shirahara/matrixto:{{ matrix_matrixto_container_image_tag }}"
matrix_matrixto_container_image_tag: "{{ matrix_matrixto_version }}"
matrix_matrixto_container_image_registry_prefix: "{{ matrix_matrixto_container_image_registry_prefix_upstream }}"
matrix_matrixto_container_image_registry_prefix_upstream: "{{ matrix_matrixto_container_image_registry_prefix_upstream_default }}"
matrix_matrixto_container_image_registry_prefix_upstream_default: ""
matrix_matrixto_container_image_force_pull: "{{ matrix_matrixto_container_image.endswith(':latest') }}"
matrix_matrixto_container_image_self_build: true
matrix_matrixto_container_image_self_build_name: "shirahara/matrixto:{{ matrix_matrixto_container_image_self_build_repo_version }}"
matrix_matrixto_container_image_self_build_repo: "https://seed.radicle.garden/z3Re1EQbd186vUQDwHByYiLadsVWY.git"
matrix_matrixto_container_image_self_build_repo_version: "{{ matrix_matrixto_version if matrix_matrixto_version != 'latest' else 'main' }}"
matrix_matrixto_container_image_self_build_src_files_path: "{{ matrix_matrixto_base_path }}/docker-src"
# Controls whether the container exposes its HTTP port (tcp/8080 in the container).
#
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:2586"), or empty string to not expose.
matrix_matrixto_container_http_host_bind_port: ""
# The base container network. It will be auto-created by this role if it doesn't exist already.
matrix_matrixto_container_network: "{{ matrix_matrixto_identifier }}"
# The port number in the container
matrix_matrixto_container_http_port: 5000
# A list of additional container networks that the container would be connected to.
# The role does not create these networks, so make sure they already exist.
# Use this to expose this container to another reverse proxy, which runs in a different container network.
matrix_matrixto_container_additional_networks: "{{ matrix_matrixto_container_additional_networks_auto + matrix_matrixto_container_additional_networks_custom }}"
matrix_matrixto_container_additional_networks_auto: []
matrix_matrixto_container_additional_networks_custom: []
# A list of additional "volumes" to mount in the container.
# This list gets populated dynamically at runtime. You can provide a different default value,
# if you wish to mount your own files into the container.
# Contains definition objects like this: `{"type": "bind", "src": "/outside", "dst": "/inside", "options": "readonly"}.
# See the `--mount` documentation for the `docker run` command.
matrix_matrixto_container_additional_volumes: "{{ matrix_matrixto_container_additional_volumes_auto + matrix_matrixto_container_additional_volumes_custom }}"
matrix_matrixto_container_additional_volumes_auto: []
matrix_matrixto_container_additional_volumes_custom: []
# matrix_matrixto_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details.
#
# To inject your own other container labels, see `matrix_matrixto_container_labels_additional_labels`.
matrix_matrixto_container_labels_traefik_enabled: true
matrix_matrixto_container_labels_traefik_docker_network: "{{ matrix_matrixto_container_network }}"
matrix_matrixto_container_labels_traefik_hostname: "{{ matrix_matrixto_hostname }}"
# The path prefix must either be `/` or not end with a slash (e.g. `/matrixto`).
matrix_matrixto_container_labels_traefik_path_prefix: "{{ matrix_matrixto_path_prefix }}"
matrix_matrixto_container_labels_traefik_rule: "Host(`{{ matrix_matrixto_container_labels_traefik_hostname }}`){% if matrix_matrixto_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_matrixto_container_labels_traefik_path_prefix }}`){% endif %}"
matrix_matrixto_container_labels_traefik_priority: 0
matrix_matrixto_container_labels_traefik_entrypoints: web-secure
matrix_matrixto_container_labels_traefik_tls: "{{ matrix_matrixto_container_labels_traefik_entrypoints != 'web' }}"
matrix_matrixto_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls which additional headers to attach to all HTTP requests.
# To add your own custom request headers, use `matrix_matrixto_container_labels_traefik_additional_request_headers_custom`
matrix_matrixto_container_labels_traefik_additional_request_headers: "{{ matrix_matrixto_container_labels_traefik_additional_request_headers_auto | combine(matrix_matrixto_container_labels_traefik_additional_request_headers_custom) }}"
matrix_matrixto_container_labels_traefik_additional_request_headers_auto: {}
matrix_matrixto_container_labels_traefik_additional_request_headers_custom: {}
# Controls which additional headers to attach to all HTTP responses.
# To add your own custom response headers, use `matrix_matrixto_container_labels_traefik_additional_response_headers_custom`
matrix_matrixto_container_labels_traefik_additional_response_headers: "{{ matrix_matrixto_container_labels_traefik_additional_response_headers_auto | combine(matrix_matrixto_container_labels_traefik_additional_response_headers_custom) }}"
matrix_matrixto_container_labels_traefik_additional_response_headers_auto: |
{{
{}
| combine ({'X-XSS-Protection': matrix_matrixto_http_header_xss_protection} if matrix_matrixto_http_header_xss_protection else {})
| combine ({'X-Content-Type-Options': matrix_matrixto_http_header_content_type_options} if matrix_matrixto_http_header_content_type_options else {})
| combine ({'Content-Security-Policy': matrix_matrixto_http_header_content_security_policy} if matrix_matrixto_http_header_content_security_policy else {})
| combine ({'Permissions-Policy': matrix_matrixto_http_header_permissions_policy} if matrix_matrixto_http_header_permissions_policy else {})
| combine ({'Strict-Transport-Security': matrix_matrixto_http_header_strict_transport_security} if matrix_matrixto_http_header_strict_transport_security and matrix_matrixto_container_labels_traefik_tls else {})
}}
matrix_matrixto_container_labels_traefik_additional_response_headers_custom: {}
# matrix_matrixto_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# See `../templates/labels.j2` for details.
#
# Example:
# matrix_matrixto_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_matrixto_container_labels_additional_labels: ""
# A list of extra arguments to pass to the container (`docker run` command)
matrix_matrixto_container_extra_arguments: []
# Specifies the value of the `X-XSS-Protection` header
# Stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.
#
# Learn more about it is here:
# - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
# - https://portswigger.net/web-security/cross-site-scripting/reflected
matrix_matrixto_http_header_xss_protection: "1; mode=block"
# Specifies the value of the `X-Content-Type-Options` header.
# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
matrix_matrixto_http_header_content_type_options: nosniff
# Specifies the value of the `Content-Security-Policy` header.
# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
matrix_matrixto_http_header_content_security_policy: frame-ancestors 'self'
# Specifies the value of the `Permissions-Policy` header.
# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Permissions-Policy
matrix_matrixto_http_header_permissions_policy: "{{ 'interest-cohort=()' if matrix_matrixto_floc_optout_enabled else '' }}"
# Specifies the value of the `Strict-Transport-Security` header.
# See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
matrix_matrixto_http_header_strict_transport_security: "max-age=31536000; includeSubDomains{{ '; preload' if matrix_matrixto_hsts_preload_enabled else '' }}"
# Controls whether to send a "Permissions-Policy interest-cohort=();" header along with all responses
#
# Learn more about what it is here:
# - https://www.eff.org/deeplinks/2021/03/googles-floc-terrible-idea
# - https://paramdeo.com/blog/opting-your-website-out-of-googles-floc-network
# - https://amifloced.org/
#
# Of course, a better solution is to just stop using browsers (like Chrome), which participate in such tracking practices.
# See: `matrix_matrixto_http_header_permissions_policy`
matrix_matrixto_floc_optout_enabled: true
# Controls if HSTS preloading is enabled
#
# In its strongest and recommended form, the [HSTS policy](https://www.chromium.org/hsts) includes all subdomains, and
# indicates a willingness to be "preloaded" into browsers:
# `Strict-Transport-Security: max-age=31536000; includeSubDomains; preload`
# For more information visit:
# - https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
# - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
# - https://hstspreload.org/#opt-in
# See: `matrix_matrixto_http_header_strict_transport_security`
matrix_matrixto_hsts_preload_enabled: false
# List of systemd services that the Matrix.to systemd service depends on
matrix_matrixto_systemd_required_services_list: "{{ matrix_matrixto_systemd_required_services_list_default + matrix_matrixto_systemd_required_services_list_auto + matrix_matrixto_systemd_required_services_list_custom }}"
matrix_matrixto_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_matrixto_systemd_required_services_list_auto: []
matrix_matrixto_systemd_required_services_list_custom: []
# List of systemd services that the Matrix.to systemd service wants
matrix_matrixto_systemd_wanted_services_list: "{{ matrix_matrixto_systemd_wanted_services_list_default + matrix_matrixto_systemd_wanted_services_list_auto + matrix_matrixto_systemd_wanted_services_list_custom }}"
matrix_matrixto_systemd_wanted_services_list_default: []
matrix_matrixto_systemd_wanted_services_list_auto: []
matrix_matrixto_systemd_wanted_services_list_custom: []
# Additional environment variables.
matrix_matrixto_environment_variables_additional_variables: ""

View File

@@ -0,0 +1,100 @@
# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Ensure Matrix.to path exists
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: "0750"
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- "{{ matrix_matrixto_base_path }}"
- name: Ensure Matrix.to support files installed
ansible.builtin.template:
src: "{{ role_path }}/templates/{{ item }}.j2"
dest: "{{ matrix_matrixto_base_path }}/{{ item }}"
mode: "0640"
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- env
- labels
- name: Run if self-building of Matrix.to container image is not enabled
when: "not matrix_matrixto_container_image_self_build | bool"
block:
- name: Ensure Matrix.to container image is pulled via community.docker.docker_image
when: devture_systemd_docker_base_container_image_pull_method == 'ansible-module'
community.docker.docker_image:
name: "{{ matrix_matrixto_container_image }}"
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
force_source: "{{ matrix_matrixto_container_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_matrixto_container_image_force_pull }}"
register: result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: result is not failed
- name: Ensure Matrix.to container image is pulled via ansible.builtin.command
when: devture_systemd_docker_base_container_image_pull_method == 'command'
ansible.builtin.command:
cmd: "{{ devture_systemd_docker_base_host_command_docker }} pull {{ matrix_matrixto_container_image }}"
register: result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: result is not failed
changed_when: "'Downloaded newer image' in result.stdout"
- name: Run if self-building of Matrix.to container image is enabled
when: "matrix_matrixto_container_image_self_build | bool"
block:
- name: Ensure Matrix.to repository is present on self-build
ansible.builtin.git:
repo: "{{ matrix_matrixto_container_image_self_build_repo }}"
version: "{{ matrix_matrixto_container_image_self_build_repo_version }}"
dest: "{{ matrix_matrixto_container_image_self_build_src_files_path }}"
force: "yes"
register: matrix_matrixto_git_pull_results
- name: Ensure Matrix.to container image is built
community.docker.docker_image:
name: "{{ matrix_matrixto_container_image_self_build_name }}"
source: build
force_source: "{{ matrix_matrixto_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_matrixto_git_pull_results.changed }}"
build:
dockerfile: Dockerfile
path: "{{ matrix_matrixto_container_image_self_build_src_files_path }}"
pull: true
args:
- name: Ensure Matrix.to container network is created via community.docker.docker_network
when: devture_systemd_docker_base_container_network_creation_method == 'ansible-module'
community.docker.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_matrixto_container_network }}"
driver: bridge
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
- name: Ensure Matrix.to container network is created via ansible.builtin.command
when: devture_systemd_docker_base_container_network_creation_method == 'command'
ansible.builtin.command:
cmd: >-
{{ devture_systemd_docker_base_host_command_docker }} network create
{% if devture_systemd_docker_base_ipv6_enabled %}--ipv6{% endif %}
{{ devture_systemd_docker_base_container_networks_driver_options_string }}
{{ matrix_matrixto_container_network }}
register: network_creation_result
changed_when: network_creation_result.rc == 0
failed_when: network_creation_result.rc != 0 and 'already exists' not in network_creation_result.stderr
- name: Ensure Matrix.to systemd service is present
ansible.builtin.template:
src: "{{ role_path }}/templates/systemd/matrix-matrixto.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/{{ matrix_matrixto_identifier }}.service"
mode: "0644"

View File

@@ -0,0 +1,27 @@
# SPDX-FileCopyrightText: 2023 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Perform Matrix.to installation tasks
when: matrix_matrixto_enabled | bool
tags:
- setup-all
- setup-matrixto
- install-all
- install-matrixto
block:
- name: Validate Matrix.to configuration
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
- name: Install Matrix.to
ansible.builtin.include_tasks: "{{ role_path }}/tasks/install.yml"
- name: Perform Matrix.to uninstallation tasks
when: not matrix_matrixto_enabled | bool
tags:
- setup-all
- setup-matrixto
block:
- name: Uninstall Matrix.to
ansible.builtin.include_tasks: "{{ role_path }}/tasks/uninstall.yml"

View File

@@ -0,0 +1,45 @@
# SPDX-FileCopyrightText: 2023 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Check existence of Matrix.to systemd service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/{{ matrix_matrixto_identifier }}.service"
register: matrix_matrixto_service_stat
- name: Uninstall Matrix.to systemd services and files
when: matrix_matrixto_service_stat.stat.exists | bool
block:
- name: Ensure Matrix.to systemd service is stopped
ansible.builtin.service:
name: "{{ matrix_matrixto_identifier }}"
state: stopped
enabled: false
daemon_reload: true
- name: Ensure Matrix.to systemd service does not exist
ansible.builtin.file:
path: "{{ devture_systemd_docker_base_systemd_path }}/{{ matrix_matrixto_identifier }}.service"
state: absent
- name: Ensure Matrix.to container network does not exist via community.docker.docker_network
when: devture_systemd_docker_base_container_network_creation_method == 'ansible-module'
community.docker.docker_network:
name: "{{ matrix_matrixto_container_network }}"
state: absent
- name: Ensure Matrix.to container network does not exist via ansible.builtin.command
when: devture_systemd_docker_base_container_network_creation_method == 'command'
ansible.builtin.command:
cmd: >-
{{ devture_systemd_docker_base_host_command_docker }} network rm
{{ matrix_matrixto_container_network }}
register: network_deletion_result
changed_when: matrix_matrixto_container_network in network_deletion_result.stdout
- name: Ensure Matrix.to path does not exist
ansible.builtin.file:
path: "{{ matrix_matrixto_base_path }}"
state: absent

View File

@@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: 2023 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Fail if required Matrix.to settings not defined
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "lookup('vars', item, default='') | string | length == 0"
with_items:
- matrix_matrixto_hostname
- matrix_matrixto_path_prefix
- matrix_matrixto_container_network
- name: Run if Traefik is enabled
when: matrix_matrixto_container_labels_traefik_enabled | bool
block:
- name: Fail if Traefik settings required for Matrix.to are not defined
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "lookup('vars', item, default='') | string | length == 0"
with_items:
- matrix_matrixto_container_labels_traefik_hostname
- matrix_matrixto_container_labels_traefik_path_prefix
- name: Fail if matrix_matrixto_container_labels_traefik_path_prefix is different than /
ansible.builtin.fail:
msg: >-
matrix_matrixto_container_labels_traefik_path_prefix (`{{ matrix_matrixto_container_labels_traefik_path_prefix }}`) must be `/`.
Matrix.to does not support hosting under a subpath yet.
when: "matrix_matrixto_container_labels_traefik_path_prefix != '/'"
# We ensure it doesn't end with a slash, because we handle both (slash and no-slash).
# Knowing that `matrix_matrixto_container_labels_traefik_path_prefix` does not end with a slash
# ensures we know how to set these routes up without having to do "does it end with a slash" checks elsewhere.
- name: Fail if matrix_matrixto_container_labels_traefik_path_prefix ends with a slash
ansible.builtin.fail:
msg: >-
matrix_matrixto_container_labels_traefik_path_prefix (`{{ matrix_matrixto_container_labels_traefik_path_prefix }}`) must either be `/` or not end with a slash (e.g. `/matrixto`).
when: "matrix_matrixto_container_labels_traefik_path_prefix != '/' and matrix_matrixto_container_labels_traefik_path_prefix[-1] == '/'"

View File

@@ -0,0 +1,7 @@
{#
SPDX-FileCopyrightText: 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{{ matrix_matrixto_environment_variables_additional_variables }}

View File

@@ -0,0 +1,59 @@
{#
SPDX-FileCopyrightText: 2023 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{% if matrix_matrixto_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_matrixto_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_matrixto_container_labels_traefik_docker_network }}
{% endif %}
{% set middlewares = [] %}
{% if matrix_matrixto_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.{{ matrix_matrixto_identifier }}-slashless-redirect.redirectregex.regex=^({{ matrix_matrixto_container_labels_traefik_path_prefix | quote }})$
traefik.http.middlewares.{{ matrix_matrixto_identifier }}-slashless-redirect.redirectregex.replacement=${1}/
{% set middlewares = middlewares + [matrix_matrixto_identifier + '-slashless-redirect'] %}
{% endif %}
{% if matrix_matrixto_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.{{ matrix_matrixto_identifier }}-strip-prefix.stripprefix.prefixes={{ matrix_matrixto_container_labels_traefik_path_prefix }}
{% set middlewares = middlewares + [matrix_matrixto_identifier + '-strip-prefix'] %}
{% endif %}
{% if matrix_matrixto_container_labels_traefik_additional_request_headers.keys() | length > 0 %}
{% for name, value in matrix_matrixto_container_labels_traefik_additional_request_headers.items() %}
traefik.http.middlewares.{{ matrix_matrixto_identifier }}-add-request-headers.headers.customrequestheaders.{{ name }}={{ value }}
{% endfor %}
{% set middlewares = middlewares + [matrix_matrixto_identifier + '-add-request-headers'] %}
{% endif %}
{% if matrix_matrixto_container_labels_traefik_additional_response_headers.keys() | length > 0 %}
{% for name, value in matrix_matrixto_container_labels_traefik_additional_response_headers.items() %}
traefik.http.middlewares.{{ matrix_matrixto_identifier }}-add-response-headers.headers.customresponseheaders.{{ name }}={{ value }}
{% endfor %}
{% set middlewares = middlewares + [matrix_matrixto_identifier + '-add-response-headers'] %}
{% endif %}
traefik.http.routers.{{ matrix_matrixto_identifier }}.rule={{ matrix_matrixto_container_labels_traefik_rule }}
{% if matrix_matrixto_container_labels_traefik_priority | int > 0 %}
traefik.http.routers.{{ matrix_matrixto_identifier }}.priority={{ matrix_matrixto_container_labels_traefik_priority }}
{% endif %}
traefik.http.routers.{{ matrix_matrixto_identifier }}.service={{ matrix_matrixto_identifier }}
{% if middlewares | length > 0 %}
traefik.http.routers.{{ matrix_matrixto_identifier }}.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.{{ matrix_matrixto_identifier }}.entrypoints={{ matrix_matrixto_container_labels_traefik_entrypoints }}
traefik.http.routers.{{ matrix_matrixto_identifier }}.tls={{ matrix_matrixto_container_labels_traefik_tls | to_json }}
{% if matrix_matrixto_container_labels_traefik_tls %}
traefik.http.routers.{{ matrix_matrixto_identifier }}.tls.certResolver={{ matrix_matrixto_container_labels_traefik_tls_certResolver }}
{% endif %}
traefik.http.services.{{ matrix_matrixto_identifier }}.loadbalancer.server.port={{ matrix_matrixto_container_http_port }}
{% endif %}
{{ matrix_matrixto_container_labels_additional_labels }}

View File

@@ -0,0 +1,59 @@
{#
SPDX-FileCopyrightText: 2023 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 Nikita Chernyi
SPDX-FileCopyrightText: 2025 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
#}
[Unit]
Description=Matrix.to ({{ matrix_matrixto_identifier }})
{% for service in matrix_matrixto_systemd_required_services_list %}
Requires={{ service }}
After={{ service }}
{% endfor %}
{% for service in matrix_matrixto_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_matrixto_identifier }} 2>/dev/null || true'
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_matrixto_identifier }} 2>/dev/null || true'
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--rm \
--name={{ matrix_matrixto_identifier }} \
--log-driver=none \
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
--cap-drop=ALL \
--read-only \
--network={{ matrix_matrixto_container_network }} \
{% if matrix_matrixto_container_http_host_bind_port %}
-p {{ matrix_matrixto_container_http_host_bind_port }}:{{ matrix_matrixto_container_http_port }} \
{% endif %}
--env-file={{ matrix_matrixto_base_path }}/env \
--label-file={{ matrix_matrixto_base_path }}/labels \
--tmpfs=/tmp:rw,noexec,nosuid,size=128m \
{% for arg in matrix_matrixto_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_matrixto_container_image_self_build_name if matrix_matrixto_container_image_self_build else matrix_matrixto_container_image }}
{% for network in matrix_matrixto_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} {{ matrix_matrixto_identifier }}
{% endfor %}
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach {{ matrix_matrixto_identifier }}
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_matrixto_identifier }} 2>/dev/null || true'
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm {{ matrix_matrixto_identifier }} 2>/dev/null || true'
Restart=always
RestartSec=30
SyslogIdentifier={{ matrix_matrixto_identifier }}
[Install]
WantedBy=multi-user.target

View File

@@ -9,7 +9,7 @@
msg: "The `{{ item }}` variable must be defined and have a non-null value."
with_items:
- "matrix_pantalaimon_homeserver_url"
when: "vars[item] == '' or vars[item] is none"
when: "lookup('vars', item, default='') == '' or lookup('vars', item, default='') is none"
- name: (Deprecation) Catch and report renamed Pantalaimon variables
ansible.builtin.fail:

View File

@@ -24,7 +24,7 @@ matrix_rageshake_path_prefix: /
# There are no stable container image tags yet.
# See: https://github.com/matrix-org/rageshake/issues/69
# renovate: datasource=docker depName=ghcr.io/matrix-org/rageshake
matrix_rageshake_version: 1.17.0
matrix_rageshake_version: 1.17.1
matrix_rageshake_base_path: "{{ matrix_base_data_path }}/rageshake"
matrix_rageshake_config_path: "{{ matrix_rageshake_base_path }}/config"

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_rageshake_hostname
- matrix_rageshake_path_prefix
@@ -29,7 +29,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_rageshake_container_labels_traefik_hostname
- matrix_rageshake_container_labels_traefik_path_prefix

View File

@@ -13,7 +13,7 @@ matrix_static_files_enabled: true
matrix_static_files_identifier: matrix-static-files
# renovate: datasource=docker depName=joseluisq/static-web-server
matrix_static_files_version: 2.39.0
matrix_static_files_version: 2.40.1
matrix_static_files_base_path: "{{ matrix_base_data_path }}/{{ 'static-files' if matrix_static_files_identifier == 'matrix-static-files' else matrix_static_files_identifier }}"
matrix_static_files_config_path: "{{ matrix_static_files_base_path }}/config"

View File

@@ -8,7 +8,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | string | length == 0"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_static_files_container_labels_well_known_matrix_endpoint_traefik_hostname', when: "{{ matrix_static_files_container_labels_well_known_matrix_endpoint_enabled }}"}
- {'name': 'matrix_static_files_container_labels_well_known_matrix_endpoint_traefik_path_prefix', when: "{{ matrix_static_files_container_labels_well_known_matrix_endpoint_enabled }}"}

View File

@@ -29,7 +29,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
{% endif %}
--env-file={{ matrix_static_files_base_path }}/env \
--label-file={{ matrix_static_files_base_path }}/labels \
--mount type=bind,src={{ matrix_static_files_public_path }},dst=/public,ro \
--mount type=bind,src={{ matrix_static_files_public_path }},dst=/var/public,ro \
--mount type=bind,src={{ matrix_static_files_config_path }},dst=/config,ro \
{{ matrix_static_files_container_image }}

View File

@@ -22,7 +22,7 @@ matrix_sygnal_hostname: ''
matrix_sygnal_path_prefix: /
# renovate: datasource=docker depName=matrixdotorg/sygnal
matrix_sygnal_version: v0.15.1
matrix_sygnal_version: v0.17.0
matrix_sygnal_base_path: "{{ matrix_base_data_path }}/sygnal"
matrix_sygnal_config_path: "{{ matrix_sygnal_base_path }}/config"

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_sygnal_hostname
- matrix_sygnal_path_prefix
@@ -21,7 +21,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_sygnal_container_labels_traefik_hostname
- matrix_sygnal_container_labels_traefik_path_prefix

View File

@@ -25,7 +25,7 @@ matrix_synapse_admin_container_image_self_build: false
matrix_synapse_admin_container_image_self_build_repo: "https://github.com/etkecc/synapse-admin.git"
# renovate: datasource=docker depName=ghcr.io/etkecc/synapse-admin
matrix_synapse_admin_version: v0.11.1-etke49
matrix_synapse_admin_version: v0.11.1-etke50
matrix_synapse_admin_docker_image: "{{ matrix_synapse_admin_docker_image_registry_prefix }}etkecc/synapse-admin:{{ matrix_synapse_admin_version }}"
matrix_synapse_admin_docker_image_registry_prefix: "{{ 'localhost/' if matrix_synapse_admin_container_image_self_build else matrix_synapse_admin_docker_image_registry_prefix_upstream }}"
matrix_synapse_admin_docker_image_registry_prefix_upstream: "{{ matrix_synapse_admin_docker_image_registry_prefix_upstream_default }}"

View File

@@ -26,7 +26,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_synapse_admin_container_labels_traefik_hostname
- matrix_synapse_admin_container_labels_traefik_path_prefix

View File

@@ -20,7 +20,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item }}`).
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_synapse_auto_compressor_database_hostname
- matrix_synapse_auto_compressor_database_password

View File

@@ -24,7 +24,7 @@
matrix_synapse_reverse_proxy_companion_enabled: true
# renovate: datasource=docker depName=nginx
matrix_synapse_reverse_proxy_companion_version: 1.29.3-alpine
matrix_synapse_reverse_proxy_companion_version: 1.29.4-alpine
matrix_synapse_reverse_proxy_companion_base_path: "{{ matrix_synapse_base_path }}/reverse-proxy-companion"
matrix_synapse_reverse_proxy_companion_confd_path: "{{ matrix_synapse_reverse_proxy_companion_base_path }}/conf.d"

View File

@@ -16,7 +16,7 @@ matrix_synapse_enabled: true
matrix_synapse_github_org_and_repo: element-hq/synapse
# renovate: datasource=docker depName=ghcr.io/element-hq/synapse
matrix_synapse_version: v1.141.0
matrix_synapse_version: v1.144.0
matrix_synapse_username: ''
matrix_synapse_uid: ''
@@ -675,7 +675,7 @@ matrix_synapse_caches_sync_response_cache_duration: "2m"
# Controls how much memory this role thinks is available for cache-size-related calculations.
# By default, all of the server's memory is taken into account, but you can adjust this.
# You can also go for directly adjusting cache-sizes (matrix_synapse_cache_autotuning_max_cache_memory_usage, matrix_synapse_cache_autotuning_target_cache_memory_usage) instead of adjusting this.
matrix_synapse_cache_size_calculations_memtotal_bytes: "{{ (ansible_memtotal_mb * 1024 * 1024) | int }}"
matrix_synapse_cache_size_calculations_memtotal_bytes: "{{ (ansible_facts['memtotal_mb'] * 1024 * 1024) | int }}"
# Controls the cap to use for matrix_synapse_cache_autotuning_max_cache_memory_usage.
matrix_synapse_cache_size_calculations_max_cache_memory_usage_cap_bytes: "{{ (2 * 1024 * 1024 * 1024) }}" # 2GB

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) for using s3-storage-provider.
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_synapse_ext_synapse_s3_storage_provider_config_bucket"
- "matrix_synapse_ext_synapse_s3_storage_provider_config_region_name"
@@ -19,7 +19,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) for using s3-storage-provider.
when: "not matrix_synapse_ext_synapse_s3_storage_provider_config_ec2_instance_profile | bool and vars[item] == ''"
when: "not matrix_synapse_ext_synapse_s3_storage_provider_config_ec2_instance_profile | bool and lookup('vars', item, default='') == ''"
with_items:
- "matrix_synapse_ext_synapse_s3_storage_provider_config_access_key_id"
- "matrix_synapse_ext_synapse_s3_storage_provider_config_secret_access_key"

View File

@@ -8,7 +8,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) for using synapse-http-antispam.
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_synapse_ext_synapse_http_antispam_enabled"
- "matrix_synapse_ext_synapse_http_antispam_config_base_url"

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | string | length == 0"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_synapse_username', when: true}
- {'name': 'matrix_synapse_uid', when: true}
@@ -48,7 +48,7 @@
ansible.builtin.fail:
msg: >-
`{{ item }}` cannot be more than 1. This is a single-instance worker.
when: "vars[item] | int > 1"
when: "lookup('vars', item, default='') | int > 1"
with_items:
- "matrix_synapse_workers_appservice_workers_count"
- "matrix_synapse_workers_user_dir_workers_count"
@@ -138,7 +138,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) when enabling `matrix_synapse_container_image_customizations_templates_enabled`.
when: "vars[item] == ''"
when: "lookup('vars', item, default='') == ''"
with_items:
- matrix_synapse_container_image_customizations_templates_git_repository_url
- matrix_synapse_container_image_customizations_templates_git_repository_branch
@@ -147,7 +147,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`) when enabling `matrix_synapse_container_image_customizations_templates_git_repository_keyscan`.
when: "matrix_synapse_container_image_customizations_templates_git_repository_keyscan_enabled | bool and vars[item] == ''"
when: "matrix_synapse_container_image_customizations_templates_git_repository_keyscan_enabled | bool and lookup('vars', item, default='') == ''"
with_items:
- matrix_synapse_container_image_customizations_templates_git_repository_keyscan_hostname
@@ -166,7 +166,7 @@
- name: Fail if known Synapse password provider modules are enabled when auth is delegated to Matrix Authentication Service
ansible.builtin.fail:
msg: "When Synapse is delegating authentication to Matrix Authentication Service (`matrix_synapse_matrix_authentication_service_enabled: true`), it does not make sense to enable password provider modules, because it is not Synapse that is handling authentication. Please disable {{ item }} before enabling Matrix Authentication Service integration for Synapse. Synapse will refuse to start otherwise."
when: matrix_synapse_matrix_authentication_service_enabled and vars[item] | bool
when: matrix_synapse_matrix_authentication_service_enabled and lookup('vars', item, default='') | bool
with_items:
- matrix_synapse_ext_password_provider_rest_auth_enabled
- matrix_synapse_ext_password_provider_shared_secret_auth_enabled

View File

@@ -55,7 +55,7 @@ matrix_playbook_migration_matrix_postmoogle_migration_validation_enabled: true
# - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2999
# - https://github.com/geerlingguy/ansible-role-docker/pull/410
matrix_playbook_migration_debian_signedby_migration_enabled: true
matrix_playbook_migration_debian_signedby_migration_repository_path: "/etc/apt/sources.list.d/download_docker_com_linux_{{ ansible_distribution | lower }}.list"
matrix_playbook_migration_debian_signedby_migration_repository_path: "/etc/apt/sources.list.d/download_docker_com_linux_{{ ansible_facts['distribution'] | lower }}.list"
# Controls if the old apt repository for Docker (`signed-by=/etc/apt/trusted.gpg.d/docker.asc`) will be removed,
# so that the Docker role (7.2.0+) can install a new non-conflicting one (`signed-by=/etc/apt/keyrings/docker.asc`).

View File

@@ -91,6 +91,7 @@
- custom/matrix-bot-draupnir
- custom/matrix-cactus-comments
- custom/matrix-cactus-comments-client
- custom/matrix-matrixto
- custom/matrix-rageshake
- custom/matrix-synapse
- custom/matrix-synapse-auto-compressor