Remove conduwuit (#4913)
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -1,3 +1,13 @@
|
|||||||
|
# 2026-02-11
|
||||||
|
|
||||||
|
## conduwuit has been removed from the playbook
|
||||||
|
|
||||||
|
[conduwuit](./docs/configuring-playbook-conduwuit.md) has been removed from the playbook, as it has been abandoned.
|
||||||
|
|
||||||
|
The playbook will let you know if you're using any `matrix_conduwuit_*` variables. You'll need to remove them from `vars.yml` and potentially [uninstall the service manually](./docs/configuring-playbook-conduwuit.md#uninstalling-the-service-manually).
|
||||||
|
|
||||||
|
Since [Continuwuity](configuring-playbook-continuwuity.md) is a drop-in replacement for conduwuit, migration is possible. Please refer to [this section](./configuring-playbook-continuwuity.md#migrating-from-conduwuit) for details.
|
||||||
|
|
||||||
# 2026-02-09
|
# 2026-02-09
|
||||||
|
|
||||||
## (BC Break) matrix-media-repo datastore IDs are now required in `vars.yml`
|
## (BC Break) matrix-media-repo datastore IDs are now required in `vars.yml`
|
||||||
|
|||||||
@@ -52,8 +52,7 @@ The homeserver is the backbone of your Matrix system. Choose one from the follow
|
|||||||
| ---- | -------- | ----------- | ------------- |
|
| ---- | -------- | ----------- | ------------- |
|
||||||
| [Synapse](https://github.com/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | [Link](docs/configuring-playbook-synapse.md) |
|
| [Synapse](https://github.com/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network | [Link](docs/configuring-playbook-synapse.md) |
|
||||||
| [Conduit](https://conduit.rs) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | [Link](docs/configuring-playbook-conduit.md) |
|
| [Conduit](https://conduit.rs) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements | [Link](docs/configuring-playbook-conduit.md) |
|
||||||
| [conduwuit](https://conduwuit.puppyirl.gay/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. | [Link](docs/configuring-playbook-conduwuit.md) |
|
| [continuwuity](https://continuwuity.org) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. | [Link](docs/configuring-playbook-continuwuity.md) |
|
||||||
| [continuwuity](https://continuwuity.org) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. continuwuity is a continuation of conduwuit. | [Link](docs/configuring-playbook-continuwuity.md) |
|
|
||||||
| [Dendrite](https://github.com/element-hq/dendrite) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) |
|
| [Dendrite](https://github.com/element-hq/dendrite) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. | [Link](docs/configuring-playbook-dendrite.md) |
|
||||||
|
|
||||||
### Clients
|
### Clients
|
||||||
|
|||||||
@@ -13,8 +13,6 @@ See the project's [documentation](https://docs.conduit.rs/) to learn what it doe
|
|||||||
|
|
||||||
By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document.
|
By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document.
|
||||||
|
|
||||||
💡 **Note**: The playbook also supports installing a (currently) faster-moving Conduit fork called [conduwuit](./configuring-playbook-conduwuit.md).
|
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
|
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Conduit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
|
||||||
> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding
|
> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding
|
||||||
|
|||||||
@@ -1,106 +1,45 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
SPDX-FileCopyrightText: 2019 Eduardo Beltrame
|
||||||
SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
SPDX-FileCopyrightText: 2019-2025 Slavi Pantaleev
|
||||||
|
SPDX-FileCopyrightText: 2020 Tulir Asokan
|
||||||
|
SPDX-FileCopyrightText: 2021, 2024 MDAD project contributors
|
||||||
|
SPDX-FileCopyrightText: 2022 Dennis Ciba
|
||||||
|
SPDX-FileCopyrightText: 2022 Vladimir Panteleev
|
||||||
|
SPDX-FileCopyrightText: 2023 Justin Croonenberghs
|
||||||
|
SPDX-FileCopyrightText: 2023 Kuba Orlik
|
||||||
|
SPDX-FileCopyrightText: 2023 Pierre 'McFly' Marty
|
||||||
|
SPDX-FileCopyrightText: 2023 Samuel Meenzen
|
||||||
|
SPDX-FileCopyrightText: 2024 Fabio Bonelli
|
||||||
|
SPDX-FileCopyrightText: 2024-2026 Suguru Hirahara
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# Configuring conduwuit (optional)
|
# Configuring conduwuit (optional, removed)
|
||||||
|
|
||||||
The playbook can install and configure the [conduwuit](https://conduwuit.puppyirl.gay/) Matrix server for you.
|
🪦 The playbook used to be able to install and configure the [conduwuit](https://conduwuit.puppyirl.gay/) Matrix server, but no longer includes this component, as it's been abandoned and unmaintained.
|
||||||
|
|
||||||
See the project's [documentation](https://conduwuit.puppyirl.gay/) to learn what it does and why it might be useful to you.
|
## Uninstalling the service manually
|
||||||
|
|
||||||
By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document.
|
If you still have conduwuit installed on your Matrix server, the playbook can no longer help you uninstall it and you will need to do it manually.
|
||||||
|
|
||||||
💡 **Note**: conduwuit is a fork of [Conduit](./configuring-playbook-conduit.md), which the playbook also supports. See [Differences from upstream Conduit](https://conduwuit.puppyirl.gay/differences.html).
|
To uninstall the service, run the command below on the server:
|
||||||
|
|
||||||
> [!WARNING]
|
```sh
|
||||||
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> conduwuit). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
|
systemctl disable --now matrix-conduwuit.service
|
||||||
> - **Homeserver implementations other than Synapse may not be fully functional**. The playbook may also not assist you in an optimal way (like it does with Synapse). Make yourself familiar with the downsides before proceeding
|
|
||||||
> - **the Conduwuit project appears to have been abandoned**. You may wish to install [Conduit](./configuring-playbook-conduit.md), or one of the Conduwuit successors (like [Continuwuity](configuring-playbook-continuwuity.md))
|
|
||||||
|
|
||||||
## Adjusting the playbook configuration
|
|
||||||
|
|
||||||
To use conduwuit, you **generally** need to adjust the `matrix_homeserver_implementation: synapse` configuration on your `inventory/host_vars/matrix.example.com/vars.yml` file as below:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
matrix_homeserver_implementation: conduwuit
|
|
||||||
|
|
||||||
# Registering users can only happen via the API,
|
|
||||||
# so it makes sense to enable it, at least initially.
|
|
||||||
matrix_conduwuit_config_allow_registration: true
|
|
||||||
|
|
||||||
# Generate a strong registration token to protect the registration endpoint from abuse.
|
|
||||||
# You can create one with a command like `pwgen -s 64 1`.
|
|
||||||
matrix_conduwuit_config_registration_token: ''
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Extending the configuration
|
## Migrating to Continuwuity
|
||||||
|
|
||||||
There are some additional things you may wish to configure about the server.
|
Since [Continuwuity](configuring-playbook-continuwuity.md) is a drop-in replacement for conduwuit, migration is possible. Please refer to [this section](./configuring-playbook-continuwuity.md#migrating-from-conduwuit) for details.
|
||||||
|
|
||||||
Take a look at:
|
## Removing data manually
|
||||||
|
|
||||||
- `roles/custom/matrix-conduwuit/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
|
If you are not going to migrate to [Continuwuity](configuring-playbook-continuwuity.md), you can remove data by running the command on the server:
|
||||||
- `roles/custom/matrix-conduwuit/templates/conduwuit.toml.j2` for the server's default configuration
|
|
||||||
|
|
||||||
There are various Ansible variables that control settings in the `conduwuit.toml` file.
|
```sh
|
||||||
|
rm -rf /matrix/conduwuit
|
||||||
If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://conduwuit.puppyirl.gay/configuration.html#environment-variables) using `matrix_conduwuit_environment_variables_extension`. For example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
matrix_conduwuit_environment_variables_extension: |
|
|
||||||
CONDUWUIT_MAX_REQUEST_SIZE=50000000
|
|
||||||
CONDUWUIT_REQUEST_TIMEOUT=60
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Creating the first user account
|
>[!WARNING]
|
||||||
|
> Once you removing the path, there is no going back. Your data on the homeserver (including chat history, rooms, etc.) will be deleted and not be possible to restore them. Please be certain.
|
||||||
Unlike other homeserver implementations (like Synapse and Dendrite), conduwuit does not support creating users via the command line or via the playbook.
|
|
||||||
|
|
||||||
If you followed the instructions above (see [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)), you should have registration enabled and protected by a registration token.
|
|
||||||
|
|
||||||
This should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users.
|
|
||||||
|
|
||||||
The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**.
|
|
||||||
|
|
||||||
|
|
||||||
## Configuring bridges / appservices
|
|
||||||
|
|
||||||
For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver.
|
|
||||||
|
|
||||||
For conduwuit, you will have to manually register appservices using the [`!admin appservices register` command](https://conduwuit.puppyirl.gay/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account.
|
|
||||||
|
|
||||||
The server's bot account has a Matrix ID of `@conduit:example.com` (not `@conduwuit:example.com`!) due to conduwuit's historical legacy.
|
|
||||||
Your first user account would already have been invited to an admin room with this bot.
|
|
||||||
|
|
||||||
Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`.
|
|
||||||
|
|
||||||
Then, send its content to the existing admin room:
|
|
||||||
|
|
||||||
!admin appservices register
|
|
||||||
|
|
||||||
```
|
|
||||||
as_token: <token>
|
|
||||||
de.sorunome.msc2409.push_ephemeral: true
|
|
||||||
receive_ephemeral: true
|
|
||||||
hs_token: <token>
|
|
||||||
id: signal
|
|
||||||
namespaces:
|
|
||||||
aliases:
|
|
||||||
- exclusive: true
|
|
||||||
regex: ^#signal_.+:example\.org$
|
|
||||||
users:
|
|
||||||
- exclusive: true
|
|
||||||
regex: ^@signal_.+:example\.org$
|
|
||||||
- exclusive: true
|
|
||||||
regex: ^@signalbot:example\.org$
|
|
||||||
rate_limited: false
|
|
||||||
sender_localpart: _bot_signalbot
|
|
||||||
url: http://matrix-mautrix-signal:29328
|
|
||||||
```
|
|
||||||
|
|
||||||
## 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-conduwuit`.
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ See the project's [documentation](https://continuwuity.org) to learn what it doe
|
|||||||
|
|
||||||
By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document.
|
By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document.
|
||||||
|
|
||||||
💡 **Note**: continuwuity is a fork of [conduwuit](./configuring-playbook-conduwuit.md), which the playbook also supports.
|
💡 **Note**: continuwuity is a fork of [conduwuit](./configuring-playbook-conduwuit.md), which the playbook has supported.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Continuwuity). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
|
> - **You can't switch an existing Matrix server's implementation** (e.g. Synapse -> Continuwuity). Proceed below only if you're OK with losing data or you're dealing with a server on a new domain name, which hasn't participated in the Matrix federation yet.
|
||||||
|
|||||||
@@ -51,8 +51,6 @@ For a more custom setup, see the [Other configuration options](#other-configurat
|
|||||||
|
|
||||||
- [Configuring Conduit](configuring-playbook-conduit.md), if you've switched to the [Conduit](https://conduit.rs) homeserver implementation
|
- [Configuring Conduit](configuring-playbook-conduit.md), if you've switched to the [Conduit](https://conduit.rs) homeserver implementation
|
||||||
|
|
||||||
- [Configuring conduwuit](configuring-playbook-conduwuit.md), if you've switched to the [conduwuit](https://conduwuit.puppyirl.gay/) homeserver implementation
|
|
||||||
|
|
||||||
- [Configuring continuwuity](configuring-playbook-continuwuity.md), if you've switched to the [continuwuity](https://continuwuity.org) homeserver implementation
|
- [Configuring continuwuity](configuring-playbook-continuwuity.md), if you've switched to the [continuwuity](https://continuwuity.org) homeserver implementation
|
||||||
|
|
||||||
- [Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation
|
- [Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation
|
||||||
@@ -261,6 +259,8 @@ Various services that don't fit any other categories.
|
|||||||
|
|
||||||
**Note**: since a deprecated or unmaintained service will not be updated, its bug or vulnerability will be unlikely to get patched. It is recommended to migrate from the service to an alternative if any, and make sure to do your own research before you decide to keep it running nonetheless.
|
**Note**: since a deprecated or unmaintained service will not be updated, its bug or vulnerability will be unlikely to get patched. It is recommended to migrate from the service to an alternative if any, and make sure to do your own research before you decide to keep it running nonetheless.
|
||||||
|
|
||||||
|
- [Configuring conduwuit](configuring-playbook-conduwuit.md) (removed; this component has been abandoned and unmaintained)
|
||||||
|
|
||||||
- [Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)
|
- [Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)
|
||||||
|
|
||||||
- [Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bridge-hookshot.md))
|
- [Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bridge-hookshot.md))
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ We try to stick to official images (provided by their respective projects) as mu
|
|||||||
| ------- | --------------- | -------- | ----------- |
|
| ------- | --------------- | -------- | ----------- |
|
||||||
| [Synapse](configuring-playbook-synapse.md) | [element-hq/synapse](https://ghcr.io/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network |
|
| [Synapse](configuring-playbook-synapse.md) | [element-hq/synapse](https://ghcr.io/element-hq/synapse) | ✅ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network |
|
||||||
| [Conduit](configuring-playbook-conduit.md) | [matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements |
|
| [Conduit](configuring-playbook-conduit.md) | [matrixconduit/matrix-conduit](https://hub.docker.com/r/matrixconduit/matrix-conduit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements |
|
||||||
| [conduwuit](configuring-playbook-conduwuit.md) | [girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit is a fork of Conduit. |
|
|
||||||
| [continuwuity](configuring-playbook-continuwuity.md) | [continuwuation/continuwuity](https://forgejo.ellis.link/continuwuation/continuwuity) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. continuwuity is a continuation of conduwuit. |
|
| [continuwuity](configuring-playbook-continuwuity.md) | [continuwuation/continuwuity](https://forgejo.ellis.link/continuwuation/continuwuity) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. continuwuity is a continuation of conduwuit. |
|
||||||
| [Dendrite](configuring-playbook-dendrite.md) | [matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. |
|
| [Dendrite](configuring-playbook-dendrite.md) | [matrixdotorg/dendrite-monolith](https://hub.docker.com/r/matrixdotorg/dendrite-monolith/) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. |
|
||||||
|
|
||||||
@@ -172,6 +171,7 @@ The list of the deprecated or unmaintained services is available [here](configur
|
|||||||
|
|
||||||
| Service | Container image | Default? | Description |
|
| Service | Container image | Default? | Description |
|
||||||
| ------- | --------------- | -------- | ----------- |
|
| ------- | --------------- | -------- | ----------- |
|
||||||
|
| [conduwuit](configuring-playbook-conduwuit.md) | [girlbossceo/conduwuit](https://ghcr.io/girlbossceo/conduwuit) | ❌ | Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. conduwuit was a fork of Conduit. |
|
||||||
| [Dimension](configuring-playbook-dimension.md) | [turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension) | ❌ | Open source integration manager for Matrix clients |
|
| [Dimension](configuring-playbook-dimension.md) | [turt2live/matrix-dimension](https://hub.docker.com/r/turt2live/matrix-dimension) | ❌ | Open source integration manager for Matrix clients |
|
||||||
| [Email2Matrix](configuring-playbook-email2matrix.md) | [devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/) | ❌ | Bridge for relaying emails to Matrix rooms |
|
| [Email2Matrix](configuring-playbook-email2matrix.md) | [devture/email2matrix](https://hub.docker.com/r/devture/email2matrix/) | ❌ | Bridge for relaying emails to Matrix rooms |
|
||||||
| [Go-NEB](configuring-playbook-bot-go-neb.md) | [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) | ❌ | Multi functional bot written in Go |
|
| [Go-NEB](configuring-playbook-bot-go-neb.md) | [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) | ❌ | Multi functional bot written in Go |
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ The up-to-date list can be accessed on [traefik's documentation](https://doc.tra
|
|||||||
|
|
||||||
**Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels:
|
**Note**: the changes below instruct you how to do this for a basic Synapse installation. You will need to adapt the variable name and the content of the labels:
|
||||||
|
|
||||||
- if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [conduwuit](./configuring-playbook-conduwuit.md), [continuwuity](./configuring-playbook-continuwuity.md) or [Dendrite](./configuring-playbook-dendrite.md))
|
- if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [continuwuity](./configuring-playbook-continuwuity.md) or [Dendrite](./configuring-playbook-dendrite.md))
|
||||||
- if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached
|
- if you're using [Synapse with workers enabled](./configuring-playbook-synapse.md#load-balancing-with-workers) (`matrix_synapse_workers_enabled: true`). In that case, it's actually the `matrix-synapse-reverse-proxy-companion` service which has Traefik labels attached
|
||||||
|
|
||||||
Also, all instructions below are from an older version of the playbook and may not work anymore.
|
Also, all instructions below are from an older version of the playbook and may not work anymore.
|
||||||
|
|||||||
@@ -519,7 +519,6 @@ matrix_homeserver_container_client_api_endpoint: |-
|
|||||||
'synapse': ('matrix-synapse-reverse-proxy-companion:8008' if matrix_synapse_reverse_proxy_companion_enabled | default(false) else ('matrix-synapse:'+ matrix_synapse_container_client_api_port | default('8008') | string)),
|
'synapse': ('matrix-synapse-reverse-proxy-companion:8008' if matrix_synapse_reverse_proxy_companion_enabled | default(false) else ('matrix-synapse:'+ matrix_synapse_container_client_api_port | default('8008') | string)),
|
||||||
'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string),
|
'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string),
|
||||||
'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string),
|
'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string),
|
||||||
'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string),
|
|
||||||
'continuwuity': ('matrix-continuwuity:' + matrix_continuwuity_config_port_number | default('8008') | string),
|
'continuwuity': ('matrix-continuwuity:' + matrix_continuwuity_config_port_number | default('8008') | string),
|
||||||
}[matrix_homeserver_implementation]
|
}[matrix_homeserver_implementation]
|
||||||
}}
|
}}
|
||||||
@@ -530,7 +529,6 @@ matrix_homeserver_container_federation_api_endpoint: |-
|
|||||||
'synapse': ('matrix-synapse-reverse-proxy-companion:8048' if matrix_synapse_reverse_proxy_companion_enabled else ('matrix-synapse:'+ matrix_synapse_container_federation_api_plain_port | default('8008') | string)),
|
'synapse': ('matrix-synapse-reverse-proxy-companion:8048' if matrix_synapse_reverse_proxy_companion_enabled else ('matrix-synapse:'+ matrix_synapse_container_federation_api_plain_port | default('8008') | string)),
|
||||||
'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string),
|
'dendrite': ('matrix-dendrite:' + matrix_dendrite_http_bind_port | default('8008') | string),
|
||||||
'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string),
|
'conduit': ('matrix-conduit:' + matrix_conduit_port_number | default('8008') | string),
|
||||||
'conduwuit': ('matrix-conduwuit:' + matrix_conduwuit_config_port_number | default('8008') | string),
|
|
||||||
'continuwuity': ('matrix-continuwuity:' + matrix_continuwuity_config_port_number | default('8008') | string),
|
'continuwuity': ('matrix-continuwuity:' + matrix_continuwuity_config_port_number | default('8008') | string),
|
||||||
}[matrix_homeserver_implementation]
|
}[matrix_homeserver_implementation]
|
||||||
}}
|
}}
|
||||||
@@ -5095,7 +5093,6 @@ grafana_default_home_dashboard_path: |-
|
|||||||
'synapse': ('/etc/grafana/dashboards/synapse.json' if matrix_synapse_metrics_enabled and matrix_synapse_metrics_enabled else ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else '')),
|
'synapse': ('/etc/grafana/dashboards/synapse.json' if matrix_synapse_metrics_enabled and matrix_synapse_metrics_enabled else ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else '')),
|
||||||
'dendrite': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
'dendrite': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
||||||
'conduit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
'conduit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
||||||
'conduwuit': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
|
||||||
'continuwuity': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
'continuwuity': ('/etc/grafana/dashboards/node-exporter-full.json' if prometheus_node_exporter_enabled else ''),
|
||||||
}[matrix_homeserver_implementation]
|
}[matrix_homeserver_implementation]
|
||||||
}}
|
}}
|
||||||
@@ -5156,7 +5153,6 @@ matrix_registration_shared_secret: |-
|
|||||||
'synapse': matrix_synapse_registration_shared_secret | default (''),
|
'synapse': matrix_synapse_registration_shared_secret | default (''),
|
||||||
'dendrite': matrix_dendrite_client_api_registration_shared_secret | default (''),
|
'dendrite': matrix_dendrite_client_api_registration_shared_secret | default (''),
|
||||||
'conduit': '',
|
'conduit': '',
|
||||||
'conduwuit': '',
|
|
||||||
'continuwuity': '',
|
'continuwuity': '',
|
||||||
}[matrix_homeserver_implementation]
|
}[matrix_homeserver_implementation]
|
||||||
}}
|
}}
|
||||||
@@ -5316,58 +5312,6 @@ matrix_conduit_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix
|
|||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
#
|
|
||||||
# matrix-conduwuit
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
matrix_conduwuit_enabled: "{{ matrix_homeserver_implementation == 'conduwuit' }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_hostname: "{{ matrix_server_fqn_matrix }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_config_allow_federation: "{{ matrix_homeserver_federation_enabled }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_docker_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_conduwuit_docker_image_registry_prefix_upstream_default }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_container_network: "{{ matrix_homeserver_container_network }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_container_additional_networks_auto: |
|
|
||||||
{{
|
|
||||||
(
|
|
||||||
([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_conduwuit_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network else [])
|
|
||||||
) | unique
|
|
||||||
}}
|
|
||||||
|
|
||||||
matrix_conduwuit_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] and not matrix_synapse_workers_enabled }}"
|
|
||||||
matrix_conduwuit_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
|
||||||
matrix_conduwuit_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
|
||||||
matrix_conduwuit_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_redirection_enabled: "{{ matrix_conduwuit_container_labels_public_client_root_redirection_url != '' }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_redirection_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else '' }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_hostname: "{{ matrix_server_fqn_matrix_federation }}"
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_entrypoints: "{{ matrix_federation_traefik_entrypoint_name }}"
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_tls: "{{ matrix_federation_traefik_entrypoint_tls }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}"
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_config_turn_uris: "{{ matrix_coturn_turn_uris if matrix_coturn_enabled else [] }}"
|
|
||||||
matrix_conduwuit_config_turn_secret: "{{ matrix_coturn_turn_static_auth_secret if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'auth-secret') else '' }}"
|
|
||||||
matrix_conduwuit_config_turn_username: "{{ matrix_coturn_lt_cred_mech_username if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}"
|
|
||||||
matrix_conduwuit_config_turn_password: "{{ matrix_coturn_lt_cred_mech_password if (matrix_coturn_enabled and matrix_coturn_authentication_method == 'lt-cred-mech') else '' }}"
|
|
||||||
|
|
||||||
matrix_conduwuit_self_check_validate_certificates: "{{ matrix_playbook_ssl_enabled }}"
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
#
|
|
||||||
# /matrix-conduwuit
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
#
|
#
|
||||||
# matrix-continuwuity
|
# matrix-continuwuity
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ matrix_monitoring_container_network: matrix-monitoring
|
|||||||
matrix_homeserver_enabled: true
|
matrix_homeserver_enabled: true
|
||||||
|
|
||||||
# This will contain the homeserver implementation that is in use.
|
# This will contain the homeserver implementation that is in use.
|
||||||
# Valid values: synapse, dendrite, conduit, conduwuit, continuwuity
|
# Valid values: synapse, dendrite, conduit, continuwuity
|
||||||
#
|
#
|
||||||
# By default, we use Synapse, because it's the only full-featured Matrix server at the moment.
|
# By default, we use Synapse, because it's the only full-featured Matrix server at the moment.
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
- name: Fail if invalid homeserver implementation
|
- name: Fail if invalid homeserver implementation
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`"
|
msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`"
|
||||||
when: "matrix_homeserver_implementation not in ['synapse', 'dendrite', 'conduit', 'conduwuit', 'continuwuity']"
|
when: "matrix_homeserver_implementation not in ['synapse', 'dendrite', 'conduit', 'continuwuity']"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed settings
|
- name: (Deprecation) Catch and report renamed settings
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
|
|||||||
@@ -1,194 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
# conduwuit is a very cool, featureful fork of conduit (https://gitlab.com/famedly/conduit).
|
|
||||||
# Project source code URL: https://github.com/girlbossceo/conduwuit
|
|
||||||
# See: https://conduwuit.puppyirl.gay/
|
|
||||||
|
|
||||||
matrix_conduwuit_enabled: true
|
|
||||||
|
|
||||||
matrix_conduwuit_hostname: ''
|
|
||||||
|
|
||||||
matrix_conduwuit_docker_image: "{{ matrix_conduwuit_docker_image_registry_prefix }}girlbossceo/conduwuit:{{ matrix_conduwuit_docker_image_tag }}"
|
|
||||||
matrix_conduwuit_docker_image_tag: v0.4.6-8f7ade4c22533a3177bfd8f175e178573ba6c1d4
|
|
||||||
matrix_conduwuit_docker_image_force_pull: "{{ matrix_conduwuit_docker_image.endswith(':latest') }}"
|
|
||||||
matrix_conduwuit_docker_image_registry_prefix: "{{ matrix_conduwuit_docker_image_registry_prefix_upstream }}"
|
|
||||||
matrix_conduwuit_docker_image_registry_prefix_upstream: "{{ matrix_conduwuit_docker_image_registry_prefix_upstream_default }}"
|
|
||||||
matrix_conduwuit_docker_image_registry_prefix_upstream_default: ghcr.io/
|
|
||||||
|
|
||||||
matrix_conduwuit_base_path: "{{ matrix_base_data_path }}/conduwuit"
|
|
||||||
matrix_conduwuit_config_path: "{{ matrix_conduwuit_base_path }}/config"
|
|
||||||
matrix_conduwuit_data_path: "{{ matrix_conduwuit_base_path }}/data"
|
|
||||||
|
|
||||||
matrix_conduwuit_config_port_number: 6167
|
|
||||||
|
|
||||||
matrix_conduwuit_tmp_directory_size_mb: 500
|
|
||||||
|
|
||||||
# List of systemd services that matrix-conduwuit.service depends on
|
|
||||||
matrix_conduwuit_systemd_required_services_list: "{{ matrix_conduwuit_systemd_required_services_list_default + matrix_conduwuit_systemd_required_services_list_auto + matrix_conduwuit_systemd_required_services_list_custom }}"
|
|
||||||
matrix_conduwuit_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
|
|
||||||
matrix_conduwuit_systemd_required_services_list_auto: []
|
|
||||||
matrix_conduwuit_systemd_required_services_list_custom: []
|
|
||||||
|
|
||||||
# List of systemd services that matrix-conduwuit.service wants
|
|
||||||
matrix_conduwuit_systemd_wanted_services_list: []
|
|
||||||
|
|
||||||
# Controls how long to sleep for after starting the matrix-synapse container.
|
|
||||||
#
|
|
||||||
# Delaying, so that the homeserver can manage to fully start and various services
|
|
||||||
# that depend on it (`matrix_conduwuit_systemd_required_services_list` and `matrix_conduwuit_systemd_wanted_services_list`)
|
|
||||||
# may only start after the homeserver is up and running.
|
|
||||||
#
|
|
||||||
# This can be set to 0 to remove the delay.
|
|
||||||
matrix_conduwuit_systemd_service_post_start_delay_seconds: 3
|
|
||||||
|
|
||||||
# The base container network. It will be auto-created by this role if it doesn't exist already.
|
|
||||||
matrix_conduwuit_container_network: ""
|
|
||||||
|
|
||||||
# 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_conduwuit_container_additional_networks: "{{ matrix_conduwuit_container_additional_networks_auto + matrix_conduwuit_container_additional_networks_custom }}"
|
|
||||||
matrix_conduwuit_container_additional_networks_auto: []
|
|
||||||
matrix_conduwuit_container_additional_networks_custom: []
|
|
||||||
|
|
||||||
# matrix_conduwuit_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_conduwuit_container_labels_additional_labels`.
|
|
||||||
matrix_conduwuit_container_labels_traefik_enabled: true
|
|
||||||
matrix_conduwuit_container_labels_traefik_docker_network: "{{ matrix_conduwuit_container_network }}"
|
|
||||||
matrix_conduwuit_container_labels_traefik_entrypoints: web-secure
|
|
||||||
matrix_conduwuit_container_labels_traefik_tls_certResolver: default # noqa var-naming
|
|
||||||
|
|
||||||
# Controls whether labels will be added for handling the root (/) path on a public Traefik entrypoint.
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_enabled: true
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_traefik_hostname: "{{ matrix_conduwuit_hostname }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_client_root_traefik_hostname }}`) && Path(`/`)"
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_traefik_priority: 0
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_traefik_entrypoints: "{{ matrix_conduwuit_container_labels_traefik_entrypoints }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_traefik_tls: "{{ matrix_conduwuit_container_labels_public_client_root_traefik_entrypoints != 'web' }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_redirection_enabled: false
|
|
||||||
matrix_conduwuit_container_labels_public_client_root_redirection_url: ""
|
|
||||||
|
|
||||||
# Controls whether labels will be added that expose the Client-Server API on a public Traefik entrypoint.
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_enabled: true
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_hostname: "{{ matrix_conduwuit_hostname }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_path_prefix: /_matrix
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_client_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduwuit_container_labels_public_client_api_traefik_path_prefix }}`)"
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_priority: 0
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_entrypoints: "{{ matrix_conduwuit_container_labels_traefik_entrypoints }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_tls: "{{ matrix_conduwuit_container_labels_public_client_api_traefik_entrypoints != 'web' }}"
|
|
||||||
matrix_conduwuit_container_labels_public_client_api_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
|
|
||||||
|
|
||||||
# Controls whether labels will be added that expose the Client-Server API on the internal Traefik entrypoint.
|
|
||||||
# This is similar to `matrix_conduwuit_container_labels_public_client_api_enabled`, but the entrypoint and intent is different.
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_enabled: false
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_traefik_path_prefix: "{{ matrix_conduwuit_container_labels_public_client_api_traefik_path_prefix }}"
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_traefik_rule: "PathPrefix(`{{ matrix_conduwuit_container_labels_internal_client_api_traefik_path_prefix }}`)"
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_traefik_priority: "{{ matrix_conduwuit_container_labels_public_client_api_traefik_priority }}"
|
|
||||||
matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints: ""
|
|
||||||
|
|
||||||
# Controls whether labels will be added that expose the Server-Server API (Federation API) on a public Traefik entrypoint.
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_enabled: "{{ matrix_conduwuit_config_allow_federation }}"
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_hostname: "{{ matrix_conduwuit_hostname }}"
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_path_prefix: /_matrix
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_federation_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduwuit_container_labels_public_federation_api_traefik_path_prefix }}`)"
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_priority: 0
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_entrypoints: ''
|
|
||||||
# TLS is force-enabled here, because the spec (https://spec.matrix.org/v1.9/server-server-api/#tls) says that the federation API must use HTTPS.
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_tls: true
|
|
||||||
matrix_conduwuit_container_labels_public_federation_api_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
|
|
||||||
|
|
||||||
# Controls whether labels will be added that expose the `/_conduwuit` path prefix on a public Traefik entrypoint.
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_enabled: true
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_hostname: "{{ matrix_conduwuit_hostname }}"
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_path_prefix: /_conduwuit
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_rule: "Host(`{{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_path_prefix }}`)"
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_priority: 0
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_entrypoints: "{{ matrix_conduwuit_container_labels_traefik_entrypoints }}"
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls: "{{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_entrypoints != 'web' }}"
|
|
||||||
matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls_certResolver: "{{ matrix_conduwuit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
|
|
||||||
|
|
||||||
# matrix_conduwuit_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_conduwuit_container_labels_additional_labels: |
|
|
||||||
# my.label=1
|
|
||||||
# another.label="here"
|
|
||||||
matrix_conduwuit_container_labels_additional_labels: ''
|
|
||||||
|
|
||||||
# Extra arguments for the Docker container
|
|
||||||
matrix_conduwuit_container_extra_arguments: []
|
|
||||||
|
|
||||||
# Specifies which template files to use when configuring conduwuit.
|
|
||||||
# If you'd like to have your own different configuration, feel free to copy and paste
|
|
||||||
# the original files into your inventory (e.g. in `inventory/host_vars/matrix.example.com/`)
|
|
||||||
# and then change the specific host's `vars.yml` file like this:
|
|
||||||
# matrix_conduwuit_template_conduwuit_config: "{{ playbook_dir }}/inventory/host_vars/matrix.example.com/conduwuit.toml.j2"
|
|
||||||
matrix_conduwuit_template_conduwuit_config: "{{ role_path }}/templates/conduwuit.toml.j2"
|
|
||||||
|
|
||||||
# Max size for uploads, in bytes
|
|
||||||
matrix_conduwuit_config_server_name: "{{ matrix_domain }}"
|
|
||||||
|
|
||||||
# Max size for uploads, in bytes
|
|
||||||
matrix_conduwuit_config_max_request_size: 20_000_000
|
|
||||||
|
|
||||||
# Enables registration. If set to false, no users can register on this server.
|
|
||||||
matrix_conduwuit_config_allow_registration: false
|
|
||||||
|
|
||||||
# Controls the `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` setting.
|
|
||||||
# This is only used when `matrix_conduwuit_config_allow_registration` is set to true and no registration token is configured.
|
|
||||||
matrix_conduwuit_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse: false
|
|
||||||
|
|
||||||
# Controls the `registration_token` setting.
|
|
||||||
# When registration is enabled (`matrix_conduwuit_config_allow_registration`) you:
|
|
||||||
# - either need to set a token to protect registration from abuse
|
|
||||||
# - or you need to enable the `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` setting
|
|
||||||
# (see `matrix_conduwuit_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse`),
|
|
||||||
# to allow registration without any form of 2nd-step.
|
|
||||||
matrix_conduwuit_config_registration_token: ''
|
|
||||||
|
|
||||||
# Controls the `new_user_displayname_suffix` setting.
|
|
||||||
# This is the suffix that will be added to the displayname of new users.
|
|
||||||
# Upstream defaults this to "🏳️⚧️", but we keep this consistent across all homeserver implementations and do not enable a suffix.
|
|
||||||
matrix_conduwuit_config_new_user_displayname_suffix: ""
|
|
||||||
|
|
||||||
# Controls the `allow_check_for_updates` setting.
|
|
||||||
matrix_conduwuit_config_allow_check_for_updates: false
|
|
||||||
|
|
||||||
# Controls the `emergency_password` setting.
|
|
||||||
matrix_conduwuit_config_emergency_password: ''
|
|
||||||
|
|
||||||
# Controls the `allow_federation` setting.
|
|
||||||
matrix_conduwuit_config_allow_federation: true
|
|
||||||
|
|
||||||
matrix_conduwuit_trusted_servers:
|
|
||||||
- "matrix.org"
|
|
||||||
|
|
||||||
matrix_conduwuit_config_log: "info,state_res=warn,rocket=off,_=off,sled=off"
|
|
||||||
|
|
||||||
# TURN integration.
|
|
||||||
# See: https://conduwuit.puppyirl.gay/turn.html
|
|
||||||
matrix_conduwuit_config_turn_uris: []
|
|
||||||
matrix_conduwuit_config_turn_secret: ''
|
|
||||||
matrix_conduwuit_config_turn_username: ''
|
|
||||||
matrix_conduwuit_config_turn_password: ''
|
|
||||||
|
|
||||||
# Controls whether the self-check feature should validate SSL certificates.
|
|
||||||
matrix_conduwuit_self_check_validate_certificates: true
|
|
||||||
|
|
||||||
# Additional environment variables to pass to the container.
|
|
||||||
#
|
|
||||||
# Environment variables take priority over settings in the configuration file.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# matrix_conduwuit_environment_variables_extension: |
|
|
||||||
# CONDUWUIT_MAX_REQUEST_SIZE=50000000
|
|
||||||
# CONDUWUIT_REQUEST_TIMEOUT=60
|
|
||||||
matrix_conduwuit_environment_variables_extension: ''
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Ensure conduwuit config path exists
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ matrix_conduwuit_config_path }}"
|
|
||||||
state: directory
|
|
||||||
mode: 0750
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit data path exists
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ matrix_conduwuit_data_path }}"
|
|
||||||
state: directory
|
|
||||||
mode: 0770
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit configuration installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ matrix_conduwuit_template_conduwuit_config }}"
|
|
||||||
dest: "{{ matrix_conduwuit_config_path }}/conduwuit.toml"
|
|
||||||
mode: 0644
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit support files installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/{{ item }}.j2"
|
|
||||||
dest: "{{ matrix_conduwuit_base_path }}/{{ item }}"
|
|
||||||
mode: 0640
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
with_items:
|
|
||||||
- labels
|
|
||||||
- env
|
|
||||||
|
|
||||||
- name: Ensure conduwuit container network is created
|
|
||||||
community.general.docker_network:
|
|
||||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
|
||||||
name: "{{ matrix_conduwuit_container_network }}"
|
|
||||||
driver: bridge
|
|
||||||
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit container image is pulled
|
|
||||||
community.docker.docker_image:
|
|
||||||
name: "{{ matrix_conduwuit_docker_image }}"
|
|
||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
||||||
force_source: "{{ matrix_conduwuit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
||||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduwuit_docker_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-conduwuit.service installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-conduwuit.service.j2"
|
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service"
|
|
||||||
mode: 0644
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- setup-all
|
|
||||||
- setup-conduwuit
|
|
||||||
- install-all
|
|
||||||
- install-conduwuit
|
|
||||||
block:
|
|
||||||
- when: matrix_conduwuit_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
|
||||||
|
|
||||||
- when: matrix_conduwuit_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/install.yml"
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- setup-all
|
|
||||||
- setup-conduwuit
|
|
||||||
block:
|
|
||||||
- when: not matrix_conduwuit_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/uninstall.yml"
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- self-check
|
|
||||||
block:
|
|
||||||
- when: matrix_conduwuit_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_client_api.yml"
|
|
||||||
|
|
||||||
- when: matrix_conduwuit_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/self_check_federation_api.yml"
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Check Matrix Client API
|
|
||||||
ansible.builtin.uri:
|
|
||||||
url: "{{ matrix_conduwuit_client_api_url_endpoint_public }}"
|
|
||||||
follow_redirects: none
|
|
||||||
validate_certs: "{{ matrix_conduwuit_self_check_validate_certificates }}"
|
|
||||||
register: result_matrix_conduwuit_client_api
|
|
||||||
ignore_errors: true
|
|
||||||
check_mode: false
|
|
||||||
when: matrix_conduwuit_enabled | bool
|
|
||||||
delegate_to: 127.0.0.1
|
|
||||||
become: false
|
|
||||||
|
|
||||||
- name: Fail if Matrix Client API not working
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: "Failed checking Matrix Client API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_conduwuit_client_api_url_endpoint_public }}`). Is conduwuit running? Is port 443 open in your firewall? Full error: {{ result_matrix_conduwuit_client_api }}"
|
|
||||||
when: "matrix_conduwuit_enabled | bool and (result_matrix_conduwuit_client_api.failed or 'json' not in result_matrix_conduwuit_client_api)"
|
|
||||||
|
|
||||||
- name: Report working Matrix Client API
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "The Matrix Client API at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_conduwuit_client_api_url_endpoint_public }}`) is working"
|
|
||||||
when: matrix_conduwuit_enabled | bool
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Check Matrix Federation API
|
|
||||||
ansible.builtin.uri:
|
|
||||||
url: "{{ matrix_synapse_federation_api_url_endpoint_public }}"
|
|
||||||
follow_redirects: none
|
|
||||||
validate_certs: "{{ matrix_synapse_self_check_validate_certificates }}"
|
|
||||||
register: result_matrix_synapse_federation_api
|
|
||||||
ignore_errors: true
|
|
||||||
check_mode: false
|
|
||||||
when: matrix_synapse_enabled | bool
|
|
||||||
delegate_to: 127.0.0.1
|
|
||||||
become: false
|
|
||||||
|
|
||||||
- name: Fail if Matrix Federation API not working
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: "Failed checking Matrix Federation API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`). Is Synapse running? Is port {{ matrix_federation_public_port }} open in your firewall? Full error: {{ result_matrix_synapse_federation_api }}"
|
|
||||||
when: "matrix_synapse_enabled | bool and matrix_synapse_federation_enabled | bool and (result_matrix_synapse_federation_api.failed or 'json' not in result_matrix_synapse_federation_api)"
|
|
||||||
|
|
||||||
- name: Fail if Matrix Federation API unexpectedly enabled
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: "Matrix Federation API is up at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) despite being disabled."
|
|
||||||
when: "matrix_synapse_enabled | bool and not matrix_synapse_federation_enabled | bool and not result_matrix_synapse_federation_api.failed"
|
|
||||||
|
|
||||||
- name: Report working Matrix Federation API
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "The Matrix Federation API at `{{ matrix_server_fqn_matrix }}` (checked endpoint: `{{ matrix_synapse_federation_api_url_endpoint_public }}`) is working"
|
|
||||||
when: "matrix_synapse_enabled | bool and matrix_synapse_federation_enabled | bool"
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Ensure conduwuit config path exists
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ matrix_conduwuit_config_path }}"
|
|
||||||
state: directory
|
|
||||||
mode: 0750
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit data path exists
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ matrix_conduwuit_data_path }}"
|
|
||||||
state: directory
|
|
||||||
mode: 0770
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit configuration installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ matrix_conduwuit_template_conduwuit_config }}"
|
|
||||||
dest: "{{ matrix_conduwuit_config_path }}/conduwuit.toml"
|
|
||||||
mode: 0644
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit support files installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/{{ item }}.j2"
|
|
||||||
dest: "{{ matrix_conduwuit_base_path }}/{{ item }}"
|
|
||||||
mode: 0640
|
|
||||||
owner: "{{ matrix_user_name }}"
|
|
||||||
group: "{{ matrix_group_name }}"
|
|
||||||
with_items:
|
|
||||||
- labels
|
|
||||||
|
|
||||||
- name: Ensure conduwuit container network is created
|
|
||||||
community.general.docker_network:
|
|
||||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
|
||||||
name: "{{ matrix_conduwuit_container_network }}"
|
|
||||||
driver: bridge
|
|
||||||
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
|
||||||
|
|
||||||
- name: Ensure conduwuit container image is pulled
|
|
||||||
community.docker.docker_image:
|
|
||||||
name: "{{ matrix_conduwuit_docker_image }}"
|
|
||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
||||||
force_source: "{{ matrix_conduwuit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
||||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduwuit_docker_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-conduwuit.service installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-conduwuit.service.j2"
|
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service"
|
|
||||||
mode: 0644
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Check existence of matrix-conduwuit service
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service"
|
|
||||||
register: matrix_conduwuit_service_stat
|
|
||||||
|
|
||||||
- when: matrix_conduwuit_service_stat.stat.exists | bool
|
|
||||||
block:
|
|
||||||
- name: Ensure matrix-conduwuit is stopped
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: matrix-conduwuit
|
|
||||||
state: stopped
|
|
||||||
daemon_reload: true
|
|
||||||
|
|
||||||
- name: Ensure matrix-conduwuit.service doesn't exist
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service"
|
|
||||||
state: absent
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Check existence of matrix-conduwuit service
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service"
|
|
||||||
register: matrix_conduwuit_service_stat
|
|
||||||
|
|
||||||
- when: matrix_conduwuit_service_stat.stat.exists | bool
|
|
||||||
block:
|
|
||||||
- name: Ensure matrix-conduwuit is stopped
|
|
||||||
ansible.builtin.systemd:
|
|
||||||
name: matrix-conduwuit
|
|
||||||
state: stopped
|
|
||||||
daemon_reload: true
|
|
||||||
|
|
||||||
- name: Ensure matrix-conduwuit.service doesn't exist
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduwuit.service"
|
|
||||||
state: absent
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Fail if required conduwuit settings not defined
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: >-
|
|
||||||
You need to define a required configuration setting (`{{ item.name }}`).
|
|
||||||
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
|
|
||||||
with_items:
|
|
||||||
- {'name': 'matrix_conduwuit_hostname', when: true}
|
|
||||||
- {'name': 'matrix_conduwuit_container_network', when: true}
|
|
||||||
- {'name': 'matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints', when: "{{ matrix_conduwuit_container_labels_internal_client_api_enabled }}"}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
|||||||
{{ matrix_conduwuit_environment_variables_extension }}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
{#
|
|
||||||
SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
#}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_traefik_enabled %}
|
|
||||||
traefik.enable=true
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_traefik_docker_network %}
|
|
||||||
traefik.docker.network={{ matrix_conduwuit_container_labels_traefik_docker_network }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.services.matrix-conduwuit.loadbalancer.server.port={{ matrix_conduwuit_config_port_number }}
|
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_root_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Public Root path (/) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
{% set client_root_middlewares = [] %}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_root_redirection_enabled %}
|
|
||||||
{% set client_root_middlewares = client_root_middlewares + ['matrix-conduwuit-client-root-redirect'] %}
|
|
||||||
traefik.http.middlewares.matrix-conduwuit-client-root-redirect.redirectregex.regex=(.*)
|
|
||||||
traefik.http.middlewares.matrix-conduwuit-client-root-redirect.redirectregex.replacement={{ matrix_conduwuit_container_labels_public_client_root_redirection_url }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.rule={{ matrix_conduwuit_container_labels_public_client_root_traefik_rule }}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.middlewares={{ client_root_middlewares | join(',') }}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_root_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.priority={{ matrix_conduwuit_container_labels_public_client_root_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.service=matrix-conduwuit
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.entrypoints={{ matrix_conduwuit_container_labels_public_client_root_traefik_entrypoints }}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.tls={{ matrix_conduwuit_container_labels_public_client_root_traefik_tls | to_json }}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_root_traefik_tls %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-root.tls.certResolver={{ matrix_conduwuit_container_labels_public_client_root_traefik_tls_certResolver }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Public Root path (/) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_api_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Public Client-API (/_matrix) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-api.rule={{ matrix_conduwuit_container_labels_public_client_api_traefik_rule }}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_api_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-api.priority={{ matrix_conduwuit_container_labels_public_client_api_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-api.service=matrix-conduwuit
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-api.entrypoints={{ matrix_conduwuit_container_labels_public_client_api_traefik_entrypoints }}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-api.tls={{ matrix_conduwuit_container_labels_public_client_api_traefik_tls | to_json }}
|
|
||||||
{% if matrix_conduwuit_container_labels_public_client_api_traefik_tls %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-client-api.tls.certResolver={{ matrix_conduwuit_container_labels_public_client_api_traefik_tls_certResolver }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Public Client-API (/_matrix) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_internal_client_api_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Internal Client-API (/_matrix) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-internal-client-api.rule={{ matrix_conduwuit_container_labels_internal_client_api_traefik_rule }}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_internal_client_api_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-internal-client-api.priority={{ matrix_conduwuit_container_labels_internal_client_api_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-internal-client-api.service=matrix-conduwuit
|
|
||||||
traefik.http.routers.matrix-conduwuit-internal-client-api.entrypoints={{ matrix_conduwuit_container_labels_internal_client_api_traefik_entrypoints }}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Internal Client-API (/_matrix) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_federation_api_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Public Federation-API (/_matrix) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-federation-api.rule={{ matrix_conduwuit_container_labels_public_federation_api_traefik_rule }}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_federation_api_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-federation-api.priority={{ matrix_conduwuit_container_labels_public_federation_api_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-federation-api.service=matrix-conduwuit
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-federation-api.entrypoints={{ matrix_conduwuit_container_labels_public_federation_api_traefik_entrypoints }}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-federation-api.tls={{ matrix_conduwuit_container_labels_public_federation_api_traefik_tls | to_json }}
|
|
||||||
{% if matrix_conduwuit_container_labels_public_federation_api_traefik_tls %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-federation-api.tls.certResolver={{ matrix_conduwuit_container_labels_public_federation_api_traefik_tls_certResolver }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Public Federation-API (/_matrix) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_conduwuit_api_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Public conduwuit-API (/_conduwuit) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-conduwuit-api.rule={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_rule }}
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_container_labels_public_conduwuit_api_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-conduwuit-api.priority={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-conduwuit-api.service=matrix-conduwuit
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-conduwuit-api.entrypoints={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_entrypoints }}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-conduwuit-api.tls={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls | to_json }}
|
|
||||||
{% if matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls %}
|
|
||||||
traefik.http.routers.matrix-conduwuit-public-conduwuit-api.tls.certResolver={{ matrix_conduwuit_container_labels_public_conduwuit_api_traefik_tls_certResolver }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Public conduwuit-API (/_conduwuit) #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ matrix_conduwuit_container_labels_additional_labels }}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
#jinja2: lstrip_blocks: True
|
|
||||||
[Unit]
|
|
||||||
Description=conduwuit Matrix homeserver
|
|
||||||
{% for service in matrix_conduwuit_systemd_required_services_list %}
|
|
||||||
Requires={{ service }}
|
|
||||||
After={{ service }}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
[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-conduwuit 2>/dev/null || true'
|
|
||||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduwuit 2>/dev/null || true'
|
|
||||||
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
|
|
||||||
--rm \
|
|
||||||
--name=matrix-conduwuit \
|
|
||||||
--log-driver=none \
|
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
|
||||||
--cap-drop=ALL \
|
|
||||||
--read-only \
|
|
||||||
--tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_conduwuit_tmp_directory_size_mb }}m \
|
|
||||||
--network={{ matrix_conduwuit_container_network }} \
|
|
||||||
--env CONDUWUIT_CONFIG=/etc/conduwuit/conduwuit.toml \
|
|
||||||
--label-file={{ matrix_conduwuit_base_path }}/labels \
|
|
||||||
--mount type=bind,src={{ matrix_conduwuit_data_path }},dst=/var/lib/conduwuit \
|
|
||||||
--mount type=bind,src={{ matrix_conduwuit_config_path }},dst=/etc/conduwuit,ro \
|
|
||||||
{% for arg in matrix_conduwuit_container_extra_arguments %}
|
|
||||||
{{ arg }} \
|
|
||||||
{% endfor %}
|
|
||||||
{{ matrix_conduwuit_docker_image }}
|
|
||||||
|
|
||||||
{% for network in matrix_conduwuit_container_additional_networks %}
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-conduwuit
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-conduwuit
|
|
||||||
|
|
||||||
{% if matrix_conduwuit_systemd_service_post_start_delay_seconds != 0 %}
|
|
||||||
ExecStartPost=-{{ matrix_host_command_sleep }} {{ matrix_conduwuit_systemd_service_post_start_delay_seconds }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
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-conduwuit 2>/dev/null || true'
|
|
||||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduwuit 2>/dev/null || true'
|
|
||||||
ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-conduwuit /bin/sh -c 'kill -HUP 1'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=30
|
|
||||||
SyslogIdentifier=matrix-conduwuit
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 MDAD project contributors
|
|
||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
matrix_conduwuit_client_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_conduwuit_hostname }}/_matrix/client/versions"
|
|
||||||
matrix_conduwuit_federation_api_url_endpoint_public: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}://{{ matrix_conduwuit_hostname }}:{{ matrix_federation_public_port }}/_matrix/federation/v1/version"
|
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
- name: Check existence of conduwuit directory
|
- name: Check existence of conduwuit directory
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: "{{ matrix_base_data_path }}/conduwuit"
|
path: "{{ matrix_base_data_path }}/conduwuit"
|
||||||
register: matrix_conduwuit_directory_stat
|
register: matrix_removed_conduwuit_directory_stat
|
||||||
|
|
||||||
- name: Check existence of continuwuity directory
|
- name: Check existence of continuwuity directory
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
register: matrix_continuwuity_directory_stat
|
register: matrix_continuwuity_directory_stat
|
||||||
|
|
||||||
- when: >
|
- when: >
|
||||||
matrix_conduwuit_directory_stat.stat.exists | bool and
|
matrix_removed_conduwuit_directory_stat.stat.exists | bool and
|
||||||
matrix_continuwuity_directory_stat.stat.exists | bool
|
matrix_continuwuity_directory_stat.stat.exists | bool
|
||||||
block:
|
block:
|
||||||
- name: Ensure matrix-continuwuity.service systemd service is stopped
|
- name: Ensure matrix-continuwuity.service systemd service is stopped
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
|
||||||
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
|
||||||
#
|
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
- name: Ensure conduwuit user registered - {{ user.username | quote }}
|
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "Not registering user. To register conduwuit users, message the conduwuit bot"
|
|
||||||
@@ -595,6 +595,18 @@
|
|||||||
The following variables in your configuration need to be renamed: {{ lookup('ansible.builtin.varnames', '^matrix_client_cinny_.+', wantlist=True) | join(', ') }}
|
The following variables in your configuration need to be renamed: {{ lookup('ansible.builtin.varnames', '^matrix_client_cinny_.+', wantlist=True) | join(', ') }}
|
||||||
when: "lookup('ansible.builtin.varnames', '^matrix_client_cinny_.+', wantlist=True) | length > 0"
|
when: "lookup('ansible.builtin.varnames', '^matrix_client_cinny_.+', wantlist=True) | length > 0"
|
||||||
|
|
||||||
|
- name: (Deprecation) Catch and report matrix-conduwuit variables
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: |-
|
||||||
|
matrix-conduwuit was completely removed from the playbook in February 2026.
|
||||||
|
|
||||||
|
Please remove all `matrix_conduwuit*` variables from your configuration file (vars.yml).
|
||||||
|
|
||||||
|
You may wish to migrate to Continuwuity, a drop-in replacement for conduwuit. See `docs/configuring-playbook-continuwuity.md` for more information.
|
||||||
|
|
||||||
|
The following variables in your configuration need to be removed: {{ lookup('ansible.builtin.varnames', '^matrix_conduwuit.+', wantlist=True) | join(', ') }}
|
||||||
|
when: "lookup('ansible.builtin.varnames', '^matrix_conduwuit.+', wantlist=True) | length > 0"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report matrix-dynamic-dns variables
|
- name: (Deprecation) Catch and report matrix-dynamic-dns variables
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: |-
|
msg: |-
|
||||||
|
|||||||
@@ -97,7 +97,6 @@
|
|||||||
- custom/matrix-synapse-reverse-proxy-companion
|
- custom/matrix-synapse-reverse-proxy-companion
|
||||||
- custom/matrix-dendrite
|
- custom/matrix-dendrite
|
||||||
- custom/matrix-conduit
|
- custom/matrix-conduit
|
||||||
- custom/matrix-conduwuit
|
|
||||||
- custom/matrix-continuwuity
|
- custom/matrix-continuwuity
|
||||||
- custom/matrix-synapse-admin
|
- custom/matrix-synapse-admin
|
||||||
- custom/matrix-synapse-usage-exporter
|
- custom/matrix-synapse-usage-exporter
|
||||||
|
|||||||
Reference in New Issue
Block a user