mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-04-03 13:24:06 +03:00
Compare commits
71 Commits
dfacd7e024
...
create-pul
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
723328d63a | ||
|
|
09bf24ade8 | ||
|
|
0e4a4b0bf8 | ||
|
|
c8636ed9f6 | ||
|
|
2468bc040f | ||
|
|
6c7944494b | ||
|
|
7a1cf643bc | ||
|
|
ae6aa35028 | ||
|
|
361939f17d | ||
|
|
cf0332aa09 | ||
|
|
8145a6e492 | ||
|
|
3a120f5c25 | ||
|
|
539136dce6 | ||
|
|
94a0a6c6ec | ||
|
|
060db8f428 | ||
|
|
e5804c4203 | ||
|
|
8a3adae240 | ||
|
|
c897c8f5de | ||
|
|
720a1b1a31 | ||
|
|
3f0326855d | ||
|
|
a4bc3facb4 | ||
|
|
de6d18834d | ||
|
|
4c336f7e22 | ||
|
|
3593c952af | ||
|
|
5480ce8129 | ||
|
|
d82394188b | ||
|
|
8deaf6dd43 | ||
|
|
0a03679230 | ||
|
|
8483683b28 | ||
|
|
e4c62da332 | ||
|
|
ae78862f7a | ||
|
|
5879959151 | ||
|
|
3400769336 | ||
|
|
e5dbd51b46 | ||
|
|
68eeb9e303 | ||
|
|
e39b7f89a7 | ||
|
|
bea22b97fa | ||
|
|
7c5a729c18 | ||
|
|
38bdf5b181 | ||
|
|
ad5d783a3c | ||
|
|
5c80913739 | ||
|
|
df44c8d4b3 | ||
|
|
63c4fffe65 | ||
|
|
9f109f81ee | ||
|
|
9a9392d24a | ||
|
|
4991ce3c90 | ||
|
|
36d0c5d8c3 | ||
|
|
4174eafd6b | ||
|
|
09221fd611 | ||
|
|
b3153fcc49 | ||
|
|
312cfe9b41 | ||
|
|
b3a0f52824 | ||
|
|
27a2b126bc | ||
|
|
8ae8b83139 | ||
|
|
74cc760d00 | ||
|
|
c831ce6f63 | ||
|
|
d3241588e3 | ||
|
|
b092e126a9 | ||
|
|
5167507989 | ||
|
|
d7ec806b51 | ||
|
|
11fee5e4db | ||
|
|
5523277bc1 | ||
|
|
ed7be50cea | ||
|
|
4ac5266efc | ||
|
|
392ac0125f | ||
|
|
756e189141 | ||
|
|
c55156b394 | ||
|
|
446597aac9 | ||
|
|
b942715469 | ||
|
|
aeb71d3543 | ||
|
|
54c0b56200 |
51
.github/workflows/matrix.yml
vendored
51
.github/workflows/matrix.yml
vendored
@@ -9,34 +9,37 @@ name: Matrix CI
|
|||||||
|
|
||||||
on: [push, pull_request] # yamllint disable-line rule:truthy
|
on: [push, pull_request] # yamllint disable-line rule:truthy
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
yamllint:
|
prek:
|
||||||
name: yamllint
|
name: Run prek hooks
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Check out
|
|
||||||
uses: actions/checkout@v6
|
|
||||||
- name: Run yamllint
|
|
||||||
uses: frenck/action-yamllint@v1.5.0
|
|
||||||
ansible-lint:
|
|
||||||
name: ansible-lint
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: docker.io/archlinux:base-devel
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
# git must be installed before checkout so it does a proper clone
|
||||||
|
# (with .git directory) instead of a tarball download.
|
||||||
|
- name: Install git
|
||||||
|
run: pacman -Sy --noconfirm git
|
||||||
|
|
||||||
- name: Check out
|
- name: Check out
|
||||||
uses: actions/checkout@v6
|
uses: actions/checkout@v6
|
||||||
|
|
||||||
- name: Run ansible-lint
|
- name: Restore prek cache
|
||||||
uses: ansible/ansible-lint@v26.3.0
|
uses: actions/cache@v5
|
||||||
with:
|
with:
|
||||||
args: "roles/custom"
|
path: var/prek
|
||||||
setup_python: "true"
|
key: arch-prek-v1-${{ hashFiles('.pre-commit-config.yaml') }}
|
||||||
working_directory: ""
|
|
||||||
requirements_file: requirements.yml
|
- name: Install dependencies
|
||||||
precommit:
|
run: pacman -S --noconfirm --needed just mise python
|
||||||
name: Run pre-commit
|
|
||||||
runs-on: ubuntu-latest
|
- name: Run prek hooks
|
||||||
steps:
|
run: |
|
||||||
- name: Checkout code
|
# The checkout action sets safe.directory using its own bundled
|
||||||
uses: actions/checkout@v6
|
# git, which is separate from the pacman-installed git that prek uses.
|
||||||
- name: Run pre-commit
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
||||||
uses: pre-commit/action@v3.0.1
|
just prek-run-on-all
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,6 +4,7 @@
|
|||||||
.python-version
|
.python-version
|
||||||
.idea/
|
.idea/
|
||||||
.direnv/
|
.direnv/
|
||||||
|
/var/
|
||||||
|
|
||||||
# ignore roles pulled by ansible-galaxy
|
# ignore roles pulled by ansible-galaxy
|
||||||
/roles/galaxy/*
|
/roles/galaxy/*
|
||||||
|
|||||||
@@ -1,17 +1,16 @@
|
|||||||
---
|
---
|
||||||
default_install_hook_types: [pre-push]
|
|
||||||
|
|
||||||
exclude: "LICENSES/"
|
exclude: "^(LICENSES/|var/)"
|
||||||
|
|
||||||
# See: https://pre-commit.com/hooks.html
|
# See: https://pre-commit.com/hooks.html
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v6.0.0
|
rev: v6.0.0
|
||||||
hooks:
|
hooks:
|
||||||
# - id: check-executables-have-shebangs
|
|
||||||
- id: check-added-large-files
|
- id: check-added-large-files
|
||||||
- id: check-case-conflict
|
- id: check-case-conflict
|
||||||
- id: check-json
|
- id: check-json
|
||||||
|
- id: check-shebang-scripts-are-executable
|
||||||
- id: check-toml
|
- id: check-toml
|
||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
@@ -24,3 +23,18 @@ repos:
|
|||||||
rev: v6.2.0
|
rev: v6.2.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: reuse
|
- id: reuse
|
||||||
|
- repo: https://github.com/ansible/ansible-lint
|
||||||
|
rev: v26.4.0
|
||||||
|
hooks:
|
||||||
|
- id: ansible-lint
|
||||||
|
files: '^roles/custom/'
|
||||||
|
args: ['roles/custom']
|
||||||
|
pass_filenames: false
|
||||||
|
- repo: local
|
||||||
|
hooks:
|
||||||
|
- id: check-examples-vars-migration-version
|
||||||
|
name: Check examples/vars.yml migration version matches expected
|
||||||
|
entry: bin/check-examples-vars-migration-version.sh
|
||||||
|
language: script
|
||||||
|
files: '(examples/vars\.yml|roles/custom/matrix_playbook_migration/defaults/main\.yml)'
|
||||||
|
pass_filenames: false
|
||||||
|
|||||||
52
CHANGELOG.md
52
CHANGELOG.md
@@ -1,3 +1,55 @@
|
|||||||
|
# 2026-04-02
|
||||||
|
|
||||||
|
## (BC Break) Draupnir for all Self Service Provisioning is now disabled by default
|
||||||
|
|
||||||
|
💡 If you don't use [Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md), then this breaking change does not concern you..
|
||||||
|
|
||||||
|
[Draupnir for all](./docs/configuring-playbook-appservice-draupnir-for-all.md) now ships with `allowSelfServiceProvisioning: false` as default upstream and in this playbook.
|
||||||
|
|
||||||
|
This means users can no longer provision Draupnir instances by inviting the appservice bot unless you explicitly opt in.
|
||||||
|
|
||||||
|
Manual provisioning by administrators is now the recommended approach. You do not want to enable Self Service Provisioning unless you have additional custom safeguards like those used by asgard.chat in place.
|
||||||
|
|
||||||
|
If you want to enable Self Service Provisioning, add the following to your `vars.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
matrix_appservice_draupnir_for_all_configuration_extension_yaml: |
|
||||||
|
allowSelfServiceProvisioning: true
|
||||||
|
```
|
||||||
|
|
||||||
|
# 2026-03-23
|
||||||
|
|
||||||
|
## Migration validation system introduced
|
||||||
|
|
||||||
|
Previously, when updating your setup, you had to remember to read the [CHANGELOG](CHANGELOG.md) file or risk breakage.
|
||||||
|
|
||||||
|
Now, the playbook includes a migration validation system that ensures you're aware of breaking changes before they affect your deployment.
|
||||||
|
You're now forced to acknowledge each breaking change, unless you wish to live dangerously (see below).
|
||||||
|
|
||||||
|
A new `matrix_playbook_migration_validated_version` variable has been introduced.
|
||||||
|
|
||||||
|
**New users** who started from the [example `vars.yml`](examples/vars.yml) file already have this variable set and do not need to do anything.
|
||||||
|
|
||||||
|
**Existing users** will need to add the following to their `vars.yml` file after reviewing all changelog entries up to now:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
matrix_playbook_migration_validated_version: v2026.03.23.0
|
||||||
|
```
|
||||||
|
|
||||||
|
Going forward, whenever a breaking change is introduced the playbook will:
|
||||||
|
|
||||||
|
- bump its expected version value (`matrix_playbook_migration_expected_version`), causing a discrepancy with what you validated (`matrix_playbook_migration_validated_version`)
|
||||||
|
|
||||||
|
- fail when you run it with a helpful message listing what changed and linking to the relevant changelog entries
|
||||||
|
|
||||||
|
After reviewing and adapting your setup, you simply update the variable to the new version.
|
||||||
|
|
||||||
|
If you'd like to live dangerously and skip these checks (not recommended), you can set this once and be done with it:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
matrix_playbook_migration_validated_version: "{{ matrix_playbook_migration_expected_version }}"
|
||||||
|
```
|
||||||
|
|
||||||
# 2026-03-19
|
# 2026-03-19
|
||||||
|
|
||||||
## Matrix Authentication Service now prefers UNIX sockets for playbook-managed Postgres
|
## Matrix Authentication Service now prefers UNIX sockets for playbook-managed Postgres
|
||||||
|
|||||||
35
bin/check-examples-vars-migration-version.sh
Executable file
35
bin/check-examples-vars-migration-version.sh
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
# Ensures that the migration validated version in examples/vars.yml
|
||||||
|
# matches the expected version in the matrix_playbook_migration role defaults.
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
defaults_file="roles/custom/matrix_playbook_migration/defaults/main.yml"
|
||||||
|
examples_file="examples/vars.yml"
|
||||||
|
|
||||||
|
expected_version=$(grep -oP '^matrix_playbook_migration_expected_version:\s*"?\K[^"]+' "$defaults_file")
|
||||||
|
examples_version=$(grep -oP '^matrix_playbook_migration_validated_version:\s*"?\K[^"]+' "$examples_file")
|
||||||
|
|
||||||
|
if [ -z "$expected_version" ]; then
|
||||||
|
echo "ERROR: Could not extract matrix_playbook_migration_expected_version from $defaults_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$examples_version" ]; then
|
||||||
|
echo "ERROR: Could not extract matrix_playbook_migration_validated_version from $examples_file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$expected_version" != "$examples_version" ]; then
|
||||||
|
echo "ERROR: Migration version mismatch!"
|
||||||
|
echo " $defaults_file has expected version: $expected_version"
|
||||||
|
echo " $examples_file has validated version: $examples_version"
|
||||||
|
echo ""
|
||||||
|
echo "Please update $examples_file to match."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
0
bin/rebuild-mautrix-meta-instagram.sh
Normal file → Executable file
0
bin/rebuild-mautrix-meta-instagram.sh
Normal file → Executable file
@@ -398,6 +398,8 @@ To perform a real migration, run the `matrix-authentication-service-mas-cli-syn2
|
|||||||
just run-tags matrix-authentication-service-mas-cli-syn2mas
|
just run-tags matrix-authentication-service-mas-cli-syn2mas
|
||||||
```
|
```
|
||||||
|
|
||||||
|
After `syn2mas` completes, Synapse will intentionally remain stopped to avoid new registrations or other authentication changes from being accepted before the migration is completed. Continue with the next steps in this guide before re-running the installation.
|
||||||
|
|
||||||
Having performed a `syn2mas` migration once, trying to do it again will report errors (e.g. "Error: The MAS database is not empty: rows found in at least `users`. Please drop and recreate the database, then try again.").
|
Having performed a `syn2mas` migration once, trying to do it again will report errors (e.g. "Error: The MAS database is not empty: rows found in at least `users`. Please drop and recreate the database, then try again.").
|
||||||
|
|
||||||
## Verify that Matrix Authentication Service is installed correctly
|
## Verify that Matrix Authentication Service is installed correctly
|
||||||
|
|||||||
@@ -178,11 +178,11 @@ Name | Description
|
|||||||
`matrix_metrics_exposure_http_basic_auth_enabled`|Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials).
|
`matrix_metrics_exposure_http_basic_auth_enabled`|Set this to `true` to protect all `https://matrix.example.com/metrics/*` endpoints with [Basic Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) (see the other variables below for supplying the actual credentials).
|
||||||
`matrix_metrics_exposure_http_basic_auth_users`|Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs.
|
`matrix_metrics_exposure_http_basic_auth_users`|Set this to the Basic Authentication credentials (raw `htpasswd` file content) used to protect `/metrics/*`. This htpasswd-file needs to be generated with the `htpasswd` tool and can include multiple username/password pairs.
|
||||||
`prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network).
|
`prometheus_node_exporter_enabled`|Set this to `true` to enable the node (general system stats) exporter (locally, on the container network).
|
||||||
`prometheus_node_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`.
|
`prometheus_node_exporter_container_labels_metrics_enabled`|Set this to `true` to expose the node (general system stats) metrics on `https://matrix.example.com/metrics/node-exporter`.
|
||||||
`prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](#enable-metrics-and-graphs-for-postgres-optional) (locally, on the container network).
|
`prometheus_postgres_exporter_enabled`|Set this to `true` to enable the [Postgres exporter](#enable-metrics-and-graphs-for-postgres-optional) (locally, on the container network).
|
||||||
`prometheus_postgres_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [Postgres exporter](#enable-metrics-and-graphs-for-postgres-optional) metrics on `https://matrix.example.com/metrics/postgres-exporter`.
|
`prometheus_postgres_exporter_container_labels_metrics_enabled`|Set this to `true` to expose the [Postgres exporter](#enable-metrics-and-graphs-for-postgres-optional) metrics on `https://matrix.example.com/metrics/postgres-exporter`.
|
||||||
`prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [prometheus-nginxlog-exporter](#enable-metrics-and-graphs-for-nginx-logs-optional) (locally, on the container network).
|
`prometheus_nginxlog_exporter_enabled`|Set this to `true` to enable the [prometheus-nginxlog-exporter](#enable-metrics-and-graphs-for-nginx-logs-optional) (locally, on the container network).
|
||||||
`prometheus_nginxlog_exporter_container_labels_traefik_enabled`|Set this to `true` to expose the [prometheus-nginxlog-exporter](#enable-metrics-and-graphs-for-nginx-logs-optional) metrics on `https://matrix.example.com/metrics/nginxlog`.
|
`prometheus_nginxlog_exporter_container_labels_metrics_enabled`|Set this to `true` to expose the [prometheus-nginxlog-exporter](#enable-metrics-and-graphs-for-nginx-logs-optional) metrics on `https://matrix.example.com/metrics/nginxlog`.
|
||||||
|
|
||||||
### Expose metrics of other services/roles
|
### Expose metrics of other services/roles
|
||||||
|
|
||||||
|
|||||||
@@ -31,10 +31,13 @@ To enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashbo
|
|||||||
traefik_dashboard_enabled: true
|
traefik_dashboard_enabled: true
|
||||||
traefik_dashboard_hostname: "{{ matrix_server_fqn_matrix }}"
|
traefik_dashboard_hostname: "{{ matrix_server_fqn_matrix }}"
|
||||||
traefik_dashboard_basicauth_enabled: true
|
traefik_dashboard_basicauth_enabled: true
|
||||||
traefik_dashboard_basicauth_user: YOUR_USERNAME_HERE
|
traefik_dashboard_basicauth_htpasswd: "YOUR_USERNAME_HERE:$apr1$..."
|
||||||
traefik_dashboard_basicauth_password: YOUR_PASSWORD_HERE
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Generate the `traefik_dashboard_basicauth_htpasswd` value on your local machine with a command like `htpasswd -nb YOUR_USERNAME_HERE YOUR_PASSWORD_HERE`.
|
||||||
|
|
||||||
|
The role also supports the legacy `traefik_dashboard_basicauth_user` / `traefik_dashboard_basicauth_password` convenience variables, but that path depends on the `passlib` Python library on the Ansible controller, may be affected by passlib/bcrypt compatibility issues, and generates non-deterministic hashes which can lead to unnecessary changes.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts.
|
> Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts.
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
---
|
---
|
||||||
|
# This variable acknowledges that you've reviewed breaking changes up to this version.
|
||||||
|
# The playbook will fail if this is outdated, guiding you through what changed.
|
||||||
|
# See the changelog: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md
|
||||||
|
matrix_playbook_migration_validated_version: v2026.04.02.0
|
||||||
|
|
||||||
# The bare domain name which represents your Matrix identity.
|
# The bare domain name which represents your Matrix identity.
|
||||||
# Matrix user IDs for your server will be of the form (`@alice:example.com`).
|
# Matrix user IDs for your server will be of the form (`@alice:example.com`).
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
devShells.default = mkShell {
|
devShells.default = mkShell {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
just
|
just
|
||||||
|
mise
|
||||||
ansible
|
ansible
|
||||||
];
|
];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': (backup_borg_identifier + '.timer'),
|
'name': (backup_borg_identifier + '.timer'),
|
||||||
'priority': 5000,
|
'priority': 5000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (backup_borg_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'backup', 'borg'],
|
'groups': ['matrix', 'backup', 'borg'],
|
||||||
}] if backup_borg_enabled else [])
|
}] if backup_borg_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -383,14 +383,14 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': 'matrix-appservice-kakaotalk.service',
|
'name': 'matrix-appservice-kakaotalk.service',
|
||||||
'priority': 2000,
|
'priority': 2000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_appservice_kakaotalk_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'bridges', 'appservice-kakaotalk'],
|
'groups': ['matrix', 'bridges', 'appservice-kakaotalk'],
|
||||||
}] if matrix_appservice_kakaotalk_enabled else [])
|
}] if matrix_appservice_kakaotalk_enabled else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': 'matrix-appservice-kakaotalk-node.service',
|
'name': 'matrix-appservice-kakaotalk-node.service',
|
||||||
'priority': 1900,
|
'priority': 1900,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_appservice_kakaotalk_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'bridges', 'appservice-kakaotalk', 'appservice-kakaotalk-node'],
|
'groups': ['matrix', 'bridges', 'appservice-kakaotalk', 'appservice-kakaotalk-node'],
|
||||||
}] if matrix_appservice_kakaotalk_enabled else [])
|
}] if matrix_appservice_kakaotalk_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -404,14 +404,14 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': 'matrix-wechat.service',
|
'name': 'matrix-wechat.service',
|
||||||
'priority': 2000,
|
'priority': 2000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_wechat_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'bridges', 'wechat'],
|
'groups': ['matrix', 'bridges', 'wechat'],
|
||||||
}] if matrix_wechat_enabled else [])
|
}] if matrix_wechat_enabled else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': 'matrix-wechat-agent.service',
|
'name': 'matrix-wechat-agent.service',
|
||||||
'priority': 2000,
|
'priority': 2000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_wechat_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'bridges', 'wechat'],
|
'groups': ['matrix', 'bridges', 'wechat'],
|
||||||
}] if matrix_wechat_enabled else [])
|
}] if matrix_wechat_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -621,7 +621,12 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': ('matrix-' + matrix_homeserver_implementation + '.service'),
|
'name': ('matrix-' + matrix_homeserver_implementation + '.service'),
|
||||||
'priority': matrix_homeserver_systemd_service_manager_priority,
|
'priority': matrix_homeserver_systemd_service_manager_priority,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (
|
||||||
|
(matrix_conduit_restart_necessary | bool) if matrix_homeserver_implementation == 'conduit'
|
||||||
|
else (matrix_continuwuity_restart_necessary | bool) if matrix_homeserver_implementation == 'continuwuity'
|
||||||
|
else (matrix_dendrite_restart_necessary | bool) if matrix_homeserver_implementation == 'dendrite'
|
||||||
|
else true
|
||||||
|
),
|
||||||
'groups': ['matrix', 'homeservers', matrix_homeserver_implementation],
|
'groups': ['matrix', 'homeservers', matrix_homeserver_implementation],
|
||||||
}] if matrix_homeserver_enabled else [])
|
}] if matrix_homeserver_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -684,28 +689,28 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': (jitsi_identifier + '-web.service'),
|
'name': (jitsi_identifier + '-web.service'),
|
||||||
'priority': 4200,
|
'priority': 4200,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (jitsi_web_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'jitsi', 'jitsi-web'],
|
'groups': ['matrix', 'jitsi', 'jitsi-web'],
|
||||||
}] if jitsi_enabled else [])
|
}] if jitsi_enabled else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': (jitsi_identifier + '-prosody.service'),
|
'name': (jitsi_identifier + '-prosody.service'),
|
||||||
'priority': 4000,
|
'priority': 4000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (jitsi_prosody_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'jitsi', 'jitsi-prosody'],
|
'groups': ['matrix', 'jitsi', 'jitsi-prosody'],
|
||||||
}] if jitsi_enabled else [])
|
}] if jitsi_enabled else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': (jitsi_identifier + '-jicofo.service'),
|
'name': (jitsi_identifier + '-jicofo.service'),
|
||||||
'priority': 4100,
|
'priority': 4100,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (jitsi_jicofo_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'jitsi', 'jitsi-jicofo'],
|
'groups': ['matrix', 'jitsi', 'jitsi-jicofo'],
|
||||||
}] if jitsi_enabled else [])
|
}] if jitsi_enabled else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': (jitsi_identifier + '-jvb.service'),
|
'name': (jitsi_identifier + '-jvb.service'),
|
||||||
'priority': 4100,
|
'priority': 4100,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (jitsi_jvb_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'jitsi', 'jitsi-jvb'],
|
'groups': ['matrix', 'jitsi', 'jitsi-jvb'],
|
||||||
}] if jitsi_enabled else [])
|
}] if jitsi_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -719,7 +724,7 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': (matrix_media_repo_identifier + '.service'),
|
'name': (matrix_media_repo_identifier + '.service'),
|
||||||
'priority': 4000,
|
'priority': 4000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_media_repo_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'matrix-media-repo'],
|
'groups': ['matrix', 'matrix-media-repo'],
|
||||||
}] if matrix_media_repo_enabled else [])
|
}] if matrix_media_repo_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -803,7 +808,7 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': 'matrix-element-call.service',
|
'name': 'matrix-element-call.service',
|
||||||
'priority': 4000,
|
'priority': 4000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_element_call_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'element-call'],
|
'groups': ['matrix', 'element-call'],
|
||||||
}] if matrix_element_call_enabled else [])
|
}] if matrix_element_call_enabled else [])
|
||||||
+
|
+
|
||||||
@@ -838,14 +843,14 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
([{
|
([{
|
||||||
'name': 'matrix-goofys.service',
|
'name': 'matrix-goofys.service',
|
||||||
'priority': 800,
|
'priority': 800,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_goofys_restart_necessary | bool),
|
||||||
'groups': ['matrix', 'goofys'],
|
'groups': ['matrix', 'goofys'],
|
||||||
}] if (matrix_synapse_enabled and matrix_s3_media_store_enabled) else [])
|
}] if (matrix_synapse_enabled and matrix_s3_media_store_enabled) else [])
|
||||||
+
|
+
|
||||||
([{
|
([{
|
||||||
'name': 'matrix-synapse-s3-storage-provider-migrate.timer',
|
'name': 'matrix-synapse-s3-storage-provider-migrate.timer',
|
||||||
'priority': 5000,
|
'priority': 5000,
|
||||||
'restart_necessary': true,
|
'restart_necessary': (matrix_synapse_s3_storage_provider_restart_necessary | bool),
|
||||||
'groups': ['matrix'],
|
'groups': ['matrix'],
|
||||||
}] if (matrix_synapse_enabled and matrix_synapse_ext_synapse_s3_storage_provider_enabled) else [])
|
}] if (matrix_synapse_enabled and matrix_synapse_ext_synapse_s3_storage_provider_enabled) else [])
|
||||||
+
|
+
|
||||||
@@ -4904,6 +4909,8 @@ matrix_synapse_experimental_features_msc4108_enabled: "{{ matrix_authentication_
|
|||||||
|
|
||||||
matrix_synapse_experimental_features_msc4140_enabled: "{{ matrix_rtc_enabled }}"
|
matrix_synapse_experimental_features_msc4140_enabled: "{{ matrix_rtc_enabled }}"
|
||||||
|
|
||||||
|
matrix_synapse_experimental_features_msc4143_enabled: "{{ matrix_rtc_enabled }}"
|
||||||
|
|
||||||
matrix_synapse_experimental_features_msc4222_enabled: "{{ matrix_rtc_enabled }}"
|
matrix_synapse_experimental_features_msc4222_enabled: "{{ matrix_rtc_enabled }}"
|
||||||
|
|
||||||
# Disable password authentication when delegating authentication to Matrix Authentication Service.
|
# Disable password authentication when delegating authentication to Matrix Authentication Service.
|
||||||
@@ -5221,11 +5228,10 @@ prometheus_node_exporter_container_network: "{{ matrix_monitoring_container_netw
|
|||||||
|
|
||||||
prometheus_node_exporter_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}"
|
prometheus_node_exporter_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [] }}"
|
||||||
|
|
||||||
prometheus_node_exporter_container_labels_traefik_enabled: "{{ matrix_metrics_exposure_enabled }}"
|
prometheus_node_exporter_container_labels_metrics_enabled: "{{ matrix_metrics_exposure_enabled }}"
|
||||||
prometheus_node_exporter_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
prometheus_node_exporter_container_labels_metrics_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
||||||
prometheus_node_exporter_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
prometheus_node_exporter_container_labels_metrics_entrypoints: "{{ traefik_entrypoint_primary }}"
|
||||||
prometheus_node_exporter_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
prometheus_node_exporter_container_labels_metrics_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
||||||
|
|
||||||
prometheus_node_exporter_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
prometheus_node_exporter_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
||||||
prometheus_node_exporter_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
prometheus_node_exporter_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
||||||
|
|
||||||
@@ -5261,14 +5267,13 @@ prometheus_postgres_exporter_container_additional_networks: |
|
|||||||
{{
|
{{
|
||||||
([postgres_container_network] if (postgres_enabled and prometheus_postgres_exporter_database_hostname == postgres_connection_hostname and prometheus_postgres_exporter_container_network != postgres_container_network) else [])
|
([postgres_container_network] if (postgres_enabled and prometheus_postgres_exporter_database_hostname == postgres_connection_hostname and prometheus_postgres_exporter_container_network != postgres_container_network) else [])
|
||||||
+
|
+
|
||||||
([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and prometheus_postgres_exporter_container_labels_traefik_enabled else [])
|
([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and prometheus_postgres_exporter_container_labels_metrics_enabled else [])
|
||||||
}}
|
}}
|
||||||
|
|
||||||
prometheus_postgres_exporter_container_labels_traefik_enabled: "{{ matrix_metrics_exposure_enabled }}"
|
prometheus_postgres_exporter_container_labels_metrics_enabled: "{{ matrix_metrics_exposure_enabled }}"
|
||||||
prometheus_postgres_exporter_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
prometheus_postgres_exporter_container_labels_metrics_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
||||||
prometheus_postgres_exporter_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
prometheus_postgres_exporter_container_labels_metrics_entrypoints: "{{ traefik_entrypoint_primary }}"
|
||||||
prometheus_postgres_exporter_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
prometheus_postgres_exporter_container_labels_metrics_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
||||||
|
|
||||||
prometheus_postgres_exporter_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
prometheus_postgres_exporter_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
||||||
prometheus_postgres_exporter_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
prometheus_postgres_exporter_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
||||||
|
|
||||||
@@ -5312,14 +5317,13 @@ prometheus_nginxlog_exporter_container_network_deletion_enabled: false
|
|||||||
|
|
||||||
prometheus_nginxlog_exporter_container_additional_networks_auto: |-
|
prometheus_nginxlog_exporter_container_additional_networks_auto: |-
|
||||||
{{
|
{{
|
||||||
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and prometheus_nginxlog_exporter_container_labels_traefik_enabled) else [])
|
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and prometheus_nginxlog_exporter_container_labels_metrics_enabled) else [])
|
||||||
}}
|
}}
|
||||||
|
|
||||||
prometheus_nginxlog_exporter_container_labels_traefik_enabled: "{{ matrix_metrics_exposure_enabled }}"
|
prometheus_nginxlog_exporter_container_labels_metrics_enabled: "{{ matrix_metrics_exposure_enabled }}"
|
||||||
prometheus_nginxlog_exporter_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
prometheus_nginxlog_exporter_container_labels_metrics_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
||||||
prometheus_nginxlog_exporter_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
prometheus_nginxlog_exporter_container_labels_metrics_entrypoints: "{{ traefik_entrypoint_primary }}"
|
||||||
prometheus_nginxlog_exporter_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
prometheus_nginxlog_exporter_container_labels_metrics_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
||||||
|
|
||||||
prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
||||||
prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
prometheus_nginxlog_exporter_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
||||||
|
|
||||||
@@ -5782,6 +5786,8 @@ matrix_continuwuity_container_labels_public_federation_api_traefik_tls: "{{ matr
|
|||||||
matrix_continuwuity_container_labels_internal_client_api_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}"
|
matrix_continuwuity_container_labels_internal_client_api_enabled: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_enabled }}"
|
||||||
matrix_continuwuity_container_labels_internal_client_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
|
matrix_continuwuity_container_labels_internal_client_api_traefik_entrypoints: "{{ matrix_playbook_internal_matrix_client_api_traefik_entrypoint_name }}"
|
||||||
|
|
||||||
|
matrix_continuwuity_config_rtc_foci_livekit_url: "{{ matrix_livekit_jwt_service_public_url if matrix_livekit_jwt_service_enabled else '' }}"
|
||||||
|
|
||||||
matrix_continuwuity_config_turn_uris: "{{ coturn_turn_uris if coturn_enabled else [] }}"
|
matrix_continuwuity_config_turn_uris: "{{ coturn_turn_uris if coturn_enabled else [] }}"
|
||||||
matrix_continuwuity_config_turn_secret: "{{ coturn_turn_static_auth_secret if (coturn_enabled and coturn_authentication_method == 'auth-secret') else '' }}"
|
matrix_continuwuity_config_turn_secret: "{{ coturn_turn_static_auth_secret if (coturn_enabled and coturn_authentication_method == 'auth-secret') else '' }}"
|
||||||
matrix_continuwuity_config_turn_username: "{{ coturn_lt_cred_mech_username if (coturn_enabled and coturn_authentication_method == 'lt-cred-mech') else '' }}"
|
matrix_continuwuity_config_turn_username: "{{ coturn_lt_cred_mech_username if (coturn_enabled and coturn_authentication_method == 'lt-cred-mech') else '' }}"
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ mdit-py-plugins==0.5.0
|
|||||||
mdurl==0.1.2
|
mdurl==0.1.2
|
||||||
myst-parser==5.0.0
|
myst-parser==5.0.0
|
||||||
packaging==26.0
|
packaging==26.0
|
||||||
Pygments==2.19.2
|
Pygments==2.20.0
|
||||||
PyYAML==6.0.3
|
PyYAML==6.0.3
|
||||||
requests==2.32.5
|
requests==2.33.1
|
||||||
setuptools==82.0.1
|
setuptools==82.0.1
|
||||||
snowballstemmer==3.0.1
|
snowballstemmer==3.0.1
|
||||||
Sphinx==9.1.0
|
Sphinx==9.1.0
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -514,105 +514,109 @@ msgid "To perform a real migration, run the `matrix-authentication-service-mas-c
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:401
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:401
|
||||||
msgid "Having performed a `syn2mas` migration once, trying to do it again will report errors (e.g. \"Error: The MAS database is not empty: rows found in at least `users`. Please drop and recreate the database, then try again.\")."
|
msgid "After `syn2mas` completes, Synapse will intentionally remain stopped to avoid new registrations or other authentication changes from being accepted before the migration is completed. Continue with the next steps in this guide before re-running the installation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:403
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:403
|
||||||
msgid "Verify that Matrix Authentication Service is installed correctly"
|
msgid "Having performed a `syn2mas` migration once, trying to do it again will report errors (e.g. \"Error: The MAS database is not empty: rows found in at least `users`. Please drop and recreate the database, then try again.\")."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:405
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:405
|
||||||
msgid "After [installation](#installing), run the `doctor` subcommand of the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) to verify that MAS is installed correctly."
|
msgid "Verify that Matrix Authentication Service is installed correctly"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:407
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:407
|
||||||
msgid "You can do it:"
|
msgid "After [installation](#installing), run the `doctor` subcommand of the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) to verify that MAS is installed correctly."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:409
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:409
|
||||||
msgid "either via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag: `just run-tags matrix-authentication-service-mas-cli-doctor`"
|
msgid "You can do it:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:411
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:411
|
||||||
msgid "or by running the `mas-cli` script on the server (which invokes the `mas-cli` tool inside a container): `/matrix/matrix-authentication-service/bin/mas-cli doctor`"
|
msgid "either via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag: `just run-tags matrix-authentication-service-mas-cli-doctor`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:413
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:413
|
||||||
|
msgid "or by running the `mas-cli` script on the server (which invokes the `mas-cli` tool inside a container): `/matrix/matrix-authentication-service/bin/mas-cli doctor`"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:415
|
||||||
msgid "If successful, you should see some output that looks like this:"
|
msgid "If successful, you should see some output that looks like this:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:425
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:427
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:427
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:429
|
||||||
msgid "Management"
|
msgid "Management"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:429
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:431
|
||||||
msgid "You can use the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) (exposed via the `/matrix/matrix-authentication-service/bin/mas-cli` script) to perform administrative tasks against MAS."
|
msgid "You can use the [`mas-cli` command-line tool](https://element-hq.github.io/matrix-authentication-service/reference/cli/index.html) (exposed via the `/matrix/matrix-authentication-service/bin/mas-cli` script) to perform administrative tasks against MAS."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:431
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:433
|
||||||
msgid "This documentation page already mentions:"
|
msgid "This documentation page already mentions:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:433
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:435
|
||||||
msgid "the `mas-cli doctor` sub-command in the [Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly) section, which you can run via the CLI and via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag"
|
msgid "the `mas-cli doctor` sub-command in the [Verify that Matrix Authentication Service is installed correctly](#verify-that-matrix-authentication-service-is-installed-correctly) section, which you can run via the CLI and via the Ansible playbook's `matrix-authentication-service-mas-cli-doctor` tag"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:435
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:437
|
||||||
msgid "the `mas-cli manage register-user` sub-command in the [Registering users](./registering-users.md) documentation"
|
msgid "the `mas-cli manage register-user` sub-command in the [Registering users](./registering-users.md) documentation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:437
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:439
|
||||||
msgid "There are other sub-commands available. Run `/matrix/matrix-authentication-service/bin/mas-cli` to get an overview."
|
msgid "There are other sub-commands available. Run `/matrix/matrix-authentication-service/bin/mas-cli` to get an overview."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:439
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:441
|
||||||
msgid "User registration"
|
msgid "User registration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:441
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:443
|
||||||
msgid "After Matrix Authentication Service is [installed](#installing), users need to be managed there (unless you're managing them in an [upstream OAuth2 provider](#upstream-oauth2-configuration))."
|
msgid "After Matrix Authentication Service is [installed](#installing), users need to be managed there (unless you're managing them in an [upstream OAuth2 provider](#upstream-oauth2-configuration))."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:443
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:445
|
||||||
msgid "You can register users new users as described in the [Registering users](./registering-users.md) documentation (via `mas-cli manage register-user` or the Ansible playbook's `register-user` tag)."
|
msgid "You can register users new users as described in the [Registering users](./registering-users.md) documentation (via `mas-cli manage register-user` or the Ansible playbook's `register-user` tag)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:445
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:447
|
||||||
msgid "Working around email deliverability issues"
|
msgid "Working around email deliverability issues"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:447
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:449
|
||||||
msgid "Matrix Authentication Service only sends emails when:"
|
msgid "Matrix Authentication Service only sends emails when:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:449
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:451
|
||||||
msgid "it verifies email addresses for users who are self-registering with a password"
|
msgid "it verifies email addresses for users who are self-registering with a password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:451
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:453
|
||||||
msgid "a user tries to add an email to their account"
|
msgid "a user tries to add an email to their account"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:453
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:455
|
||||||
msgid "If Matrix Authentication Service tries to send an email and it fails because [your email-sending configuration](./configuring-playbook-email.md) is not working, you may need to work around email deliverability."
|
msgid "If Matrix Authentication Service tries to send an email and it fails because [your email-sending configuration](./configuring-playbook-email.md) is not working, you may need to work around email deliverability."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:455
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:457
|
||||||
msgid "If email delivery is not working, **you can retrieve the email verification code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`)."
|
msgid "If email delivery is not working, **you can retrieve the email verification code from the Matrix Authentication Service's logs** (`journalctl -fu matrix-authentication-service`)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:457
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:459
|
||||||
msgid "Alternatively, you can use the [`mas-cli` management tool](#management) to manually verify email addresses for users. Example: `/matrix/matrix-authentication-service/bin/mas-cli manage verify-email some.username email@example.com`"
|
msgid "Alternatively, you can use the [`mas-cli` management tool](#management) to manually verify email addresses for users. Example: `/matrix/matrix-authentication-service/bin/mas-cli manage verify-email some.username email@example.com`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:459
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:461
|
||||||
msgid "Troubleshooting"
|
msgid "Troubleshooting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:461
|
#: ../../../docs/configuring-playbook-matrix-authentication-service.md:463
|
||||||
msgid "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-authentication-service`."
|
msgid "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-authentication-service`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -291,7 +291,7 @@ msgid "Set this to `true` to enable the node (general system stats) exporter (lo
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
||||||
msgid "`prometheus_node_exporter_container_labels_traefik_enabled`"
|
msgid "`prometheus_node_exporter_container_labels_metrics_enabled`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
||||||
@@ -307,7 +307,7 @@ msgid "Set this to `true` to enable the [Postgres exporter](#enable-metrics-and-
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
||||||
msgid "`prometheus_postgres_exporter_container_labels_traefik_enabled`"
|
msgid "`prometheus_postgres_exporter_container_labels_metrics_enabled`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
||||||
@@ -323,7 +323,7 @@ msgid "Set this to `true` to enable the [prometheus-nginxlog-exporter](#enable-m
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
||||||
msgid "`prometheus_nginxlog_exporter_container_labels_traefik_enabled`"
|
msgid "`prometheus_nginxlog_exporter_container_labels_metrics_enabled`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
#: ../../../docs/configuring-playbook-prometheus-grafana.md:0
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -48,139 +48,147 @@ msgstr ""
|
|||||||
msgid "To enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`), add the following configuration to your `vars.yml` file:"
|
msgid "To enable a Traefik [Dashboard](https://doc.traefik.io/traefik/operations/dashboard/) UI at `https://matrix.example.com/dashboard/` (note the trailing `/`), add the following configuration to your `vars.yml` file:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:38
|
#: ../../../docs/configuring-playbook-traefik.md:37
|
||||||
msgid "[!WARNING] Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts."
|
msgid "Generate the `traefik_dashboard_basicauth_htpasswd` value on your local machine with a command like `htpasswd -nb YOUR_USERNAME_HERE YOUR_PASSWORD_HERE`."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../docs/configuring-playbook-traefik.md:39
|
||||||
|
msgid "The role also supports the legacy `traefik_dashboard_basicauth_user` / `traefik_dashboard_basicauth_password` convenience variables, but that path depends on the `passlib` Python library on the Ansible controller, may be affected by passlib/bcrypt compatibility issues, and generates non-deterministic hashes which can lead to unnecessary changes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:41
|
#: ../../../docs/configuring-playbook-traefik.md:41
|
||||||
|
msgid "[!WARNING] Enabling the dashboard on a hostname you use for something else (like `matrix_server_fqn_matrix` in the configuration above) may cause conflicts. Enabling the Traefik Dashboard makes Traefik capture all `/dashboard` and `/api` requests and forward them to itself. If any of the services hosted on the same hostname requires any of these 2 URL prefixes, you will experience problems. So far, we're not aware of any playbook services which occupy these endpoints and are likely to cause conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../../../docs/configuring-playbook-traefik.md:44
|
||||||
msgid "Extending the configuration"
|
msgid "Extending the configuration"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:43
|
#: ../../../docs/configuring-playbook-traefik.md:46
|
||||||
msgid "There are some additional things you may wish to configure about the component."
|
msgid "There are some additional things you may wish to configure about the component."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:45
|
#: ../../../docs/configuring-playbook-traefik.md:48
|
||||||
msgid "Take a look at:"
|
msgid "Take a look at:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:47
|
#: ../../../docs/configuring-playbook-traefik.md:50
|
||||||
msgid "[Traefik role](https://github.com/mother-of-all-self-hosting/ansible-role-traefik)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-traefik/blob/main/defaults/main.yml) for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `traefik_configuration_extension_yaml` variable"
|
msgid "[Traefik role](https://github.com/mother-of-all-self-hosting/ansible-role-traefik)'s [`defaults/main.yml`](https://github.com/mother-of-all-self-hosting/ansible-role-traefik/blob/main/defaults/main.yml) for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `traefik_configuration_extension_yaml` variable"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:49
|
#: ../../../docs/configuring-playbook-traefik.md:52
|
||||||
msgid "For example, to enable and secure the Dashboard, you can add the following configuration to your `vars.yml` file:"
|
msgid "For example, to enable and secure the Dashboard, you can add the following configuration to your `vars.yml` file:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:51
|
#: ../../../docs/configuring-playbook-traefik.md:54
|
||||||
msgid "**Note**: this is a contrived example as you can enable and secure the Dashboard using the dedicated variables. See above for details."
|
msgid "**Note**: this is a contrived example as you can enable and secure the Dashboard using the dedicated variables. See above for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:69
|
#: ../../../docs/configuring-playbook-traefik.md:72
|
||||||
msgid "Reverse-proxying another service behind Traefik"
|
msgid "Reverse-proxying another service behind Traefik"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:71
|
#: ../../../docs/configuring-playbook-traefik.md:74
|
||||||
msgid "The preferred way to reverse-proxy additional services behind Traefik would be to start the service as another container, configure the container with the corresponding Traefik [container labels](https://docs.docker.com/config/labels-custom-metadata/) (see [Traefik & Docker](https://doc.traefik.io/traefik/routing/providers/docker/)), and connect the service to the `traefik` network. Some services are also already available via the compatible [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), but take a look at the minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md)."
|
msgid "The preferred way to reverse-proxy additional services behind Traefik would be to start the service as another container, configure the container with the corresponding Traefik [container labels](https://docs.docker.com/config/labels-custom-metadata/) (see [Traefik & Docker](https://doc.traefik.io/traefik/routing/providers/docker/)), and connect the service to the `traefik` network. Some services are also already available via the compatible [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook), but take a look at the minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:73
|
#: ../../../docs/configuring-playbook-traefik.md:76
|
||||||
msgid "However, if your service does not run on a container or runs on another machine, the following configuration might be what you are looking for."
|
msgid "However, if your service does not run on a container or runs on another machine, the following configuration might be what you are looking for."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:75
|
#: ../../../docs/configuring-playbook-traefik.md:78
|
||||||
msgid "Reverse-proxying a remote HTTP/HTTPS service behind Traefik"
|
msgid "Reverse-proxying a remote HTTP/HTTPS service behind Traefik"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:77
|
#: ../../../docs/configuring-playbook-traefik.md:80
|
||||||
msgid "If you want to host another webserver would be reachable via `my-fancy-website.example.net` from the internet and via `https://<internal webserver IP address>:<internal port>` from inside your network, you can make the playbook's integrated Traefik instance reverse-proxy the traffic to the correct host."
|
msgid "If you want to host another webserver would be reachable via `my-fancy-website.example.net` from the internet and via `https://<internal webserver IP address>:<internal port>` from inside your network, you can make the playbook's integrated Traefik instance reverse-proxy the traffic to the correct host."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:79
|
#: ../../../docs/configuring-playbook-traefik.md:82
|
||||||
msgid "Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server — `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`."
|
msgid "Prerequisites: DNS and routing for the domain `my-fancy-website.example.net` need to be set up correctly. In this case, you'd be pointing the domain name to your Matrix server — `my-fancy-website.example.net` would be a CNAME going to `matrix.example.com`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:81
|
#: ../../../docs/configuring-playbook-traefik.md:84
|
||||||
msgid "First, we have to adjust the static configuration of Traefik, so that we can add additional configuration files:"
|
msgid "First, we have to adjust the static configuration of Traefik, so that we can add additional configuration files:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:95
|
#: ../../../docs/configuring-playbook-traefik.md:98
|
||||||
msgid "If you are using a self-signed certificate on your webserver, you can tell Traefik to trust your own backend servers by adding more configuration to the static configuration file. If you do so, bear in mind the security implications of disabling the certificate validity checks towards your back end."
|
msgid "If you are using a self-signed certificate on your webserver, you can tell Traefik to trust your own backend servers by adding more configuration to the static configuration file. If you do so, bear in mind the security implications of disabling the certificate validity checks towards your back end."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:109
|
#: ../../../docs/configuring-playbook-traefik.md:112
|
||||||
msgid "Next, you have to add a new dynamic configuration file for Traefik that contains the actual information of the server using the `aux_file_definitions` variable. In this example, we will terminate SSL at the Traefik instance and connect to the other server via HTTPS. Traefik will now take care of managing the certificates."
|
msgid "Next, you have to add a new dynamic configuration file for Traefik that contains the actual information of the server using the `aux_file_definitions` variable. In this example, we will terminate SSL at the Traefik instance and connect to the other server via HTTPS. Traefik will now take care of managing the certificates."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:128
|
#: ../../../docs/configuring-playbook-traefik.md:131
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:151
|
#: ../../../docs/configuring-playbook-traefik.md:154
|
||||||
msgid "Changing the `url` to one with an `http://` prefix would allow to connect to the server via HTTP."
|
msgid "Changing the `url` to one with an `http://` prefix would allow to connect to the server via HTTP."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:130
|
#: ../../../docs/configuring-playbook-traefik.md:133
|
||||||
msgid "Reverse-proxying another service behind Traefik without terminating SSL"
|
msgid "Reverse-proxying another service behind Traefik without terminating SSL"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:132
|
#: ../../../docs/configuring-playbook-traefik.md:135
|
||||||
msgid "If you do not want to terminate SSL at the Traefik instance (for example, because you're already terminating SSL at other webserver), you need to adjust the static configuration in the same way as in the previous chapter in order to be able to add our own dynamic configuration files. Afterwards, you can add the following configuration to your `vars.yml` configuration file:"
|
msgid "If you do not want to terminate SSL at the Traefik instance (for example, because you're already terminating SSL at other webserver), you need to adjust the static configuration in the same way as in the previous chapter in order to be able to add our own dynamic configuration files. Afterwards, you can add the following configuration to your `vars.yml` configuration file:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:153
|
#: ../../../docs/configuring-playbook-traefik.md:156
|
||||||
msgid "With these changes, all TCP traffic will be reverse-proxied to the target system."
|
msgid "With these changes, all TCP traffic will be reverse-proxied to the target system."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:155
|
#: ../../../docs/configuring-playbook-traefik.md:158
|
||||||
msgid "[!WARNING] This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```."
|
msgid "[!WARNING] This configuration might lead to problems or need additional steps when a [certbot](https://certbot.eff.org/) behind Traefik also tries to manage [Let's Encrypt](https://letsencrypt.org/) certificates, as Traefik captures all traffic to ```PathPrefix(`/.well-known/acme-challenge/`)```."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:158
|
#: ../../../docs/configuring-playbook-traefik.md:161
|
||||||
msgid "Traefik behind a `proxy_protocol` reverse-proxy"
|
msgid "Traefik behind a `proxy_protocol` reverse-proxy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:160
|
#: ../../../docs/configuring-playbook-traefik.md:163
|
||||||
msgid "If you run a reverse-proxy which speaks `proxy_protocol`, add the following configuration to your `vars.yml` file:"
|
msgid "If you run a reverse-proxy which speaks `proxy_protocol`, add the following configuration to your `vars.yml` file:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:179
|
#: ../../../docs/configuring-playbook-traefik.md:182
|
||||||
msgid "Other configurations"
|
msgid "Other configurations"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:181
|
#: ../../../docs/configuring-playbook-traefik.md:184
|
||||||
msgid "Adjusting SSL certificate retrieval"
|
msgid "Adjusting SSL certificate retrieval"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:183
|
#: ../../../docs/configuring-playbook-traefik.md:186
|
||||||
msgid "See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page."
|
msgid "See the dedicated [Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) documentation page."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:185
|
#: ../../../docs/configuring-playbook-traefik.md:188
|
||||||
msgid "Installing"
|
msgid "Installing"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:187
|
#: ../../../docs/configuring-playbook-traefik.md:190
|
||||||
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
|
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:194
|
#: ../../../docs/configuring-playbook-traefik.md:197
|
||||||
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
|
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:196
|
#: ../../../docs/configuring-playbook-traefik.md:199
|
||||||
msgid "`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."
|
msgid "`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."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:198
|
#: ../../../docs/configuring-playbook-traefik.md:201
|
||||||
msgid "Troubleshooting"
|
msgid "Troubleshooting"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:200
|
#: ../../../docs/configuring-playbook-traefik.md:203
|
||||||
msgid "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-traefik`."
|
msgid "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-traefik`."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:202
|
#: ../../../docs/configuring-playbook-traefik.md:205
|
||||||
msgid "Increase logging verbosity"
|
msgid "Increase logging verbosity"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../../../docs/configuring-playbook-traefik.md:204
|
#: ../../../docs/configuring-playbook-traefik.md:207
|
||||||
msgid "The default logging level for this component is `INFO`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:"
|
msgid "The default logging level for this component is `INFO`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
"Project-Id-Version: matrix-docker-ansible-deploy \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-03-18 23:05+0000\n"
|
"POT-Creation-Date: 2026-04-02 19:30+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
|||||||
50
justfile
50
justfile
@@ -4,6 +4,11 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
# mise (dev tool version manager)
|
||||||
|
mise_data_dir := env("MISE_DATA_DIR", justfile_directory() / "var/mise")
|
||||||
|
mise_trusted_config_paths := justfile_directory() / "mise.toml"
|
||||||
|
prek_home := env("PREK_HOME", justfile_directory() / "var/prek")
|
||||||
|
|
||||||
# Shows help
|
# Shows help
|
||||||
default:
|
default:
|
||||||
@{{ just_executable() }} --list --justfile "{{ justfile() }}"
|
@{{ just_executable() }} --list --justfile "{{ justfile() }}"
|
||||||
@@ -39,9 +44,39 @@ update-playbook-only:
|
|||||||
@git pull -q
|
@git pull -q
|
||||||
@-git stash pop -q
|
@-git stash pop -q
|
||||||
|
|
||||||
# Runs ansible-lint against all roles in the playbook
|
# Invokes mise with the project-local data directory
|
||||||
lint:
|
mise *args: _ensure_mise_data_directory
|
||||||
ansible-lint
|
#!/bin/sh
|
||||||
|
export MISE_DATA_DIR="{{ mise_data_dir }}"
|
||||||
|
export MISE_TRUSTED_CONFIG_PATHS="{{ mise_trusted_config_paths }}"
|
||||||
|
export MISE_YES=1
|
||||||
|
export PREK_HOME="{{ prek_home }}"
|
||||||
|
mise {{ args }}
|
||||||
|
|
||||||
|
# Runs prek (pre-commit hooks manager) with the given arguments
|
||||||
|
prek *args: _ensure_mise_tools_installed
|
||||||
|
@{{ just_executable() }} --justfile "{{ justfile() }}" mise exec -- prek {{ args }}
|
||||||
|
|
||||||
|
# Runs pre-commit hooks on staged files
|
||||||
|
prek-run-on-staged *args: _ensure_mise_tools_installed
|
||||||
|
@{{ just_executable() }} --justfile "{{ justfile() }}" prek run {{ args }}
|
||||||
|
|
||||||
|
# Runs pre-commit hooks on all files
|
||||||
|
prek-run-on-all *args: _ensure_mise_tools_installed
|
||||||
|
@{{ just_executable() }} --justfile "{{ justfile() }}" prek run --all-files {{ args }}
|
||||||
|
|
||||||
|
# Installs the git pre-commit hook
|
||||||
|
prek-install-git-pre-commit-hook: _ensure_mise_tools_installed
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eu
|
||||||
|
{{ just_executable() }} --justfile "{{ justfile() }}" mise exec -- prek install
|
||||||
|
hook="{{ justfile_directory() }}/.git/hooks/pre-commit"
|
||||||
|
# The installed git hook runs later under Git, outside this just/mise environment.
|
||||||
|
# Injecting PREK_HOME keeps prek's cache under var/prek instead of a global home dir,
|
||||||
|
# which is more predictable and works better in sandboxed tools like Codex/OpenCode.
|
||||||
|
if [ -f "$hook" ] && ! grep -q '^export PREK_HOME=' "$hook"; then
|
||||||
|
sed -i '2iexport PREK_HOME="{{ prek_home }}"' "$hook"
|
||||||
|
fi
|
||||||
|
|
||||||
# Runs the playbook with --tags=install-all,ensure-matrix-users-created,start and optional arguments
|
# Runs the playbook with --tags=install-all,ensure-matrix-users-created,start and optional arguments
|
||||||
install-all *extra_args: (run-tags "install-all,ensure-matrix-users-created,start" extra_args)
|
install-all *extra_args: (run-tags "install-all,ensure-matrix-users-created,start" extra_args)
|
||||||
@@ -84,3 +119,12 @@ stop-group group *extra_args:
|
|||||||
# Rebuilds the mautrix-meta-instagram Ansible role using the mautrix-meta-messenger role as a source
|
# Rebuilds the mautrix-meta-instagram Ansible role using the mautrix-meta-messenger role as a source
|
||||||
rebuild-mautrix-meta-instagram:
|
rebuild-mautrix-meta-instagram:
|
||||||
/bin/bash "{{ justfile_directory() }}/bin/rebuild-mautrix-meta-instagram.sh" "{{ justfile_directory() }}/roles/custom"
|
/bin/bash "{{ justfile_directory() }}/bin/rebuild-mautrix-meta-instagram.sh" "{{ justfile_directory() }}/roles/custom"
|
||||||
|
|
||||||
|
# Internal - ensures var/mise and var/prek directories exist
|
||||||
|
_ensure_mise_data_directory:
|
||||||
|
@mkdir -p "{{ mise_data_dir }}"
|
||||||
|
@mkdir -p "{{ prek_home }}"
|
||||||
|
|
||||||
|
# Internal - ensures mise tools are installed
|
||||||
|
_ensure_mise_tools_installed: _ensure_mise_data_directory
|
||||||
|
@{{ just_executable() }} --justfile "{{ justfile() }}" mise install --quiet
|
||||||
|
|||||||
9
mise.toml
Normal file
9
mise.toml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
[tools]
|
||||||
|
prek = "0.3.2"
|
||||||
|
|
||||||
|
[settings]
|
||||||
|
yes = true
|
||||||
@@ -4,20 +4,20 @@
|
|||||||
version: v1.0.0-6
|
version: v1.0.0-6
|
||||||
name: auxiliary
|
name: auxiliary
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
|
||||||
version: v1.4.3-2.1.3-1
|
version: v1.4.3-2.1.3-2
|
||||||
name: backup_borg
|
name: backup_borg
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-cinny.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-cinny.git
|
||||||
version: v4.11.1-0
|
version: v4.11.1-1
|
||||||
name: cinny
|
name: cinny
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-container-socket-proxy.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-container-socket-proxy.git
|
||||||
version: v0.4.2-3
|
version: v0.4.2-4
|
||||||
name: container_socket_proxy
|
name: container_socket_proxy
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-coturn.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-coturn.git
|
||||||
version: v4.9.0-0
|
version: v4.9.0-1
|
||||||
name: coturn
|
name: coturn
|
||||||
activation_prefix: coturn_
|
activation_prefix: coturn_
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ddclient.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ddclient.git
|
||||||
version: v4.0.0-1
|
version: v4.0.0-2
|
||||||
name: ddclient
|
name: ddclient
|
||||||
activation_prefix: ddclient_
|
activation_prefix: ddclient_
|
||||||
- src: git+https://github.com/geerlingguy/ansible-role-docker
|
- src: git+https://github.com/geerlingguy/ansible-role-docker
|
||||||
@@ -27,28 +27,28 @@
|
|||||||
version: 542a2d68db4e9a8e9bb4b508052760b900c7dce6
|
version: 542a2d68db4e9a8e9bb4b508052760b900c7dce6
|
||||||
name: docker_sdk_for_python
|
name: docker_sdk_for_python
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git
|
||||||
version: v2.6.1-2
|
version: v2.6.1-5
|
||||||
name: etherpad
|
name: etherpad
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git
|
||||||
version: v4.98.1-r0-2-3
|
version: v4.99.1-r0-2-0
|
||||||
name: exim_relay
|
name: exim_relay
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git
|
||||||
version: v11.6.5-8
|
version: v11.6.5-9
|
||||||
name: grafana
|
name: grafana
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-hydrogen.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-hydrogen.git
|
||||||
version: v0.5.1-1
|
version: v0.5.1-2
|
||||||
name: hydrogen
|
name: hydrogen
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git
|
||||||
version: v10741-1
|
version: v10888-0
|
||||||
name: jitsi
|
name: jitsi
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git
|
||||||
version: v1.9.12-0
|
version: v1.10.1-0
|
||||||
name: livekit_server
|
name: livekit_server
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
|
||||||
version: v2.19.2-0
|
version: v2.21.0-0
|
||||||
name: ntfy
|
name: ntfy
|
||||||
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git
|
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git
|
||||||
version: 8630e4f1749bcb659c412820f754473f09055052
|
version: ea8c5cc750c4e23d004c9a836dfd9eda82d45ff4
|
||||||
name: playbook_help
|
name: playbook_help
|
||||||
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages.git
|
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages.git
|
||||||
version: 9b4b088c62b528b73a9a7c93d3109b091dd42ec6
|
version: 9b4b088c62b528b73a9a7c93d3109b091dd42ec6
|
||||||
@@ -57,25 +57,25 @@
|
|||||||
version: dd6e15246b7a9a2d921e0b3f9cd8a4a917a1bb2f
|
version: dd6e15246b7a9a2d921e0b3f9cd8a4a917a1bb2f
|
||||||
name: playbook_state_preserver
|
name: playbook_state_preserver
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git
|
||||||
version: v18.3-1
|
version: v18.3-4
|
||||||
name: postgres
|
name: postgres
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git
|
||||||
version: v18-1
|
version: v18-2
|
||||||
name: postgres_backup
|
name: postgres_backup
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git
|
||||||
version: v3.10.0-0
|
version: v3.10.0-1
|
||||||
name: prometheus
|
name: prometheus
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-nginxlog-exporter.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-nginxlog-exporter.git
|
||||||
version: v1.10.0-0
|
version: v1.10.0-2
|
||||||
name: prometheus_nginxlog_exporter
|
name: prometheus_nginxlog_exporter
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
|
||||||
version: v1.9.1-14
|
version: v1.10.2-0
|
||||||
name: prometheus_node_exporter
|
name: prometheus_node_exporter
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git
|
||||||
version: v0.19.1-0
|
version: v0.19.1-3
|
||||||
name: prometheus_postgres_exporter
|
name: prometheus_postgres_exporter
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-sable.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-sable.git
|
||||||
version: v1.6.0-1
|
version: v1.13.1-0
|
||||||
name: sable
|
name: sable
|
||||||
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
|
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
|
||||||
version: v1.5.0-0
|
version: v1.5.0-0
|
||||||
@@ -87,11 +87,11 @@
|
|||||||
version: v1.1.0-1
|
version: v1.1.0-1
|
||||||
name: timesync
|
name: timesync
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git
|
||||||
version: v3.6.10-1
|
version: v3.6.12-1
|
||||||
name: traefik
|
name: traefik
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git
|
||||||
version: v2.10.0-5
|
version: v2.10.0-5
|
||||||
name: traefik_certs_dumper
|
name: traefik_certs_dumper
|
||||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-valkey.git
|
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-valkey.git
|
||||||
version: v9.0.3-2
|
version: v9.0.3-3
|
||||||
name: valkey
|
name: valkey
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
matrix_alertmanager_receiver_enabled: true
|
matrix_alertmanager_receiver_enabled: true
|
||||||
|
|
||||||
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
|
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
|
||||||
matrix_alertmanager_receiver_version: 2026.3.18
|
matrix_alertmanager_receiver_version: 2026.4.1
|
||||||
|
|
||||||
matrix_alertmanager_receiver_scheme: https
|
matrix_alertmanager_receiver_scheme: https
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
# SPDX-FileCopyrightText: 2024 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
# SPDX-FileCopyrightText: 2024 - 2026 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
||||||
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
#
|
#
|
||||||
@@ -11,16 +11,17 @@
|
|||||||
|
|
||||||
matrix_appservice_draupnir_for_all_enabled: true
|
matrix_appservice_draupnir_for_all_enabled: true
|
||||||
|
|
||||||
# renovate: datasource=docker depName=gnuxie/draupnir
|
# renovate: datasource=docker depName=depName=ghcr.io/the-draupnir-project/draupnir
|
||||||
matrix_appservice_draupnir_for_all_version: "v2.9.0"
|
matrix_appservice_draupnir_for_all_version: "v3.0.0"
|
||||||
|
|
||||||
matrix_appservice_draupnir_for_all_container_image_self_build: false
|
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"
|
matrix_appservice_draupnir_for_all_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"
|
||||||
|
|
||||||
matrix_appservice_draupnir_for_all_container_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_draupnir_for_all_container_image_self_build else matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream }}"
|
matrix_appservice_draupnir_for_all_container_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_draupnir_for_all_container_image_self_build else matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream }}"
|
||||||
matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream: "{{ matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream_default }}"
|
matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream: "{{ matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream_default }}"
|
||||||
matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream_default: "docker.io/"
|
matrix_appservice_draupnir_for_all_container_image_registry_prefix_upstream_default: "ghcr.io/"
|
||||||
matrix_appservice_draupnir_for_all_container_image: "{{ matrix_appservice_draupnir_for_all_container_image_registry_prefix }}gnuxie/draupnir:{{ matrix_appservice_draupnir_for_all_version }}"
|
matrix_appservice_draupnir_for_all_container_image: "{{ matrix_appservice_draupnir_for_all_container_image_registry_prefix }}{{ matrix_appservice_draupnir_for_all_container_image_registry_namespace_identifier }}:{{ matrix_appservice_draupnir_for_all_version }}"
|
||||||
|
matrix_appservice_draupnir_for_all_container_image_registry_namespace_identifier: "the-draupnir-project/draupnir"
|
||||||
matrix_appservice_draupnir_for_all_container_image_force_pull: "{{ matrix_appservice_draupnir_for_all_container_image.endswith(':latest') }}"
|
matrix_appservice_draupnir_for_all_container_image_force_pull: "{{ matrix_appservice_draupnir_for_all_container_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_appservice_draupnir_for_all_base_path: "{{ matrix_base_data_path }}/draupnir-for-all"
|
matrix_appservice_draupnir_for_all_base_path: "{{ matrix_base_data_path }}/draupnir-for-all"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
SPDX-FileCopyrightText: 2024 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
SPDX-FileCopyrightText: 2024 - 2026 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@@ -28,5 +28,15 @@ webAPI:
|
|||||||
# The directory the bot should store various bits of information in
|
# The directory the bot should store various bits of information in
|
||||||
dataPath: "/data"
|
dataPath: "/data"
|
||||||
|
|
||||||
|
# Maximum number of bots each user can provision.
|
||||||
|
# Defaults to 1 when omitted.
|
||||||
|
maxDraupnirsPerUser: 1
|
||||||
|
|
||||||
|
# Allow users to self-provision by inviting the appservice bot.
|
||||||
|
# When false, provisioning must be done through admin commands.
|
||||||
|
# Defaults to false when omitted.
|
||||||
|
allowSelfServiceProvisioning: false
|
||||||
|
|
||||||
|
|
||||||
roomStateBackingStore:
|
roomStateBackingStore:
|
||||||
enabled: {{ matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled | to_json }}
|
enabled: {{ matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled | to_json }}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
SPDX-FileCopyrightText: 2024 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
SPDX-FileCopyrightText: 2024 - 2026 Catalan Lover <catalanlover@protonmail.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
@@ -61,6 +61,14 @@ commands:
|
|||||||
# will address only my_moderator_bot.
|
# will address only my_moderator_bot.
|
||||||
allowNoPrefix: false
|
allowNoPrefix: false
|
||||||
|
|
||||||
|
# Controls which symbol will prefix a secondary prefix that is described in additionalPrefixes.
|
||||||
|
# For example the `!` in `!draupnir`.
|
||||||
|
# If you wish the bot to use "slash commands" with the "/" character instead of the exclamation mark "!" change the value to `"/"` and the bot will start responding to slash commands.
|
||||||
|
|
||||||
|
symbolPrefixes:
|
||||||
|
- "!"
|
||||||
|
|
||||||
|
|
||||||
# Any additional bot prefixes that Draupnir will listen to. i.e. adding `mod` will allow `!mod help`.
|
# Any additional bot prefixes that Draupnir will listen to. i.e. adding `mod` will allow `!mod help`.
|
||||||
additionalPrefixes:
|
additionalPrefixes:
|
||||||
- "draupnir-bot"
|
- "draupnir-bot"
|
||||||
|
|||||||
@@ -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"
|
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
|
# renovate: datasource=docker depName=ghcr.io/element-hq/matrix-authentication-service
|
||||||
matrix_authentication_service_version: 1.13.0
|
matrix_authentication_service_version: 1.14.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: "{{ '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: "{{ matrix_authentication_service_container_image_registry_prefix_upstream_default }}"
|
||||||
matrix_authentication_service_container_image_registry_prefix_upstream_default: "ghcr.io/"
|
matrix_authentication_service_container_image_registry_prefix_upstream_default: "ghcr.io/"
|
||||||
|
|||||||
@@ -110,11 +110,17 @@
|
|||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
var: matrix_authentication_service_mas_cli_syn2mas_command_result
|
var: matrix_authentication_service_mas_cli_syn2mas_command_result
|
||||||
|
|
||||||
- name: Ensure Synapse is started (if it previously was)
|
- name: Inject syn2mas post-migration note
|
||||||
when: "not matrix_authentication_service_syn2mas_migrate_dry_run and matrix_authentication_service_mas_cli_syn2mas_command_result.changed"
|
when: "not matrix_authentication_service_syn2mas_migrate_dry_run and matrix_authentication_service_mas_cli_syn2mas_command_result.changed"
|
||||||
ansible.builtin.service:
|
ansible.builtin.set_fact:
|
||||||
name: matrix-synapse
|
devture_playbook_runtime_messages_list: |
|
||||||
state: started
|
{{
|
||||||
|
devture_playbook_runtime_messages_list | default([])
|
||||||
|
+
|
||||||
|
[
|
||||||
|
"Synapse was intentionally not restarted after `syn2mas`. Continue with the next steps in the Matrix Authentication Service migration guide before re-running the installation."
|
||||||
|
]
|
||||||
|
}}
|
||||||
|
|
||||||
- name: Ensure Matrix Authentication Service is started (if it previously was)
|
- name: Ensure Matrix Authentication Service is started (if it previously was)
|
||||||
when: "not matrix_authentication_service_syn2mas_migrate_dry_run and matrix_authentication_service_mas_ensure_stopped_result.changed"
|
when: "not matrix_authentication_service_syn2mas_migrate_dry_run and matrix_authentication_service_mas_ensure_stopped_result.changed"
|
||||||
|
|||||||
@@ -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"
|
matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src"
|
||||||
|
|
||||||
# renovate: datasource=docker depName=ghcr.io/etkecc/baibot
|
# renovate: datasource=docker depName=ghcr.io/etkecc/baibot
|
||||||
matrix_bot_baibot_version: v1.15.0
|
matrix_bot_baibot_version: v1.17.0
|
||||||
matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}"
|
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: "{{ '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 }}"
|
matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
||||||
# SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
# SPDX-FileCopyrightText: 2023 - 2026 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2023 Samuel Meenzen
|
# SPDX-FileCopyrightText: 2023 Samuel Meenzen
|
||||||
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
||||||
#
|
#
|
||||||
@@ -11,16 +11,17 @@
|
|||||||
|
|
||||||
matrix_bot_draupnir_enabled: true
|
matrix_bot_draupnir_enabled: true
|
||||||
|
|
||||||
# renovate: datasource=docker depName=gnuxie/draupnir
|
# renovate: datasource=docker depName=depName=ghcr.io/the-draupnir-project/draupnir
|
||||||
matrix_bot_draupnir_version: "v2.9.0"
|
matrix_bot_draupnir_version: "v3.0.0"
|
||||||
|
|
||||||
matrix_bot_draupnir_container_image_self_build: false
|
matrix_bot_draupnir_container_image_self_build: false
|
||||||
matrix_bot_draupnir_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"
|
matrix_bot_draupnir_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"
|
||||||
|
|
||||||
matrix_bot_draupnir_container_image: "{{ matrix_bot_draupnir_container_image_registry_prefix }}gnuxie/draupnir:{{ matrix_bot_draupnir_version }}"
|
matrix_bot_draupnir_container_image: "{{ matrix_bot_draupnir_container_image_registry_prefix }}{{ matrix_bot_draupnir_container_image_registry_namespace_identifier }}:{{ matrix_bot_draupnir_version }}"
|
||||||
|
matrix_bot_draupnir_container_image_registry_namespace_identifier: "the-draupnir-project/draupnir"
|
||||||
matrix_bot_draupnir_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_draupnir_container_image_self_build else matrix_bot_draupnir_container_image_registry_prefix_upstream }}"
|
matrix_bot_draupnir_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_draupnir_container_image_self_build else matrix_bot_draupnir_container_image_registry_prefix_upstream }}"
|
||||||
matrix_bot_draupnir_container_image_registry_prefix_upstream: "{{ matrix_bot_draupnir_container_image_registry_prefix_upstream_default }}"
|
matrix_bot_draupnir_container_image_registry_prefix_upstream: "{{ matrix_bot_draupnir_container_image_registry_prefix_upstream_default }}"
|
||||||
matrix_bot_draupnir_container_image_registry_prefix_upstream_default: "docker.io/"
|
matrix_bot_draupnir_container_image_registry_prefix_upstream_default: "ghcr.io/"
|
||||||
matrix_bot_draupnir_container_image_force_pull: "{{ matrix_bot_draupnir_container_image.endswith(':latest') }}"
|
matrix_bot_draupnir_container_image_force_pull: "{{ matrix_bot_draupnir_container_image.endswith(':latest') }}"
|
||||||
|
|
||||||
matrix_bot_draupnir_base_path: "{{ matrix_base_data_path }}/draupnir"
|
matrix_bot_draupnir_base_path: "{{ matrix_base_data_path }}/draupnir"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
||||||
SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
SPDX-FileCopyrightText: 2023 - 2026 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
||||||
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
|
|
||||||
@@ -148,6 +148,13 @@ commands:
|
|||||||
# will address only my_moderator_bot.
|
# will address only my_moderator_bot.
|
||||||
allowNoPrefix: false
|
allowNoPrefix: false
|
||||||
|
|
||||||
|
# Controls which symbol will prefix a secondary prefix that is described in additionalPrefixes.
|
||||||
|
# For example the `!` in `!draupnir`.
|
||||||
|
# If you wish the bot to use "slash commands" with the "/" character instead of the exclamation mark "!" change the value to `"/"` and the bot will start responding to slash commands.
|
||||||
|
|
||||||
|
symbolPrefixes:
|
||||||
|
- "!"
|
||||||
|
|
||||||
# Any additional bot prefixes that Draupnir will listen to. i.e. adding `mod` will allow `!mod help`.
|
# Any additional bot prefixes that Draupnir will listen to. i.e. adding `mod` will allow `!mod help`.
|
||||||
additionalPrefixes:
|
additionalPrefixes:
|
||||||
- "draupnir-bot"
|
- "draupnir-bot"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ matrix_bot_honoroit_container_repo_version: "{{ matrix_bot_honoroit_version }}"
|
|||||||
matrix_bot_honoroit_container_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src"
|
matrix_bot_honoroit_container_src_files_path: "{{ matrix_base_data_path }}/honoroit/docker-src"
|
||||||
|
|
||||||
# renovate: datasource=docker depName=ghcr.io/etkecc/honoroit
|
# renovate: datasource=docker depName=ghcr.io/etkecc/honoroit
|
||||||
matrix_bot_honoroit_version: v0.9.29
|
matrix_bot_honoroit_version: v0.9.30
|
||||||
matrix_bot_honoroit_container_image: "{{ matrix_bot_honoroit_container_image_registry_prefix }}etkecc/honoroit:{{ matrix_bot_honoroit_version }}"
|
matrix_bot_honoroit_container_image: "{{ matrix_bot_honoroit_container_image_registry_prefix }}etkecc/honoroit:{{ matrix_bot_honoroit_version }}"
|
||||||
matrix_bot_honoroit_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else matrix_bot_honoroit_container_image_registry_prefix_upstream }}"
|
matrix_bot_honoroit_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_honoroit_container_image_self_build else matrix_bot_honoroit_container_image_registry_prefix_upstream }}"
|
||||||
matrix_bot_honoroit_container_image_registry_prefix_upstream: "{{ matrix_bot_honoroit_container_image_registry_prefix_upstream_default }}"
|
matrix_bot_honoroit_container_image_registry_prefix_upstream: "{{ matrix_bot_honoroit_container_image_registry_prefix_upstream_default }}"
|
||||||
|
|||||||
@@ -225,3 +225,13 @@ matrix_appservice_kakaotalk_registration_yaml: |
|
|||||||
rate_limited: false
|
rate_limited: false
|
||||||
|
|
||||||
matrix_appservice_kakaotalk_registration: "{{ matrix_appservice_kakaotalk_registration_yaml | from_yaml }}"
|
matrix_appservice_kakaotalk_registration: "{{ matrix_appservice_kakaotalk_registration_yaml | from_yaml }}"
|
||||||
|
|
||||||
|
# matrix_appservice_kakaotalk_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_appservice_kakaotalk_restart_necessary: false
|
||||||
|
|||||||
@@ -13,10 +13,10 @@
|
|||||||
force_source: "{{ matrix_appservice_kakaotalk_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_appservice_kakaotalk_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_appservice_kakaotalk_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_appservice_kakaotalk_container_image_force_pull }}"
|
||||||
when: not matrix_appservice_kakaotalk_container_image_self_build
|
when: not matrix_appservice_kakaotalk_container_image_self_build
|
||||||
register: result
|
register: matrix_appservice_kakaotalk_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_appservice_kakaotalk_container_image_pull_result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk-node image is pulled
|
- name: Ensure matrix-appservice-kakaotalk-node image is pulled
|
||||||
community.docker.docker_image:
|
community.docker.docker_image:
|
||||||
@@ -25,10 +25,10 @@
|
|||||||
force_source: "{{ matrix_appservice_kakaotalk_node_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_appservice_kakaotalk_node_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_appservice_kakaotalk_node_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_appservice_kakaotalk_node_container_image_force_pull }}"
|
||||||
when: not matrix_appservice_kakaotalk_container_image_self_build
|
when: not matrix_appservice_kakaotalk_container_image_self_build
|
||||||
register: result
|
register: matrix_appservice_kakaotalk_node_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_appservice_kakaotalk_node_container_image_pull_result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk paths exist
|
- name: Ensure matrix-appservice-kakaotalk paths exist
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
@@ -86,6 +86,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_appservice_kakaotalk_node_config_result
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk config.yaml installed
|
- name: Ensure matrix-appservice-kakaotalk config.yaml installed
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
@@ -94,6 +95,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_appservice_kakaotalk_config_result
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk registration.yaml installed
|
- name: Ensure matrix-appservice-kakaotalk registration.yaml installed
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
@@ -102,6 +104,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_appservice_kakaotalk_registration_result
|
||||||
|
|
||||||
- name: Ensure matrix-appservice-kakaotalk container network is created
|
- name: Ensure matrix-appservice-kakaotalk container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
@@ -122,3 +125,17 @@
|
|||||||
src: "{{ role_path }}/templates/systemd/matrix-appservice-kakaotalk.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-appservice-kakaotalk.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-kakaotalk.service"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
|
register: matrix_appservice_kakaotalk_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether matrix-appservice-kakaotalk needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_appservice_kakaotalk_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_appservice_kakaotalk_node_config_result.changed | default(false)
|
||||||
|
or matrix_appservice_kakaotalk_config_result.changed | default(false)
|
||||||
|
or matrix_appservice_kakaotalk_registration_result.changed | default(false)
|
||||||
|
or matrix_appservice_kakaotalk_node_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_appservice_kakaotalk_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_appservice_kakaotalk_container_image_pull_result.changed | default(false)
|
||||||
|
or matrix_appservice_kakaotalk_node_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -163,3 +163,13 @@ matrix_wechat_agent_service_secret: "{{ matrix_wechat_bridge_listen_secret }}"
|
|||||||
matrix_wechat_agent_configuration_yaml: "{{ lookup('template', 'templates/agent-config.yaml.j2') }}"
|
matrix_wechat_agent_configuration_yaml: "{{ lookup('template', 'templates/agent-config.yaml.j2') }}"
|
||||||
|
|
||||||
matrix_wechat_agent_configuration: "{{ matrix_wechat_agent_configuration_yaml | from_yaml }}"
|
matrix_wechat_agent_configuration: "{{ matrix_wechat_agent_configuration_yaml | from_yaml }}"
|
||||||
|
|
||||||
|
# matrix_wechat_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_wechat_restart_necessary: false
|
||||||
|
|||||||
@@ -27,10 +27,10 @@
|
|||||||
force_source: "{{ matrix_wechat_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_wechat_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_wechat_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_wechat_container_image_force_pull }}"
|
||||||
when: not matrix_wechat_container_image_self_build
|
when: not matrix_wechat_container_image_self_build
|
||||||
register: result
|
register: matrix_wechat_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_wechat_container_image_pull_result is not failed
|
||||||
|
|
||||||
- when: matrix_wechat_container_image_self_build | bool
|
- when: matrix_wechat_container_image_self_build | bool
|
||||||
block:
|
block:
|
||||||
@@ -62,10 +62,10 @@
|
|||||||
force_source: "{{ matrix_wechat_agent_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_wechat_agent_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_wechat_agent_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_wechat_agent_container_image_force_pull }}"
|
||||||
when: not matrix_wechat_agent_container_image_self_build
|
when: not matrix_wechat_agent_container_image_self_build
|
||||||
register: result
|
register: matrix_wechat_agent_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_wechat_agent_container_image_pull_result is not failed
|
||||||
|
|
||||||
- when: matrix_wechat_agent_container_image_self_build | bool
|
- when: matrix_wechat_agent_container_image_self_build | bool
|
||||||
block:
|
block:
|
||||||
@@ -97,6 +97,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_wechat_config_result
|
||||||
|
|
||||||
- name: Ensure WeChat registration.yaml installed
|
- name: Ensure WeChat registration.yaml installed
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
@@ -105,6 +106,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_wechat_registration_result
|
||||||
|
|
||||||
- name: Ensure Wechat Agent configuration installed
|
- name: Ensure Wechat Agent configuration installed
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
@@ -113,6 +115,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_wechat_agent_config_result
|
||||||
|
|
||||||
- name: Ensure matrix-wechat container network is created
|
- name: Ensure matrix-wechat container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
@@ -134,3 +137,16 @@
|
|||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-wechat-agent.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-wechat-agent.service"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
register: matrix_wechat_agent_systemd_service_result
|
register: matrix_wechat_agent_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether WeChat Bridge needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_wechat_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_wechat_config_result.changed | default(false)
|
||||||
|
or matrix_wechat_registration_result.changed | default(false)
|
||||||
|
or matrix_wechat_agent_config_result.changed | default(false)
|
||||||
|
or matrix_wechat_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_wechat_agent_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_wechat_container_image_pull_result.changed | default(false)
|
||||||
|
or matrix_wechat_agent_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ matrix_cactus_comments_client_public_path: "{{ matrix_cactus_comments_client_bas
|
|||||||
matrix_cactus_comments_client_public_path_file_permissions: "0644"
|
matrix_cactus_comments_client_public_path_file_permissions: "0644"
|
||||||
|
|
||||||
# renovate: datasource=docker depName=joseluisq/static-web-server
|
# renovate: datasource=docker depName=joseluisq/static-web-server
|
||||||
matrix_cactus_comments_client_version: 2.41.0
|
matrix_cactus_comments_client_version: 2.42.0
|
||||||
|
|
||||||
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: "{{ 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 }}"
|
matrix_cactus_comments_client_container_image_registry_prefix: "{{ matrix_cactus_comments_client_container_image_registry_prefix_upstream }}"
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ matrix_client_element_container_image_self_build_repo: "https://github.com/eleme
|
|||||||
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_facts['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
|
# renovate: datasource=docker depName=ghcr.io/element-hq/element-web
|
||||||
matrix_client_element_version: v1.12.12
|
matrix_client_element_version: v1.12.13
|
||||||
|
|
||||||
matrix_client_element_container_image: "{{ matrix_client_element_container_image_registry_prefix }}element-hq/element-web:{{ matrix_client_element_version }}"
|
matrix_client_element_container_image: "{{ matrix_client_element_container_image_registry_prefix }}element-hq/element-web:{{ matrix_client_element_version }}"
|
||||||
matrix_client_element_container_image_registry_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_client_element_container_image_registry_prefix_upstream }}"
|
matrix_client_element_container_image_registry_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_client_element_container_image_registry_prefix_upstream }}"
|
||||||
|
|||||||
@@ -5,9 +5,6 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
- ansible.builtin.set_fact:
|
|
||||||
matrix_client_element_url_endpoint_public: "{{ matrix_client_element_scheme }}://{{ matrix_client_element_hostname }}/config.json"
|
|
||||||
|
|
||||||
- name: Check Element Web
|
- name: Check Element Web
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ matrix_client_element_url_endpoint_public }}"
|
url: "{{ matrix_client_element_url_endpoint_public }}"
|
||||||
|
|||||||
@@ -5,3 +5,5 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
matrix_client_element_embedded_pages_home_url: "{{ ('' if matrix_client_element_embedded_pages_home_path is none else 'home.html') }}"
|
matrix_client_element_embedded_pages_home_url: "{{ ('' if matrix_client_element_embedded_pages_home_path is none else 'home.html') }}"
|
||||||
|
|
||||||
|
matrix_client_element_url_endpoint_public: "{{ matrix_client_element_scheme }}://{{ matrix_client_element_hostname }}{{ matrix_client_element_path_prefix }}{% if matrix_client_element_path_prefix != '/' %}/{% endif %}config.json"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ matrix_client_fluffychat_container_image_self_build_repo: "https://github.com/et
|
|||||||
matrix_client_fluffychat_container_image_self_build_version: "{{ 'main' if matrix_client_fluffychat_version == 'latest' else matrix_client_fluffychat_version }}"
|
matrix_client_fluffychat_container_image_self_build_version: "{{ 'main' if matrix_client_fluffychat_version == 'latest' else matrix_client_fluffychat_version }}"
|
||||||
|
|
||||||
# renovate: datasource=docker depName=ghcr.io/etkecc/fluffychat-web
|
# renovate: datasource=docker depName=ghcr.io/etkecc/fluffychat-web
|
||||||
matrix_client_fluffychat_version: v2.4.1
|
matrix_client_fluffychat_version: v2.5.1
|
||||||
matrix_client_fluffychat_container_image: "{{ matrix_client_fluffychat_container_image_registry_prefix }}etkecc/fluffychat-web:{{ matrix_client_fluffychat_version }}"
|
matrix_client_fluffychat_container_image: "{{ matrix_client_fluffychat_container_image_registry_prefix }}etkecc/fluffychat-web:{{ matrix_client_fluffychat_version }}"
|
||||||
matrix_client_fluffychat_container_image_registry_prefix: "{{ 'localhost/' if matrix_client_fluffychat_container_image_self_build else matrix_client_fluffychat_container_image_registry_prefix_upstream }}"
|
matrix_client_fluffychat_container_image_registry_prefix: "{{ 'localhost/' if matrix_client_fluffychat_container_image_self_build else matrix_client_fluffychat_container_image_registry_prefix_upstream }}"
|
||||||
matrix_client_fluffychat_container_image_registry_prefix_upstream: "{{ matrix_client_fluffychat_container_image_registry_prefix_upstream_default }}"
|
matrix_client_fluffychat_container_image_registry_prefix_upstream: "{{ matrix_client_fluffychat_container_image_registry_prefix_upstream_default }}"
|
||||||
|
|||||||
@@ -4,9 +4,6 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
- ansible.builtin.set_fact:
|
|
||||||
matrix_client_fluffychat_url_endpoint_public: "{{ matrix_client_fluffychat_scheme }}://{{ matrix_client_fluffychat_hostname }}/"
|
|
||||||
|
|
||||||
- name: Check FluffyChat Web
|
- name: Check FluffyChat Web
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ matrix_client_fluffychat_url_endpoint_public }}"
|
url: "{{ matrix_client_fluffychat_url_endpoint_public }}"
|
||||||
|
|||||||
7
roles/custom/matrix-client-fluffychat/vars/main.yml
Normal file
7
roles/custom/matrix-client-fluffychat/vars/main.yml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2025 Slavi Pantaleev
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
matrix_client_fluffychat_url_endpoint_public: "{{ matrix_client_fluffychat_scheme }}://{{ matrix_client_fluffychat_hostname }}{{ matrix_client_fluffychat_path_prefix }}{% if matrix_client_fluffychat_path_prefix != '/' %}/{% endif %}"
|
||||||
@@ -6,9 +6,6 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
- ansible.builtin.set_fact:
|
|
||||||
matrix_client_schildichat_url_endpoint_public: "{{ matrix_client_schildichat_scheme }}://{{ matrix_client_schildichat_hostname }}/config.json"
|
|
||||||
|
|
||||||
- name: Check SchildiChat Web
|
- name: Check SchildiChat Web
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ matrix_client_schildichat_url_endpoint_public }}"
|
url: "{{ matrix_client_schildichat_url_endpoint_public }}"
|
||||||
|
|||||||
@@ -5,3 +5,5 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
matrix_client_schildichat_embedded_pages_home_url: "{{ ('' if matrix_client_schildichat_embedded_pages_home_path is none else 'home.html') }}"
|
matrix_client_schildichat_embedded_pages_home_url: "{{ ('' if matrix_client_schildichat_embedded_pages_home_path is none else 'home.html') }}"
|
||||||
|
|
||||||
|
matrix_client_schildichat_url_endpoint_public: "{{ matrix_client_schildichat_scheme }}://{{ matrix_client_schildichat_hostname }}{{ matrix_client_schildichat_path_prefix }}{% if matrix_client_schildichat_path_prefix != '/' %}/{% endif %}config.json"
|
||||||
|
|||||||
@@ -154,3 +154,13 @@ matrix_conduit_turn_uris: []
|
|||||||
matrix_conduit_turn_secret: ''
|
matrix_conduit_turn_secret: ''
|
||||||
matrix_conduit_turn_username: ''
|
matrix_conduit_turn_username: ''
|
||||||
matrix_conduit_turn_password: ''
|
matrix_conduit_turn_password: ''
|
||||||
|
|
||||||
|
# matrix_conduit_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_conduit_restart_necessary: false
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_conduit_config_result
|
||||||
|
|
||||||
- name: Ensure Conduit support files installed
|
- name: Ensure Conduit support files installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -41,6 +42,7 @@
|
|||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
with_items:
|
with_items:
|
||||||
- labels
|
- labels
|
||||||
|
register: matrix_conduit_support_files_result
|
||||||
|
|
||||||
- name: Ensure Conduit container network is created
|
- name: Ensure Conduit container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
@@ -55,13 +57,24 @@
|
|||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||||
force_source: "{{ matrix_conduit_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_conduit_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_conduit_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduit_container_image_force_pull }}"
|
||||||
register: result
|
register: matrix_conduit_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_conduit_container_image_pull_result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-conduit.service installed
|
- name: Ensure matrix-conduit.service installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-conduit.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-conduit.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduit.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-conduit.service"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
|
register: matrix_conduit_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether Conduit needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_conduit_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_conduit_config_result.changed | default(false)
|
||||||
|
or matrix_conduit_support_files_result.changed | default(false)
|
||||||
|
or matrix_conduit_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_conduit_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -165,8 +165,8 @@ matrix_continuwuity_config_registration_token: ''
|
|||||||
# Upstream defaults this to "🏳️⚧️", but we keep this consistent across all homeserver implementations and do not enable a suffix.
|
# Upstream defaults this to "🏳️⚧️", but we keep this consistent across all homeserver implementations and do not enable a suffix.
|
||||||
matrix_continuwuity_config_new_user_displayname_suffix: ""
|
matrix_continuwuity_config_new_user_displayname_suffix: ""
|
||||||
|
|
||||||
# Controls the `allow_check_for_updates` setting.
|
# Controls the `allow_announcements_check` setting.
|
||||||
matrix_continuwuity_config_allow_check_for_updates: false
|
matrix_continuwuity_config_allow_announcements_check: true
|
||||||
|
|
||||||
# Controls the `emergency_password` setting.
|
# Controls the `emergency_password` setting.
|
||||||
matrix_continuwuity_config_emergency_password: ''
|
matrix_continuwuity_config_emergency_password: ''
|
||||||
@@ -188,6 +188,29 @@ matrix_continuwuity_config_turn_password: ''
|
|||||||
# Controls whether the self-check feature should validate SSL certificates.
|
# Controls whether the self-check feature should validate SSL certificates.
|
||||||
matrix_continuwuity_self_check_validate_certificates: true
|
matrix_continuwuity_self_check_validate_certificates: true
|
||||||
|
|
||||||
|
# If set, registration will require Google ReCAPTCHA verification.
|
||||||
|
matrix_continuwuity_config_recaptcha_site_key: ''
|
||||||
|
matrix_continuwuity_config_recaptcha_private_site_key: ''
|
||||||
|
|
||||||
|
# Controls whether encrypted rooms and events are allowed.
|
||||||
|
matrix_continuwuity_config_allow_encryption: true
|
||||||
|
|
||||||
|
# Controls whether standard users can create new rooms.
|
||||||
|
# Appservices and admins are always allowed to create new rooms.
|
||||||
|
matrix_continuwuity_config_allow_room_creation: true
|
||||||
|
|
||||||
|
# List/vector of room IDs or room aliases that continuwuity will make
|
||||||
|
# newly registered users join. The rooms specified must be rooms that you
|
||||||
|
# have joined at least once on the server, and must be public.
|
||||||
|
#
|
||||||
|
# example: ["#continuwuity:continuwuity.org",
|
||||||
|
# "!main-1:continuwuity.org"]
|
||||||
|
#
|
||||||
|
matrix_continuwuity_config_auto_join_rooms: []
|
||||||
|
|
||||||
|
# Forces users to always forget rooms they have left (MSC4267).
|
||||||
|
matrix_continuwuity_config_forget_forced_upon_leave: false
|
||||||
|
|
||||||
# Controls server (de)federation settings.
|
# Controls server (de)federation settings.
|
||||||
matrix_continuwuity_config_allow_federation: true
|
matrix_continuwuity_config_allow_federation: true
|
||||||
matrix_continuwuity_config_allowed_remote_server_names: []
|
matrix_continuwuity_config_allowed_remote_server_names: []
|
||||||
@@ -196,9 +219,39 @@ matrix_continuwuity_config_forbidden_remote_room_directory_server_names: []
|
|||||||
matrix_continuwuity_config_prevent_media_downloads_from: []
|
matrix_continuwuity_config_prevent_media_downloads_from: []
|
||||||
matrix_continuwuity_config_ignore_messages_from_server_names: []
|
matrix_continuwuity_config_ignore_messages_from_server_names: []
|
||||||
|
|
||||||
|
# Allow outgoing presence updates/requests.
|
||||||
|
#
|
||||||
|
# Note that outgoing presence is very heavy on the CPU and network, and
|
||||||
|
# will typically cause extreme strain and slowdowns for no real benefit.
|
||||||
|
# There are only a few clients that even implement presence, so you
|
||||||
|
# probably don't want to enable this.
|
||||||
|
matrix_continuwuity_config_allow_outgoing_presence: false
|
||||||
|
|
||||||
|
# Controls MatrixRTC foci served via `/_matrix/client/v1/rtc/transports`
|
||||||
|
# and `/_matrix/client/unstable/org.matrix.msc4143/rtc/transports` (MSC4143)
|
||||||
|
matrix_continuwuity_config_rtc_foci: "{{ matrix_continuwuity_config_rtc_foci_auto + matrix_continuwuity_config_rtc_foci_custom }}"
|
||||||
|
matrix_continuwuity_config_rtc_foci_auto: |-
|
||||||
|
{{
|
||||||
|
(
|
||||||
|
[{'type': 'livekit', 'livekit_service_url': matrix_continuwuity_config_rtc_foci_livekit_url}] if matrix_continuwuity_config_rtc_foci_livekit_url != '' else []
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
matrix_continuwuity_config_rtc_foci_custom: []
|
||||||
|
|
||||||
|
# Controls MatrixRTC Livekit URL auto-added to `matrix_continuwuity_config_rtc_foci`.
|
||||||
|
#
|
||||||
|
# This is set automatically if you are using the playbook MatrixRTC stack.
|
||||||
|
matrix_continuwuity_config_rtc_foci_livekit_url: ''
|
||||||
|
|
||||||
# Controls the `url_preview_domain_contains_allowlist` setting.
|
# Controls the `url_preview_domain_contains_allowlist` setting.
|
||||||
matrix_continuwuity_config_url_preview_domain_contains_allowlist: []
|
matrix_continuwuity_config_url_preview_domain_contains_allowlist: []
|
||||||
|
|
||||||
|
# Controls the `url_preview_domain_explicit_allowlist` setting.
|
||||||
|
matrix_continuwuity_config_url_preview_domain_explicit_allowlist: []
|
||||||
|
|
||||||
|
# Controls the `url_preview_check_root_domain` setting.
|
||||||
|
matrix_continuwuity_config_url_preview_check_root_domain: false
|
||||||
|
|
||||||
# Additional environment variables to pass to the container.
|
# Additional environment variables to pass to the container.
|
||||||
#
|
#
|
||||||
# Environment variables take priority over settings in the configuration file.
|
# Environment variables take priority over settings in the configuration file.
|
||||||
@@ -208,3 +261,13 @@ matrix_continuwuity_config_url_preview_domain_contains_allowlist: []
|
|||||||
# CONTINUWUITY_MAX_REQUEST_SIZE=50000000
|
# CONTINUWUITY_MAX_REQUEST_SIZE=50000000
|
||||||
# CONTINUWUITY_REQUEST_TIMEOUT=60
|
# CONTINUWUITY_REQUEST_TIMEOUT=60
|
||||||
matrix_continuwuity_environment_variables_extension: ''
|
matrix_continuwuity_environment_variables_extension: ''
|
||||||
|
|
||||||
|
# matrix_continuwuity_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_continuwuity_restart_necessary: false
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_continuwuity_config_result
|
||||||
|
|
||||||
- name: Ensure continuwuity support files installed
|
- name: Ensure continuwuity support files installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -38,6 +39,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- labels
|
- labels
|
||||||
- env
|
- env
|
||||||
|
register: matrix_continuwuity_support_files_result
|
||||||
|
|
||||||
- name: Ensure continuwuity container network is created
|
- name: Ensure continuwuity container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
@@ -52,13 +54,24 @@
|
|||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||||
force_source: "{{ matrix_continuwuity_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_continuwuity_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_continuwuity_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_continuwuity_container_image_force_pull }}"
|
||||||
register: result
|
register: matrix_continuwuity_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_continuwuity_container_image_pull_result is not failed
|
||||||
|
|
||||||
- name: Ensure matrix-continuwuity.service installed
|
- name: Ensure matrix-continuwuity.service installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-continuwuity.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-continuwuity.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-continuwuity.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-continuwuity.service"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
|
register: matrix_continuwuity_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether continuwuity needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_continuwuity_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_continuwuity_config_result.changed | default(false)
|
||||||
|
or matrix_continuwuity_support_files_result.changed | default(false)
|
||||||
|
or matrix_continuwuity_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_continuwuity_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
|
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
|
||||||
with_items:
|
with_items:
|
||||||
- {'old': 'matrix_continuwuity_allowed_remote_server_names', 'new': 'matrix_continuwuity_config_allowed_remote_server_names'}
|
- {'old': 'matrix_continuwuity_allowed_remote_server_names', 'new': 'matrix_continuwuity_config_allowed_remote_server_names'}
|
||||||
|
- {'old': 'matrix_continuwuity_config_allow_check_for_updates', 'new': 'matrix_continuwuity_config_allow_announcements_check'}
|
||||||
- {'old': 'matrix_continuwuity_forbidden_remote_room_directory_server_names', 'new': 'matrix_continuwuity_config_forbidden_remote_room_directory_server_names'}
|
- {'old': 'matrix_continuwuity_forbidden_remote_room_directory_server_names', 'new': 'matrix_continuwuity_config_forbidden_remote_room_directory_server_names'}
|
||||||
- {'old': 'matrix_continuwuity_forbidden_remote_server_names', 'new': 'matrix_continuwuity_config_forbidden_remote_server_names'}
|
- {'old': 'matrix_continuwuity_forbidden_remote_server_names', 'new': 'matrix_continuwuity_config_forbidden_remote_server_names'}
|
||||||
- {'old': 'matrix_continuwuity_ignore_messages_from_server_names', 'new': 'matrix_continuwuity_config_ignore_messages_from_server_names'}
|
- {'old': 'matrix_continuwuity_ignore_messages_from_server_names', 'new': 'matrix_continuwuity_config_ignore_messages_from_server_names'}
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
# Also see the `[global.well_known]` config section at the very bottom.
|
# Also see the `[global.well_known]` config section at the very bottom.
|
||||||
#
|
#
|
||||||
# Examples of delegation:
|
# Examples of delegation:
|
||||||
# - https://puppygock.gay/.well-known/matrix/server
|
# - https://continuwuity.org/.well-known/matrix/server
|
||||||
# - https://puppygock.gay/.well-known/matrix/client
|
# - https://continuwuity.org/.well-known/matrix/client
|
||||||
#
|
#
|
||||||
# YOU NEED TO EDIT THIS. THIS CANNOT BE CHANGED AFTER WITHOUT A DATABASE
|
# YOU NEED TO EDIT THIS. THIS CANNOT BE CHANGED AFTER WITHOUT A DATABASE
|
||||||
# WIPE.
|
# WIPE.
|
||||||
@@ -112,7 +112,7 @@ new_user_displayname_suffix = {{ matrix_continuwuity_config_new_user_displayname
|
|||||||
# `https://continuwuity.org/.well-known/continuwuity/announcements` for any new
|
# `https://continuwuity.org/.well-known/continuwuity/announcements` for any new
|
||||||
# announcements or major updates. This is not an update check endpoint.
|
# announcements or major updates. This is not an update check endpoint.
|
||||||
#
|
#
|
||||||
allow_check_for_updates = {{ matrix_continuwuity_config_allow_check_for_updates | to_json }}
|
allow_announcements_check = {{ matrix_continuwuity_config_allow_announcements_check | to_json }}
|
||||||
|
|
||||||
# Set this to any float value to multiply continuwuity's in-memory LRU
|
# Set this to any float value to multiply continuwuity's in-memory LRU
|
||||||
# caches with such as "auth_chain_cache_capacity".
|
# caches with such as "auth_chain_cache_capacity".
|
||||||
@@ -283,6 +283,25 @@ max_request_size = {{ matrix_continuwuity_config_max_request_size }}
|
|||||||
#
|
#
|
||||||
#max_fetch_prev_events = 192
|
#max_fetch_prev_events = 192
|
||||||
|
|
||||||
|
# How many incoming federation transactions the server is willing to be
|
||||||
|
# processing at any given time before it becomes overloaded and starts
|
||||||
|
# rejecting further transactions until some slots become available.
|
||||||
|
#
|
||||||
|
# Setting this value too low or too high may result in unstable
|
||||||
|
# federation, and setting it too high may cause runaway resource usage.
|
||||||
|
#
|
||||||
|
#max_concurrent_inbound_transactions = 150
|
||||||
|
|
||||||
|
# Maximum age (in seconds) for cached federation transaction responses.
|
||||||
|
# Entries older than this will be removed during cleanup.
|
||||||
|
#
|
||||||
|
#transaction_id_cache_max_age_secs = 7200 (2 hours)
|
||||||
|
|
||||||
|
# Maximum number of cached federation transaction responses.
|
||||||
|
# When the cache exceeds this limit, older entries will be removed.
|
||||||
|
#
|
||||||
|
#transaction_id_cache_max_entries = 8192
|
||||||
|
|
||||||
# Default/base connection timeout (seconds). This is used only by URL
|
# Default/base connection timeout (seconds). This is used only by URL
|
||||||
# previews and update/news endpoint checks.
|
# previews and update/news endpoint checks.
|
||||||
#
|
#
|
||||||
@@ -320,11 +339,38 @@ max_request_size = {{ matrix_continuwuity_config_max_request_size }}
|
|||||||
#
|
#
|
||||||
#well_known_timeout = 10
|
#well_known_timeout = 10
|
||||||
|
|
||||||
|
# Federation client connection timeout (seconds). You should not set this
|
||||||
|
# to high values, as dead homeservers can significantly slow down
|
||||||
|
# federation, specifically key retrieval, which will take roughly the
|
||||||
|
# amount of time you configure here given that a homeserver doesn't
|
||||||
|
# respond. This will cause most clients to time out /keys/query, causing
|
||||||
|
# E2EE and device verification to fail.
|
||||||
|
#
|
||||||
|
#federation_conn_timeout = 10
|
||||||
|
|
||||||
# Federation client request timeout (seconds). You most definitely want
|
# Federation client request timeout (seconds). You most definitely want
|
||||||
# this to be high to account for extremely large room joins, slow
|
# this to be high to account for extremely large room joins, slow
|
||||||
# homeservers, your own resources etc.
|
# homeservers, your own resources etc.
|
||||||
#
|
#
|
||||||
#federation_timeout = 300
|
# Joins have 6x the timeout.
|
||||||
|
#
|
||||||
|
#federation_timeout = 60
|
||||||
|
|
||||||
|
# MSC4284 Policy server request timeout (seconds). Generally policy
|
||||||
|
# servers should respond near instantly, however may slow down under
|
||||||
|
# load. If a policy server doesn't respond in a short amount of time, the
|
||||||
|
# room it is configured in may become unusable if this limit is set too
|
||||||
|
# high. 10 seconds is a good default, however dropping this to 3-5 seconds
|
||||||
|
# can be acceptable.
|
||||||
|
#
|
||||||
|
# Please be aware that policy requests are *NOT* currently re-tried, so if
|
||||||
|
# a spam check request fails, the event will be assumed to be not spam,
|
||||||
|
# which in some cases may result in spam being sent to or received from
|
||||||
|
# the room that would typically be prevented.
|
||||||
|
#
|
||||||
|
# About policy servers: https://matrix.org/blog/2025/04/introducing-policy-servers/
|
||||||
|
#
|
||||||
|
#policy_server_request_timeout = 10
|
||||||
|
|
||||||
# Federation client idle connection pool timeout (seconds).
|
# Federation client idle connection pool timeout (seconds).
|
||||||
#
|
#
|
||||||
@@ -357,7 +403,15 @@ max_request_size = {{ matrix_continuwuity_config_max_request_size }}
|
|||||||
#
|
#
|
||||||
#appservice_idle_timeout = 300
|
#appservice_idle_timeout = 300
|
||||||
|
|
||||||
# Notification gateway pusher idle connection pool timeout.
|
# Notification gateway pusher request connection timeout (seconds).
|
||||||
|
#
|
||||||
|
#pusher_conn_timeout = 15
|
||||||
|
|
||||||
|
# Notification gateway pusher total request timeout (seconds).
|
||||||
|
#
|
||||||
|
#pusher_timeout = 60
|
||||||
|
|
||||||
|
# Notification gateway pusher idle connection pool timeout (seconds).
|
||||||
#
|
#
|
||||||
#pusher_idle_timeout = 15
|
#pusher_idle_timeout = 15
|
||||||
|
|
||||||
@@ -402,6 +456,11 @@ allow_registration = {{ matrix_continuwuity_config_allow_registration | to_json
|
|||||||
# invites, or create/join or otherwise modify rooms.
|
# invites, or create/join or otherwise modify rooms.
|
||||||
# They are effectively read-only.
|
# They are effectively read-only.
|
||||||
#
|
#
|
||||||
|
# If you want to use this to screen people who register on your server,
|
||||||
|
# you should add a room to `auto_join_rooms` that is public, and contains
|
||||||
|
# information that new users can read (since they won't be able to DM
|
||||||
|
# anyone, or send a message, and may be confused).
|
||||||
|
#
|
||||||
suspend_on_register = {{ matrix_continuwuity_config_suspend_on_register | to_json }}
|
suspend_on_register = {{ matrix_continuwuity_config_suspend_on_register | to_json }}
|
||||||
|
|
||||||
# Enabling this setting opens registration to anyone without restrictions.
|
# Enabling this setting opens registration to anyone without restrictions.
|
||||||
@@ -431,9 +490,29 @@ registration_token = {{ matrix_continuwuity_config_registration_token | to_json
|
|||||||
#
|
#
|
||||||
#registration_token_file =
|
#registration_token_file =
|
||||||
|
|
||||||
|
# The public site key for reCaptcha. If this is provided, reCaptcha
|
||||||
|
# becomes required during registration. If both captcha *and*
|
||||||
|
# registration token are enabled, both will be required during
|
||||||
|
# registration.
|
||||||
|
#
|
||||||
|
# IMPORTANT: "Verify the origin of reCAPTCHA solutions" **MUST** BE
|
||||||
|
# DISABLED IF YOU WANT THE CAPTCHA TO WORK IN 3RD PARTY CLIENTS, OR
|
||||||
|
# CLIENTS HOSTED ON DOMAINS OTHER THAN YOUR OWN!
|
||||||
|
#
|
||||||
|
# Registration must be enabled (`allow_registration` must be true) for
|
||||||
|
# this to have any effect.
|
||||||
|
#
|
||||||
|
recaptcha_site_key = {{ matrix_continuwuity_config_recaptcha_site_key | to_json }}
|
||||||
|
|
||||||
|
# The private site key for reCaptcha.
|
||||||
|
# If this is omitted, captcha registration will not work,
|
||||||
|
# even if `recaptcha_site_key` is set.
|
||||||
|
#
|
||||||
|
recaptcha_private_site_key = {{ matrix_continuwuity_config_recaptcha_private_site_key | to_json }}
|
||||||
|
|
||||||
# Controls whether encrypted rooms and events are allowed.
|
# Controls whether encrypted rooms and events are allowed.
|
||||||
#
|
#
|
||||||
#allow_encryption = true
|
allow_encryption = {{ matrix_continuwuity_config_allow_encryption | to_json }}
|
||||||
|
|
||||||
# Controls whether federation is allowed or not. It is not recommended to
|
# Controls whether federation is allowed or not. It is not recommended to
|
||||||
# disable this after the fact due to potential federation breakage.
|
# disable this after the fact due to potential federation breakage.
|
||||||
@@ -451,7 +530,7 @@ allow_federation = {{ matrix_continuwuity_config_allow_federation | to_json }}
|
|||||||
# Always calls /forget on behalf of the user if leaving a room. This is a
|
# Always calls /forget on behalf of the user if leaving a room. This is a
|
||||||
# part of MSC4267 "Automatically forgetting rooms on leave"
|
# part of MSC4267 "Automatically forgetting rooms on leave"
|
||||||
#
|
#
|
||||||
#forget_forced_upon_leave = false
|
forget_forced_upon_leave = {{ matrix_continuwuity_config_forget_forced_upon_leave | to_json }}
|
||||||
|
|
||||||
# Set this to true to require authentication on the normally
|
# Set this to true to require authentication on the normally
|
||||||
# unauthenticated profile retrieval endpoints (GET)
|
# unauthenticated profile retrieval endpoints (GET)
|
||||||
@@ -469,12 +548,6 @@ allow_federation = {{ matrix_continuwuity_config_allow_federation | to_json }}
|
|||||||
#
|
#
|
||||||
#allow_public_room_directory_over_federation = false
|
#allow_public_room_directory_over_federation = false
|
||||||
|
|
||||||
# Set this to true to allow your server's public room directory to be
|
|
||||||
# queried without client authentication (access token) through the Client
|
|
||||||
# APIs. Set this to false to protect against /publicRooms spiders.
|
|
||||||
#
|
|
||||||
#allow_public_room_directory_without_auth = false
|
|
||||||
|
|
||||||
# Allow guests/unauthenticated users to access TURN credentials.
|
# Allow guests/unauthenticated users to access TURN credentials.
|
||||||
#
|
#
|
||||||
# This is the equivalent of Synapse's `turn_allow_guests` config option.
|
# This is the equivalent of Synapse's `turn_allow_guests` config option.
|
||||||
@@ -516,7 +589,7 @@ allow_federation = {{ matrix_continuwuity_config_allow_federation | to_json }}
|
|||||||
# Allow standard users to create rooms. Appservices and admins are always
|
# Allow standard users to create rooms. Appservices and admins are always
|
||||||
# allowed to create rooms
|
# allowed to create rooms
|
||||||
#
|
#
|
||||||
#allow_room_creation = true
|
allow_room_creation = {{ matrix_continuwuity_config_allow_room_creation | to_json }}
|
||||||
|
|
||||||
# Set to false to disable users from joining or creating room versions
|
# Set to false to disable users from joining or creating room versions
|
||||||
# that aren't officially supported by continuwuity.
|
# that aren't officially supported by continuwuity.
|
||||||
@@ -529,18 +602,32 @@ allow_federation = {{ matrix_continuwuity_config_allow_federation | to_json }}
|
|||||||
#allow_unstable_room_versions = true
|
#allow_unstable_room_versions = true
|
||||||
|
|
||||||
# Default room version continuwuity will create rooms with.
|
# Default room version continuwuity will create rooms with.
|
||||||
|
# Note that this has to be a string since the room version is a string
|
||||||
|
# rather than an integer. Forgetting the quotes will make the server fail
|
||||||
|
# to start!
|
||||||
#
|
#
|
||||||
# Per spec, room version 11 is the default.
|
# Per spec, room version "11" is the default.
|
||||||
#
|
#
|
||||||
#default_room_version = 11
|
#default_room_version = "11"
|
||||||
|
|
||||||
# This item is undocumented. Please contribute documentation for it.
|
# Enable OpenTelemetry OTLP tracing export. This replaces the deprecated
|
||||||
|
# Jaeger exporter. Traces will be sent via OTLP to a collector (such as
|
||||||
|
# Jaeger) that supports the OpenTelemetry Protocol.
|
||||||
#
|
#
|
||||||
#allow_jaeger = false
|
# Configure your OTLP endpoint using the OTEL_EXPORTER_OTLP_ENDPOINT
|
||||||
|
# environment variable (defaults to http://localhost:4318).
|
||||||
|
#
|
||||||
|
#allow_otlp = false
|
||||||
|
|
||||||
# This item is undocumented. Please contribute documentation for it.
|
# Filter for OTLP tracing spans. This controls which spans are exported
|
||||||
|
# to the OTLP collector.
|
||||||
#
|
#
|
||||||
#jaeger_filter = "info"
|
#otlp_filter = "info"
|
||||||
|
|
||||||
|
# Protocol to use for OTLP tracing export. Options are "http" or "grpc".
|
||||||
|
# The HTTP protocol uses port 4318 by default, while gRPC uses port 4317.
|
||||||
|
#
|
||||||
|
#otlp_protocol = "http"
|
||||||
|
|
||||||
# If the 'perf_measurements' compile-time feature is enabled, enables
|
# If the 'perf_measurements' compile-time feature is enabled, enables
|
||||||
# collecting folded stack trace profile of tracing spans using
|
# collecting folded stack trace profile of tracing spans using
|
||||||
@@ -666,6 +753,21 @@ log = {{ matrix_continuwuity_config_log | to_json }}
|
|||||||
#
|
#
|
||||||
#log_thread_ids = false
|
#log_thread_ids = false
|
||||||
|
|
||||||
|
# Enable journald logging on Unix platforms
|
||||||
|
#
|
||||||
|
# When enabled, log output will be sent to the systemd journal
|
||||||
|
# This is only supported on Unix platforms
|
||||||
|
#
|
||||||
|
#log_to_journald = false
|
||||||
|
|
||||||
|
# The syslog identifier to use with journald logging
|
||||||
|
#
|
||||||
|
# Only used when journald logging is enabled
|
||||||
|
#
|
||||||
|
# Defaults to the binary name
|
||||||
|
#
|
||||||
|
#journald_identifier =
|
||||||
|
|
||||||
# OpenID token expiration/TTL in seconds.
|
# OpenID token expiration/TTL in seconds.
|
||||||
#
|
#
|
||||||
# These are the OpenID tokens that are primarily used for Matrix account
|
# These are the OpenID tokens that are primarily used for Matrix account
|
||||||
@@ -747,7 +849,7 @@ turn_secret = {{ matrix_continuwuity_config_turn_secret | to_json }}
|
|||||||
# example: ["#continuwuity:continuwuity.org",
|
# example: ["#continuwuity:continuwuity.org",
|
||||||
# "!main-1:continuwuity.org"]
|
# "!main-1:continuwuity.org"]
|
||||||
#
|
#
|
||||||
#auto_join_rooms = []
|
auto_join_rooms = {{ matrix_continuwuity_config_auto_join_rooms | to_json }}
|
||||||
|
|
||||||
# Config option to automatically deactivate the account of any user who
|
# Config option to automatically deactivate the account of any user who
|
||||||
# attempts to join a:
|
# attempts to join a:
|
||||||
@@ -960,14 +1062,6 @@ turn_secret = {{ matrix_continuwuity_config_turn_secret | to_json }}
|
|||||||
#
|
#
|
||||||
#rocksdb_repair = false
|
#rocksdb_repair = false
|
||||||
|
|
||||||
# This item is undocumented. Please contribute documentation for it.
|
|
||||||
#
|
|
||||||
#rocksdb_read_only = false
|
|
||||||
|
|
||||||
# This item is undocumented. Please contribute documentation for it.
|
|
||||||
#
|
|
||||||
#rocksdb_secondary = false
|
|
||||||
|
|
||||||
# Enables idle CPU priority for compaction thread. This is not enabled by
|
# Enables idle CPU priority for compaction thread. This is not enabled by
|
||||||
# default to prevent compaction from falling too far behind on busy
|
# default to prevent compaction from falling too far behind on busy
|
||||||
# systems.
|
# systems.
|
||||||
@@ -1026,27 +1120,34 @@ emergency_password = {{ matrix_continuwuity_config_emergency_password | to_json
|
|||||||
|
|
||||||
# Allow local (your server only) presence updates/requests.
|
# Allow local (your server only) presence updates/requests.
|
||||||
#
|
#
|
||||||
# Note that presence on continuwuity is very fast unlike Synapse's. If
|
# Local presence must be enabled for outgoing presence to function.
|
||||||
# using outgoing presence, this MUST be enabled.
|
#
|
||||||
|
# Note that local presence is not as heavy on the CPU as federated
|
||||||
|
# presence, but will still become more expensive the more local users you
|
||||||
|
# have.
|
||||||
#
|
#
|
||||||
#allow_local_presence = true
|
#allow_local_presence = true
|
||||||
|
|
||||||
# Allow incoming federated presence updates/requests.
|
# Allow incoming federated presence updates.
|
||||||
#
|
#
|
||||||
# This option receives presence updates from other servers, but does not
|
# This option enables processing inbound presence updates from other
|
||||||
# send any unless `allow_outgoing_presence` is true. Note that presence on
|
# servers. Without it, remote users will appear as if they are always
|
||||||
# continuwuity is very fast unlike Synapse's.
|
# offline to your local users. This does not affect typing indicators or
|
||||||
|
# read receipts.
|
||||||
#
|
#
|
||||||
#allow_incoming_presence = true
|
#allow_incoming_presence = true
|
||||||
|
|
||||||
# Allow outgoing presence updates/requests.
|
# Allow outgoing presence updates/requests.
|
||||||
#
|
#
|
||||||
# This option sends presence updates to other servers, but does not
|
# This option sends presence updates to other servers, and requires that
|
||||||
# receive any unless `allow_incoming_presence` is true. Note that presence
|
# `allow_local_presence` is also enabled.
|
||||||
# on continuwuity is very fast unlike Synapse's. If using outgoing
|
|
||||||
# presence, you MUST enable `allow_local_presence` as well.
|
|
||||||
#
|
#
|
||||||
#allow_outgoing_presence = true
|
# Note that outgoing presence is very heavy on the CPU and network, and
|
||||||
|
# will typically cause extreme strain and slowdowns for no real benefit.
|
||||||
|
# There are only a few clients that even implement presence, so you
|
||||||
|
# probably don't want to enable this.
|
||||||
|
#
|
||||||
|
allow_outgoing_presence = {{ matrix_continuwuity_config_allow_outgoing_presence | to_json }}
|
||||||
|
|
||||||
# How many seconds without presence updates before you become idle.
|
# How many seconds without presence updates before you become idle.
|
||||||
# Defaults to 5 minutes.
|
# Defaults to 5 minutes.
|
||||||
@@ -1067,16 +1168,38 @@ emergency_password = {{ matrix_continuwuity_config_emergency_password | to_json
|
|||||||
#
|
#
|
||||||
#presence_timeout_remote_users = true
|
#presence_timeout_remote_users = true
|
||||||
|
|
||||||
|
# Allow local read receipts.
|
||||||
|
#
|
||||||
|
# Disabling this will effectively also disable outgoing federated read
|
||||||
|
# receipts.
|
||||||
|
#
|
||||||
|
#allow_local_read_receipts = true
|
||||||
|
|
||||||
# Allow receiving incoming read receipts from remote servers.
|
# Allow receiving incoming read receipts from remote servers.
|
||||||
#
|
#
|
||||||
#allow_incoming_read_receipts = true
|
#allow_incoming_read_receipts = true
|
||||||
|
|
||||||
# Allow sending read receipts to remote servers.
|
# Allow sending read receipts to remote servers.
|
||||||
#
|
#
|
||||||
|
# Note that sending read receipts to remote servers in large rooms with
|
||||||
|
# lots of other homeservers may cause additional strain on the CPU and
|
||||||
|
# network.
|
||||||
|
#
|
||||||
#allow_outgoing_read_receipts = true
|
#allow_outgoing_read_receipts = true
|
||||||
|
|
||||||
|
# Allow local typing updates.
|
||||||
|
#
|
||||||
|
# Disabling this will effectively also disable outgoing federated typing
|
||||||
|
# updates.
|
||||||
|
#
|
||||||
|
#allow_local_typing = true
|
||||||
|
|
||||||
# Allow outgoing typing updates to federation.
|
# Allow outgoing typing updates to federation.
|
||||||
#
|
#
|
||||||
|
# Note that sending typing indicators to remote servers in large rooms
|
||||||
|
# with lots of other homeservers may cause additional strain on the CPU
|
||||||
|
# and network.
|
||||||
|
#
|
||||||
#allow_outgoing_typing = true
|
#allow_outgoing_typing = true
|
||||||
|
|
||||||
# Allow incoming typing updates from federation.
|
# Allow incoming typing updates from federation.
|
||||||
@@ -1210,7 +1333,7 @@ emergency_password = {{ matrix_continuwuity_config_emergency_password | to_json
|
|||||||
# sender user's server name, inbound federation X-Matrix origin, and
|
# sender user's server name, inbound federation X-Matrix origin, and
|
||||||
# outbound federation handler.
|
# outbound federation handler.
|
||||||
#
|
#
|
||||||
# You can set this to ["*"] to block all servers by default, and then
|
# You can set this to [".*"] to block all servers by default, and then
|
||||||
# use `allowed_remote_server_names` to allow only specific servers.
|
# use `allowed_remote_server_names` to allow only specific servers.
|
||||||
#
|
#
|
||||||
# example: ["badserver\\.tld$", "badphrase", "19dollarfortnitecards"]
|
# example: ["badserver\\.tld$", "badphrase", "19dollarfortnitecards"]
|
||||||
@@ -1319,7 +1442,7 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
# attack surface to your server, you are expected to be aware of the risks
|
# attack surface to your server, you are expected to be aware of the risks
|
||||||
# by doing so.
|
# by doing so.
|
||||||
#
|
#
|
||||||
#url_preview_domain_explicit_allowlist = []
|
url_preview_domain_explicit_allowlist = {{ matrix_continuwuity_config_url_preview_domain_explicit_allowlist | to_json }}
|
||||||
|
|
||||||
# Vector list of explicit domains not allowed to send requests to for URL
|
# Vector list of explicit domains not allowed to send requests to for URL
|
||||||
# previews.
|
# previews.
|
||||||
@@ -1348,6 +1471,11 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
#
|
#
|
||||||
#url_preview_max_spider_size = 256000
|
#url_preview_max_spider_size = 256000
|
||||||
|
|
||||||
|
# Total request timeout for URL previews (seconds). This includes
|
||||||
|
# connection, request, and response body reading time.
|
||||||
|
#
|
||||||
|
#url_preview_timeout = 120
|
||||||
|
|
||||||
# Option to decide whether you would like to run the domain allowlist
|
# Option to decide whether you would like to run the domain allowlist
|
||||||
# checks (contains and explicit) on the root domain or not. Does not apply
|
# checks (contains and explicit) on the root domain or not. Does not apply
|
||||||
# to URL contains allowlist. Defaults to false.
|
# to URL contains allowlist. Defaults to false.
|
||||||
@@ -1359,7 +1487,16 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
# allowlist is still too broad for you but you still want to allow all the
|
# allowlist is still too broad for you but you still want to allow all the
|
||||||
# subdomains under a root domain.
|
# subdomains under a root domain.
|
||||||
#
|
#
|
||||||
#url_preview_check_root_domain = false
|
url_preview_check_root_domain = {{ matrix_continuwuity_config_url_preview_check_root_domain | to_json }}
|
||||||
|
|
||||||
|
# User agent that is used specifically when fetching url previews.
|
||||||
|
#
|
||||||
|
#url_preview_user_agent = "continuwuity/<version> (bot; +https://continuwuity.org)"
|
||||||
|
|
||||||
|
# Determines whether audio and video files will be downloaded for URL
|
||||||
|
# previews.
|
||||||
|
#
|
||||||
|
#url_preview_allow_audio_video = false
|
||||||
|
|
||||||
# List of forbidden room aliases and room IDs as strings of regex
|
# List of forbidden room aliases and room IDs as strings of regex
|
||||||
# patterns.
|
# patterns.
|
||||||
@@ -1413,12 +1550,25 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
#
|
#
|
||||||
#block_non_admin_invites = false
|
#block_non_admin_invites = false
|
||||||
|
|
||||||
|
# Enable or disable making requests to MSC4284 Policy Servers.
|
||||||
|
# It is recommended you keep this enabled unless you experience frequent
|
||||||
|
# connectivity issues, such as in a restricted networking environment.
|
||||||
|
#
|
||||||
|
#enable_msc4284_policy_servers = true
|
||||||
|
|
||||||
|
# Enable running locally generated events through configured MSC4284
|
||||||
|
# policy servers. You may wish to disable this if your server is
|
||||||
|
# single-user for a slight speed benefit in some rooms, but otherwise
|
||||||
|
# should leave it enabled.
|
||||||
|
#
|
||||||
|
#policy_server_check_own_events = true
|
||||||
|
|
||||||
# Allow admins to enter commands in rooms other than "#admins" (admin
|
# Allow admins to enter commands in rooms other than "#admins" (admin
|
||||||
# room) by prefixing your message with "\!admin" or "\\!admin" followed up
|
# room) by prefixing your message with "\!admin" or "\\!admin" followed up
|
||||||
# a normal continuwuity admin command. The reply will be publicly visible
|
# a normal continuwuity admin command. The reply will be publicly visible
|
||||||
# to the room, originating from the sender.
|
# to the room, originating from the sender.
|
||||||
#
|
#
|
||||||
# example: \\!admin debug ping puppygock.gay
|
# example: \\!admin debug ping continuwuity.org
|
||||||
#
|
#
|
||||||
#admin_escape_commands = true
|
#admin_escape_commands = true
|
||||||
|
|
||||||
@@ -1436,7 +1586,8 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
# For example: `./continuwuity --execute "server admin-notice continuwuity
|
# For example: `./continuwuity --execute "server admin-notice continuwuity
|
||||||
# has started up at $(date)"`
|
# has started up at $(date)"`
|
||||||
#
|
#
|
||||||
# example: admin_execute = ["debug ping puppygock.gay", "debug echo hi"]`
|
# example: admin_execute = ["debug ping continuwuity.org", "debug echo
|
||||||
|
# hi"]`
|
||||||
#
|
#
|
||||||
#admin_execute = []
|
#admin_execute = []
|
||||||
|
|
||||||
@@ -1469,6 +1620,18 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
#
|
#
|
||||||
#admin_room_tag = "m.server_notice"
|
#admin_room_tag = "m.server_notice"
|
||||||
|
|
||||||
|
# A list of Matrix IDs that are qualified as server admins.
|
||||||
|
#
|
||||||
|
# Any Matrix IDs within this list are regarded as an admin
|
||||||
|
# regardless of whether they are in the admin room or not
|
||||||
|
#
|
||||||
|
#admins_list = []
|
||||||
|
|
||||||
|
# Defines whether those within the admin room are added to the
|
||||||
|
# admins_list.
|
||||||
|
#
|
||||||
|
#admins_from_room = true
|
||||||
|
|
||||||
# Sentry.io crash/panic reporting, performance monitoring/metrics, etc.
|
# Sentry.io crash/panic reporting, performance monitoring/metrics, etc.
|
||||||
# This is NOT enabled by default.
|
# This is NOT enabled by default.
|
||||||
#
|
#
|
||||||
@@ -1514,7 +1677,7 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
|
|
||||||
# Enable the tokio-console. This option is only relevant to developers.
|
# Enable the tokio-console. This option is only relevant to developers.
|
||||||
#
|
#
|
||||||
# For more information, see:
|
# For more information, see:
|
||||||
# https://continuwuity.org/development.html#debugging-with-tokio-console
|
# https://continuwuity.org/development.html#debugging-with-tokio-console
|
||||||
#
|
#
|
||||||
#tokio_console = false
|
#tokio_console = false
|
||||||
@@ -1620,6 +1783,11 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
#
|
#
|
||||||
#config_reload_signal = true
|
#config_reload_signal = true
|
||||||
|
|
||||||
|
# Allow search engines and crawlers to index Continuwuity's built-in
|
||||||
|
# webpages served under the `/_continuwuity/` prefix.
|
||||||
|
#
|
||||||
|
#allow_web_indexing = false
|
||||||
|
|
||||||
[global.tls]
|
[global.tls]
|
||||||
|
|
||||||
# Path to a valid TLS certificate file.
|
# Path to a valid TLS certificate file.
|
||||||
@@ -1698,3 +1866,152 @@ url_preview_domain_contains_allowlist = {{ matrix_continuwuity_config_url_previe
|
|||||||
# is 33.55MB. Setting it to 0 disables blurhashing.
|
# is 33.55MB. Setting it to 0 disables blurhashing.
|
||||||
#
|
#
|
||||||
#blurhash_max_raw_size = 33554432
|
#blurhash_max_raw_size = 33554432
|
||||||
|
|
||||||
|
[global.matrix_rtc]
|
||||||
|
|
||||||
|
# A list of MatrixRTC foci (transports) which will be served via the
|
||||||
|
# MSC4143 RTC transports endpoint at
|
||||||
|
# `/_matrix/client/v1/rtc/transports`. If you're setting up livekit,
|
||||||
|
# you'd want something like:
|
||||||
|
# ```toml
|
||||||
|
# [global.matrix_rtc]
|
||||||
|
# foci = [
|
||||||
|
# { type = "livekit", livekit_service_url = "https://livekit.example.com" },
|
||||||
|
# ]
|
||||||
|
# ```
|
||||||
|
#
|
||||||
|
# To disable, set this to an empty list (`[]`).
|
||||||
|
#
|
||||||
|
foci = [
|
||||||
|
{% for focus in matrix_continuwuity_config_rtc_foci %}
|
||||||
|
{ {% for key, value in focus.items() %}{{ key }} = {{ value | to_json }}{% if not loop.last %}, {% endif %}{% endfor %} }{% if not loop.last %}, {% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
]
|
||||||
|
|
||||||
|
[global.ldap]
|
||||||
|
|
||||||
|
# Whether to enable LDAP login.
|
||||||
|
#
|
||||||
|
# example: "true"
|
||||||
|
#
|
||||||
|
#enable = false
|
||||||
|
|
||||||
|
# Whether to force LDAP authentication or authorize classical password
|
||||||
|
# login.
|
||||||
|
#
|
||||||
|
# example: "true"
|
||||||
|
#
|
||||||
|
#ldap_only = false
|
||||||
|
|
||||||
|
# URI of the LDAP server.
|
||||||
|
#
|
||||||
|
# example: "ldap://ldap.example.com:389"
|
||||||
|
#
|
||||||
|
#uri = ""
|
||||||
|
|
||||||
|
# Root of the searches.
|
||||||
|
#
|
||||||
|
# example: "ou=users,dc=example,dc=org"
|
||||||
|
#
|
||||||
|
#base_dn = ""
|
||||||
|
|
||||||
|
# Bind DN if anonymous search is not enabled.
|
||||||
|
#
|
||||||
|
# You can use the variable `{username}` that will be replaced by the
|
||||||
|
# entered username. In such case, the password used to bind will be the
|
||||||
|
# one provided for the login and not the one given by
|
||||||
|
# `bind_password_file`. Beware: automatically granting admin rights will
|
||||||
|
# not work if you use this direct bind instead of a LDAP search.
|
||||||
|
#
|
||||||
|
# example: "cn=ldap-reader,dc=example,dc=org" or
|
||||||
|
# "cn={username},ou=users,dc=example,dc=org"
|
||||||
|
#
|
||||||
|
#bind_dn = ""
|
||||||
|
|
||||||
|
# Path to a file on the system that contains the password for the
|
||||||
|
# `bind_dn`.
|
||||||
|
#
|
||||||
|
# The server must be able to access the file, and it must not be empty.
|
||||||
|
#
|
||||||
|
#bind_password_file = ""
|
||||||
|
|
||||||
|
# Search filter to limit user searches.
|
||||||
|
#
|
||||||
|
# You can use the variable `{username}` that will be replaced by the
|
||||||
|
# entered username for more complex filters.
|
||||||
|
#
|
||||||
|
# example: "(&(objectClass=person)(memberOf=matrix))"
|
||||||
|
#
|
||||||
|
#filter = "(objectClass=*)"
|
||||||
|
|
||||||
|
# Attribute to use to uniquely identify the user.
|
||||||
|
#
|
||||||
|
# example: "uid" or "cn"
|
||||||
|
#
|
||||||
|
#uid_attribute = "uid"
|
||||||
|
|
||||||
|
# Attribute containing the display name of the user.
|
||||||
|
#
|
||||||
|
# example: "givenName" or "sn"
|
||||||
|
#
|
||||||
|
#name_attribute = "givenName"
|
||||||
|
|
||||||
|
# Root of the searches for admin users.
|
||||||
|
#
|
||||||
|
# Defaults to `base_dn` if empty.
|
||||||
|
#
|
||||||
|
# example: "ou=admins,dc=example,dc=org"
|
||||||
|
#
|
||||||
|
#admin_base_dn = ""
|
||||||
|
|
||||||
|
# The LDAP search filter to find administrative users for continuwuity.
|
||||||
|
#
|
||||||
|
# If left blank, administrative state must be configured manually for each
|
||||||
|
# user.
|
||||||
|
#
|
||||||
|
# You can use the variable `{username}` that will be replaced by the
|
||||||
|
# entered username for more complex filters.
|
||||||
|
#
|
||||||
|
# example: "(objectClass=conduwuitAdmin)" or "(uid={username})"
|
||||||
|
#
|
||||||
|
#admin_filter = ""
|
||||||
|
|
||||||
|
#[global.antispam]
|
||||||
|
|
||||||
|
#[global.antispam.meowlnir]
|
||||||
|
|
||||||
|
# The base URL on which to contact Meowlnir (before /_meowlnir/antispam).
|
||||||
|
#
|
||||||
|
# Example: "http://127.0.0.1:29339"
|
||||||
|
#
|
||||||
|
#base_url =
|
||||||
|
|
||||||
|
# The authentication secret defined in antispam->secret. Required for
|
||||||
|
# continuwuity to talk to Meowlnir.
|
||||||
|
#
|
||||||
|
#secret =
|
||||||
|
|
||||||
|
# The management room for which to send requests
|
||||||
|
#
|
||||||
|
#management_room =
|
||||||
|
|
||||||
|
# If enabled run all federated join attempts (both federated and local)
|
||||||
|
# through the Meowlnir anti-spam checks.
|
||||||
|
#
|
||||||
|
# By default, only join attempts for rooms with the `fi.mau.spam_checker`
|
||||||
|
# restricted join rule are checked.
|
||||||
|
#
|
||||||
|
#check_all_joins = false
|
||||||
|
|
||||||
|
#[global.antispam.draupnir]
|
||||||
|
|
||||||
|
# The base URL on which to contact Draupnir (before /api/).
|
||||||
|
#
|
||||||
|
# Example: "http://127.0.0.1:29339"
|
||||||
|
#
|
||||||
|
#base_url =
|
||||||
|
|
||||||
|
# The authentication secret defined in
|
||||||
|
# web->synapseHTTPAntispam->authorization
|
||||||
|
#
|
||||||
|
#secret =
|
||||||
|
|||||||
@@ -361,3 +361,13 @@ matrix_dendrite_media_api_max_thumbnail_generators: 10
|
|||||||
|
|
||||||
# Controls whether the full-text search engine is enabled
|
# Controls whether the full-text search engine is enabled
|
||||||
matrix_dendrite_sync_api_search_enabled: false
|
matrix_dendrite_sync_api_search_enabled: false
|
||||||
|
|
||||||
|
# matrix_dendrite_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_dendrite_restart_necessary: false
|
||||||
|
|||||||
@@ -55,10 +55,10 @@
|
|||||||
force_source: "{{ matrix_dendrite_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_dendrite_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_dendrite_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_dendrite_container_image_force_pull }}"
|
||||||
when: "not matrix_dendrite_container_image_self_build | bool"
|
when: "not matrix_dendrite_container_image_self_build | bool"
|
||||||
register: result
|
register: matrix_dendrite_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_dendrite_container_image_pull_result is not failed
|
||||||
|
|
||||||
# We do this so that the signing key would get generated.
|
# We do this so that the signing key would get generated.
|
||||||
# We don't use the `docker_container` module, because using it with `cap_drop` requires
|
# We don't use the `docker_container` module, because using it with `cap_drop` requires
|
||||||
@@ -89,6 +89,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_dendrite_config_result
|
||||||
|
|
||||||
- when: "matrix_dendrite_container_image_self_build | bool"
|
- when: "matrix_dendrite_container_image_self_build | bool"
|
||||||
block:
|
block:
|
||||||
@@ -139,6 +140,21 @@
|
|||||||
- src: bin/create-account.j2
|
- src: bin/create-account.j2
|
||||||
dest: "{{ matrix_dendrite_bin_path }}/create-account"
|
dest: "{{ matrix_dendrite_bin_path }}/create-account"
|
||||||
mode: "0750"
|
mode: "0750"
|
||||||
- src: systemd/matrix-dendrite.service.j2
|
register: matrix_dendrite_support_files_result
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-dendrite.service"
|
|
||||||
mode: "0644"
|
- name: Ensure matrix-dendrite.service installed
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: "{{ role_path }}/templates/systemd/matrix-dendrite.service.j2"
|
||||||
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-dendrite.service"
|
||||||
|
mode: '0644'
|
||||||
|
register: matrix_dendrite_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether Dendrite needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_dendrite_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_dendrite_config_result.changed | default(false)
|
||||||
|
or matrix_dendrite_support_files_result.changed | default(false)
|
||||||
|
or matrix_dendrite_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_dendrite_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -153,3 +153,13 @@ matrix_element_call_config_default_server_config_m_homeserver_server_name: "{{ m
|
|||||||
|
|
||||||
# Controls the livekit/livekit_service_url property in the config.json file.
|
# Controls the livekit/livekit_service_url property in the config.json file.
|
||||||
matrix_element_call_config_livekit_livekit_service_url: ""
|
matrix_element_call_config_livekit_livekit_service_url: ""
|
||||||
|
|
||||||
|
# matrix_element_call_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_element_call_restart_necessary: false
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
mode: '0640'
|
mode: '0640'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_element_call_config_result
|
||||||
|
|
||||||
- name: Ensure Element Call container labels file is in place
|
- name: Ensure Element Call container labels file is in place
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -31,16 +32,17 @@
|
|||||||
mode: '0640'
|
mode: '0640'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_element_call_support_files_result
|
||||||
|
|
||||||
- name: Ensure Element Call container image is pulled
|
- name: Ensure Element Call container image is pulled
|
||||||
community.docker.docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ matrix_element_call_container_image }}"
|
name: "{{ matrix_element_call_container_image }}"
|
||||||
source: pull
|
source: pull
|
||||||
force_source: "{{ matrix_element_call_container_image_force_pull }}"
|
force_source: "{{ matrix_element_call_container_image_force_pull }}"
|
||||||
register: element_call_image_result
|
register: matrix_element_call_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: element_call_image_result is not failed
|
until: matrix_element_call_container_image_pull_result is not failed
|
||||||
|
|
||||||
- name: Ensure Element Call container network is created
|
- name: Ensure Element Call container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
@@ -54,3 +56,14 @@
|
|||||||
src: "{{ role_path }}/templates/systemd/matrix-element-call.service.j2"
|
src: "{{ role_path }}/templates/systemd/matrix-element-call.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-element-call.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-element-call.service"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
|
register: matrix_element_call_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether Element Call needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_element_call_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_element_call_config_result.changed | default(false)
|
||||||
|
or matrix_element_call_support_files_result.changed | default(false)
|
||||||
|
or matrix_element_call_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_element_call_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -40,6 +40,7 @@
|
|||||||
path: "{{ matrix_ldap_registration_proxy_container_src_files_path }}"
|
path: "{{ matrix_ldap_registration_proxy_container_src_files_path }}"
|
||||||
pull: true
|
pull: true
|
||||||
when: true
|
when: true
|
||||||
|
register: matrix_ldap_registration_proxy_container_image_build_result
|
||||||
|
|
||||||
- name: Ensure matrix_ldap_registration_proxy config installed
|
- name: Ensure matrix_ldap_registration_proxy config installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -82,4 +83,5 @@
|
|||||||
matrix_ldap_registration_proxy_config_result.changed | default(false)
|
matrix_ldap_registration_proxy_config_result.changed | default(false)
|
||||||
or matrix_ldap_registration_proxy_support_files_result.changed | default(false)
|
or matrix_ldap_registration_proxy_support_files_result.changed | default(false)
|
||||||
or matrix_ldap_registration_proxy_systemd_service_result.changed | default(false)
|
or matrix_ldap_registration_proxy_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_ldap_registration_proxy_container_image_build_result.changed | default(false)
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ matrix_livekit_jwt_service_container_additional_networks_auto: []
|
|||||||
matrix_livekit_jwt_service_container_additional_networks_custom: []
|
matrix_livekit_jwt_service_container_additional_networks_custom: []
|
||||||
|
|
||||||
# renovate: datasource=docker depName=ghcr.io/element-hq/lk-jwt-service
|
# renovate: datasource=docker depName=ghcr.io/element-hq/lk-jwt-service
|
||||||
matrix_livekit_jwt_service_version: 0.4.1
|
matrix_livekit_jwt_service_version: 0.4.2
|
||||||
|
|
||||||
matrix_livekit_jwt_service_container_image_self_build: false
|
matrix_livekit_jwt_service_container_image_self_build: false
|
||||||
matrix_livekit_jwt_service_container_repo: "https://github.com/element-hq/lk-jwt-service.git"
|
matrix_livekit_jwt_service_container_repo: "https://github.com/element-hq/lk-jwt-service.git"
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
path: "{{ matrix_matrixto_container_image_self_build_src_files_path }}"
|
path: "{{ matrix_matrixto_container_image_self_build_src_files_path }}"
|
||||||
pull: true
|
pull: true
|
||||||
args:
|
args:
|
||||||
|
register: matrix_matrixto_container_image_build_result
|
||||||
|
|
||||||
- name: Ensure Matrix.to container network is created via community.docker.docker_network
|
- name: Ensure Matrix.to container network is created via community.docker.docker_network
|
||||||
when: devture_systemd_docker_base_container_network_creation_method == 'ansible-module'
|
when: devture_systemd_docker_base_container_network_creation_method == 'ansible-module'
|
||||||
@@ -79,4 +80,5 @@
|
|||||||
{{
|
{{
|
||||||
matrix_matrixto_support_files_result.changed | default(false)
|
matrix_matrixto_support_files_result.changed | default(false)
|
||||||
or matrix_matrixto_systemd_service_result.changed | default(false)
|
or matrix_matrixto_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_matrixto_container_image_build_result.changed | default(false)
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -939,3 +939,13 @@ matrix_media_repo_pgo_submit_key: "INSERT_VALUE_HERE"
|
|||||||
|
|
||||||
# Specifies whether the homeserver supports federation
|
# Specifies whether the homeserver supports federation
|
||||||
matrix_media_repo_homeserver_federation_enabled: true
|
matrix_media_repo_homeserver_federation_enabled: true
|
||||||
|
|
||||||
|
# matrix_media_repo_restart_necessary controls whether the service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_media_repo_restart_necessary: false
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- env
|
- env
|
||||||
- labels
|
- labels
|
||||||
|
register: matrix_media_repo_support_files_result
|
||||||
|
|
||||||
- name: Ensure media-repo configuration installed
|
- name: Ensure media-repo configuration installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -43,6 +44,7 @@
|
|||||||
mode: '0640'
|
mode: '0640'
|
||||||
owner: "{{ matrix_user_name }}"
|
owner: "{{ matrix_user_name }}"
|
||||||
group: "{{ matrix_group_name }}"
|
group: "{{ matrix_group_name }}"
|
||||||
|
register: matrix_media_repo_config_result
|
||||||
|
|
||||||
- name: Ensure media-repo Docker image is pulled
|
- name: Ensure media-repo Docker image is pulled
|
||||||
community.docker.docker_image:
|
community.docker.docker_image:
|
||||||
@@ -51,10 +53,10 @@
|
|||||||
force_source: "{{ matrix_media_repo_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_media_repo_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_media_repo_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_media_repo_container_image_force_pull }}"
|
||||||
when: "not matrix_media_repo_container_image_self_build | bool"
|
when: "not matrix_media_repo_container_image_self_build | bool"
|
||||||
register: result
|
register: matrix_media_repo_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_media_repo_container_image_pull_result is not failed
|
||||||
|
|
||||||
- when: "matrix_media_repo_container_image_self_build | bool"
|
- when: "matrix_media_repo_container_image_self_build | bool"
|
||||||
block:
|
block:
|
||||||
@@ -153,3 +155,14 @@
|
|||||||
src: "{{ role_path }}/templates/media-repo/systemd/matrix-media-repo.service.j2"
|
src: "{{ role_path }}/templates/media-repo/systemd/matrix-media-repo.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/{{ matrix_media_repo_identifier }}.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/{{ matrix_media_repo_identifier }}.service"
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
|
register: matrix_media_repo_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether media-repo needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_media_repo_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_media_repo_config_result.changed | default(false)
|
||||||
|
or matrix_media_repo_support_files_result.changed | default(false)
|
||||||
|
or matrix_media_repo_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_media_repo_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ matrix_static_files_enabled: true
|
|||||||
matrix_static_files_identifier: matrix-static-files
|
matrix_static_files_identifier: matrix-static-files
|
||||||
|
|
||||||
# renovate: datasource=docker depName=joseluisq/static-web-server
|
# renovate: datasource=docker depName=joseluisq/static-web-server
|
||||||
matrix_static_files_version: 2.41.0
|
matrix_static_files_version: 2.42.0
|
||||||
|
|
||||||
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_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"
|
matrix_static_files_config_path: "{{ matrix_static_files_base_path }}/config"
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ matrix_synapse_enabled: true
|
|||||||
matrix_synapse_github_org_and_repo: element-hq/synapse
|
matrix_synapse_github_org_and_repo: element-hq/synapse
|
||||||
|
|
||||||
# renovate: datasource=docker depName=ghcr.io/element-hq/synapse
|
# renovate: datasource=docker depName=ghcr.io/element-hq/synapse
|
||||||
matrix_synapse_version: v1.149.1
|
matrix_synapse_version: v1.150.0
|
||||||
|
|
||||||
matrix_synapse_username: ''
|
matrix_synapse_username: ''
|
||||||
matrix_synapse_uid: ''
|
matrix_synapse_uid: ''
|
||||||
@@ -125,6 +125,17 @@ matrix_synapse_ext_s3_storage_provider_data_path: "{{ matrix_synapse_ext_s3_stor
|
|||||||
# extra arguments to pass to s3-storage-provider script when starting Synapse container
|
# extra arguments to pass to s3-storage-provider script when starting Synapse container
|
||||||
matrix_synapse_ext_s3_storage_provider_container_arguments: []
|
matrix_synapse_ext_s3_storage_provider_container_arguments: []
|
||||||
|
|
||||||
|
# matrix_synapse_s3_storage_provider_restart_necessary controls whether the
|
||||||
|
# s3-storage-provider migrate timer will be restarted (when true) or merely
|
||||||
|
# started (when false) by the systemd service manager role (when conditional
|
||||||
|
# restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files or the systemd service/timer files changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_synapse_s3_storage_provider_restart_necessary: false
|
||||||
|
|
||||||
matrix_synapse_container_client_api_port: 8008
|
matrix_synapse_container_client_api_port: 8008
|
||||||
|
|
||||||
# Controls the `x_forwarded` setting for the "Insecure HTTP listener (Client API)".
|
# Controls the `x_forwarded` setting for the "Insecure HTTP listener (Client API)".
|
||||||
@@ -1419,6 +1430,13 @@ matrix_synapse_experimental_features_msc4140_enabled: false
|
|||||||
# See `matrix_synapse_experimental_features_msc4140_enabled`.
|
# See `matrix_synapse_experimental_features_msc4140_enabled`.
|
||||||
matrix_synapse_max_event_delay_duration: 24h
|
matrix_synapse_max_event_delay_duration: 24h
|
||||||
|
|
||||||
|
# Controls whether to enable the MSC4143 experimental feature (RTC transports).
|
||||||
|
#
|
||||||
|
# This is used by MatrixRTC clients to discover the unstable RTC transports API.
|
||||||
|
#
|
||||||
|
# See https://github.com/matrix-org/matrix-spec-proposals/pull/4143
|
||||||
|
matrix_synapse_experimental_features_msc4143_enabled: false
|
||||||
|
|
||||||
# Controls whether to enable the MSC4222 experimental feature (adding `state_after` to sync v2).
|
# Controls whether to enable the MSC4222 experimental feature (adding `state_after` to sync v2).
|
||||||
#
|
#
|
||||||
# Allow clients to opt-in to a change of the sync v2 API that allows them to correctly track the state of the room.
|
# Allow clients to opt-in to a change of the sync v2 API that allows them to correctly track the state of the room.
|
||||||
@@ -1648,6 +1666,16 @@ matrix_s3_media_store_aws_secret_key: "your-aws-secret-key"
|
|||||||
matrix_s3_media_store_region: "eu-central-1"
|
matrix_s3_media_store_region: "eu-central-1"
|
||||||
matrix_s3_media_store_path: "{{ matrix_synapse_media_store_path }}"
|
matrix_s3_media_store_path: "{{ matrix_synapse_media_store_path }}"
|
||||||
|
|
||||||
|
# matrix_goofys_restart_necessary controls whether the Goofys service
|
||||||
|
# will be restarted (when true) or merely started (when false) by the
|
||||||
|
# systemd service manager role (when conditional restart is enabled).
|
||||||
|
#
|
||||||
|
# This value is automatically computed during installation based on whether
|
||||||
|
# any configuration files, the systemd service file, or the container image changed.
|
||||||
|
# The default of `false` means "no restart needed" — appropriate when the role's
|
||||||
|
# installation tasks haven't run (e.g., due to --tags skipping them).
|
||||||
|
matrix_goofys_restart_necessary: false
|
||||||
|
|
||||||
# Controls whether the self-check feature should validate SSL certificates.
|
# Controls whether the self-check feature should validate SSL certificates.
|
||||||
matrix_synapse_self_check_validate_certificates: true
|
matrix_synapse_self_check_validate_certificates: true
|
||||||
|
|
||||||
@@ -1807,7 +1835,7 @@ matrix_synapse_register_user_script_matrix_authentication_service_path: ""
|
|||||||
matrix_synapse_reverse_proxy_companion_enabled: "{{ matrix_synapse_enabled and matrix_synapse_workers_enabled }}"
|
matrix_synapse_reverse_proxy_companion_enabled: "{{ matrix_synapse_enabled and matrix_synapse_workers_enabled }}"
|
||||||
|
|
||||||
# renovate: datasource=docker depName=nginx
|
# renovate: datasource=docker depName=nginx
|
||||||
matrix_synapse_reverse_proxy_companion_version: 1.29.6-alpine
|
matrix_synapse_reverse_proxy_companion_version: 1.29.7-alpine
|
||||||
|
|
||||||
matrix_synapse_reverse_proxy_companion_base_path: "{{ matrix_synapse_base_path }}/reverse-proxy-companion"
|
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"
|
matrix_synapse_reverse_proxy_companion_confd_path: "{{ matrix_synapse_reverse_proxy_companion_base_path }}/conf.d"
|
||||||
|
|||||||
@@ -27,12 +27,14 @@
|
|||||||
src: "{{ role_path }}/templates/synapse/ext/s3-storage-provider/env.j2"
|
src: "{{ role_path }}/templates/synapse/ext/s3-storage-provider/env.j2"
|
||||||
dest: "{{ matrix_synapse_ext_s3_storage_provider_base_path }}/env"
|
dest: "{{ matrix_synapse_ext_s3_storage_provider_base_path }}/env"
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
|
register: matrix_synapse_s3_storage_provider_env_result
|
||||||
|
|
||||||
- name: Ensure s3-storage-provider database.yaml file installed
|
- name: Ensure s3-storage-provider database.yaml file installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/synapse/ext/s3-storage-provider/database.yaml.j2"
|
src: "{{ role_path }}/templates/synapse/ext/s3-storage-provider/database.yaml.j2"
|
||||||
dest: "{{ matrix_synapse_ext_s3_storage_provider_data_path }}/database.yaml"
|
dest: "{{ matrix_synapse_ext_s3_storage_provider_data_path }}/database.yaml"
|
||||||
mode: '0640'
|
mode: '0640'
|
||||||
|
register: matrix_synapse_s3_storage_provider_database_config_result
|
||||||
|
|
||||||
- name: Ensure s3-storage-provider scripts installed
|
- name: Ensure s3-storage-provider scripts installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -42,6 +44,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- shell
|
- shell
|
||||||
- migrate
|
- migrate
|
||||||
|
register: matrix_synapse_s3_storage_provider_scripts_result
|
||||||
|
|
||||||
- name: Ensure matrix-synapse-s3-storage-provider-migrate.service and timer are installed
|
- name: Ensure matrix-synapse-s3-storage-provider-migrate.service and timer are installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
@@ -52,3 +55,13 @@
|
|||||||
- matrix-synapse-s3-storage-provider-migrate.service
|
- matrix-synapse-s3-storage-provider-migrate.service
|
||||||
- matrix-synapse-s3-storage-provider-migrate.timer
|
- matrix-synapse-s3-storage-provider-migrate.timer
|
||||||
register: matrix_synapse_s3_storage_provider_systemd_service_result
|
register: matrix_synapse_s3_storage_provider_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether s3-storage-provider migrate timer needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_synapse_s3_storage_provider_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_synapse_s3_storage_provider_env_result.changed | default(false)
|
||||||
|
or matrix_synapse_s3_storage_provider_database_config_result.changed | default(false)
|
||||||
|
or matrix_synapse_s3_storage_provider_scripts_result.changed | default(false)
|
||||||
|
or matrix_synapse_s3_storage_provider_systemd_service_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -20,10 +20,10 @@
|
|||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||||
force_source: "{{ matrix_s3_goofys_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
force_source: "{{ matrix_s3_goofys_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_s3_goofys_container_image_force_pull }}"
|
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_s3_goofys_container_image_force_pull }}"
|
||||||
register: result
|
register: matrix_goofys_container_image_pull_result
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
retries: "{{ devture_playbook_help_container_retries_count }}"
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: matrix_goofys_container_image_pull_result is not failed
|
||||||
|
|
||||||
# This will throw a Permission Denied error if already mounted
|
# This will throw a Permission Denied error if already mounted
|
||||||
- name: Check Matrix Goofys external storage mountpoint path
|
- name: Check Matrix Goofys external storage mountpoint path
|
||||||
@@ -47,9 +47,20 @@
|
|||||||
dest: "{{ matrix_synapse_config_dir_path }}/env-goofys"
|
dest: "{{ matrix_synapse_config_dir_path }}/env-goofys"
|
||||||
owner: root
|
owner: root
|
||||||
mode: '0600'
|
mode: '0600'
|
||||||
|
register: matrix_goofys_env_result
|
||||||
|
|
||||||
- name: Ensure matrix-goofys.service installed
|
- name: Ensure matrix-goofys.service installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ role_path }}/templates/goofys/systemd/matrix-goofys.service.j2"
|
src: "{{ role_path }}/templates/goofys/systemd/matrix-goofys.service.j2"
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-goofys.service"
|
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-goofys.service"
|
||||||
mode: '0644'
|
mode: '0644'
|
||||||
|
register: matrix_goofys_systemd_service_result
|
||||||
|
|
||||||
|
- name: Determine whether Goofys needs a restart
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
matrix_goofys_restart_necessary: >-
|
||||||
|
{{
|
||||||
|
matrix_goofys_env_result.changed | default(false)
|
||||||
|
or matrix_goofys_systemd_service_result.changed | default(false)
|
||||||
|
or matrix_goofys_container_image_pull_result.changed | default(false)
|
||||||
|
}}
|
||||||
|
|||||||
@@ -210,7 +210,7 @@
|
|||||||
- name: Fail if OpenID Connect is enabled for Synapse when auth is delegated to Matrix Authentication Service
|
- name: Fail if OpenID Connect is enabled for Synapse when auth is delegated to Matrix Authentication Service
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "When Synapse is delegating authentication to Matrix Authentication Service (`matrix_synapse_matrix_authentication_service_enabled: true`), it doesn't make sense to enable OpenID Connect (`matrix_synapse_oidc_enabled: true`), because it is not Synapse that is handling authentication. Synapse will refuse to start otherwise."
|
msg: "When Synapse is delegating authentication to Matrix Authentication Service (`matrix_synapse_matrix_authentication_service_enabled: true`), it doesn't make sense to enable OpenID Connect (`matrix_synapse_oidc_enabled: true`), because it is not Synapse that is handling authentication. Synapse will refuse to start otherwise."
|
||||||
when: matrix_synapse_matrix_authentication_service_enabled and matrix_synapse_oidc_enabled
|
when: matrix_synapse_matrix_authentication_service_enabled and matrix_synapse_oidc_enabled and not matrix_authentication_service_migration_in_progress
|
||||||
|
|
||||||
- name: Fail if CAS config is enabled for Synapse when auth is delegated to Matrix Authentication Service
|
- name: Fail if CAS config is enabled for Synapse when auth is delegated to Matrix Authentication Service
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
|
|||||||
@@ -2987,7 +2987,7 @@ background_updates:
|
|||||||
#default_batch_size: 50
|
#default_batch_size: 50
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_synapse_matrix_authentication_service_enabled %}
|
{% if matrix_synapse_matrix_authentication_service_enabled and not matrix_authentication_service_migration_in_progress %}
|
||||||
matrix_authentication_service:
|
matrix_authentication_service:
|
||||||
enabled: true
|
enabled: true
|
||||||
endpoint: {{ matrix_synapse_matrix_authentication_service_endpoint | to_json }}
|
endpoint: {{ matrix_synapse_matrix_authentication_service_endpoint | to_json }}
|
||||||
@@ -3010,6 +3010,9 @@ experimental_features:
|
|||||||
{% if matrix_synapse_experimental_features_msc4140_enabled %}
|
{% if matrix_synapse_experimental_features_msc4140_enabled %}
|
||||||
msc4140_enabled: true
|
msc4140_enabled: true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if matrix_synapse_experimental_features_msc4143_enabled %}
|
||||||
|
msc4143_enabled: true
|
||||||
|
{% endif %}
|
||||||
{% if matrix_synapse_experimental_features_msc4222_enabled %}
|
{% if matrix_synapse_experimental_features_msc4222_enabled %}
|
||||||
msc4222_enabled: true
|
msc4222_enabled: true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|||||||
@@ -1,9 +1,30 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2023 - 2026 Slavi Pantaleev
|
||||||
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# The version that the user has validated their setup against.
|
||||||
|
# When empty, the user will be prompted to set this variable.
|
||||||
|
# New users should set this to the current expected version (see below).
|
||||||
|
# See `examples/vars.yml` and `matrix_playbook_migration_expected_version` for the recommended value.
|
||||||
|
matrix_playbook_migration_validated_version: ''
|
||||||
|
|
||||||
|
# The version that the playbook expects the user to have validated against.
|
||||||
|
# This is bumped whenever a breaking change is introduced.
|
||||||
|
# The value configured here needs to exist in `matrix_playbook_migration_breaking_changes` as well.
|
||||||
|
matrix_playbook_migration_expected_version: "v2026.04.02.0"
|
||||||
|
|
||||||
|
# A list of breaking changes, used to inform users what changed between their validated version and the expected version.
|
||||||
|
matrix_playbook_migration_breaking_changes:
|
||||||
|
- version: "v2026.04.02.0"
|
||||||
|
summary: "(BC Break) Draupnir-for-all self-service provisioning is now disabled by default"
|
||||||
|
changelog_url: "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2026-04-02"
|
||||||
|
- version: "v2026.03.23.0"
|
||||||
|
summary: "Initial migration validation system"
|
||||||
|
changelog_url: "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2026-03-22"
|
||||||
|
|
||||||
# Controls if (`matrix_prometheus_nginxlog_exporter` -> `prometheus_nginxlog_exporter`) validation will run.
|
# Controls if (`matrix_prometheus_nginxlog_exporter` -> `prometheus_nginxlog_exporter`) validation will run.
|
||||||
matrix_playbook_migration_matrix_prometheus_nginxlog_exporter_migration_validation_enabled: true
|
matrix_playbook_migration_matrix_prometheus_nginxlog_exporter_migration_validation_enabled: true
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
# SPDX-FileCopyrightText: 2022 - 2024 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2022 - 2026 Slavi Pantaleev
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
- tags:
|
||||||
|
- always
|
||||||
|
block:
|
||||||
|
- ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_migration_version.yml"
|
||||||
|
|
||||||
- tags:
|
- tags:
|
||||||
- setup-all
|
- setup-all
|
||||||
- install-all
|
- install-all
|
||||||
|
|||||||
@@ -40,8 +40,8 @@
|
|||||||
- {'old': 'matrix_systemd_services_list', 'new': 'devture_systemd_service_manager_services_list_additional'}
|
- {'old': 'matrix_systemd_services_list', 'new': 'devture_systemd_service_manager_services_list_additional'}
|
||||||
- {'old': 'matrix_common_after_systemd_service_start_wait_for_timeout_seconds', 'new': 'devture_systemd_service_manager_up_verification_delay_seconds'}
|
- {'old': 'matrix_common_after_systemd_service_start_wait_for_timeout_seconds', 'new': 'devture_systemd_service_manager_up_verification_delay_seconds'}
|
||||||
- {'old': 'matrix_systemd_services_autostart_enabled', 'new': 'devture_systemd_service_manager_services_autostart_enabled'}
|
- {'old': 'matrix_systemd_services_autostart_enabled', 'new': 'devture_systemd_service_manager_services_autostart_enabled'}
|
||||||
- {'old': 'matrix_prometheus_node_exporter_metrics_proxying_enabled', 'new': '<prometheus_node_exporter_container_labels_traefik_enabled or matrix_metrics_exposure_enabled>'}
|
- {'old': 'matrix_prometheus_node_exporter_metrics_proxying_enabled', 'new': '<prometheus_node_exporter_container_labels_metrics_enabled or matrix_metrics_exposure_enabled>'}
|
||||||
- {'old': 'matrix_prometheus_postgres_exporter_metrics_proxying_enabled', 'new': '<prometheus_postgres_exporter_container_labels_traefik_enabled or matrix_metrics_exposure_enabled>'}
|
- {'old': 'matrix_prometheus_postgres_exporter_metrics_proxying_enabled', 'new': '<prometheus_postgres_exporter_container_labels_metrics_enabled or matrix_metrics_exposure_enabled>'}
|
||||||
- {'old': 'matrix_playbook_traefik_certs_dumper_role_enabled', 'new': 'traefik_certs_dumper_enabled'}
|
- {'old': 'matrix_playbook_traefik_certs_dumper_role_enabled', 'new': 'traefik_certs_dumper_enabled'}
|
||||||
- {'old': 'matrix_playbook_traefik_role_enabled', 'new': 'traefik_enabled'}
|
- {'old': 'matrix_playbook_traefik_role_enabled', 'new': 'traefik_enabled'}
|
||||||
|
|
||||||
@@ -100,9 +100,9 @@
|
|||||||
- {'old': 'prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream', 'new': 'prometheus_nginxlog_exporter_container_image_registry_prefix_upstream'}
|
- {'old': 'prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream', 'new': 'prometheus_nginxlog_exporter_container_image_registry_prefix_upstream'}
|
||||||
- {'old': 'prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream_default', 'new': 'prometheus_nginxlog_exporter_container_image_registry_prefix_upstream_default'}
|
- {'old': 'prometheus_nginxlog_exporter_docker_image_registry_prefix_upstream_default', 'new': 'prometheus_nginxlog_exporter_container_image_registry_prefix_upstream_default'}
|
||||||
- {'old': 'prometheus_nginxlog_exporter_docker_image_arch_check_enabled', 'new': 'prometheus_nginxlog_exporter_container_image_arch_check_enabled'}
|
- {'old': 'prometheus_nginxlog_exporter_docker_image_arch_check_enabled', 'new': 'prometheus_nginxlog_exporter_container_image_arch_check_enabled'}
|
||||||
- {'old': 'prometheus_nginxlog_exporter_metrics_proxying_enabled', 'new': 'prometheus_nginxlog_exporter_container_labels_traefik_enabled'}
|
- {'old': 'prometheus_nginxlog_exporter_metrics_proxying_enabled', 'new': 'prometheus_nginxlog_exporter_container_labels_metrics_enabled'}
|
||||||
- {'old': 'prometheus_nginxlog_exporter_metrics_proxying_hostname', 'new': 'prometheus_nginxlog_exporter_container_labels_traefik_hostname'}
|
- {'old': 'prometheus_nginxlog_exporter_metrics_proxying_hostname', 'new': 'prometheus_nginxlog_exporter_container_labels_metrics_hostname'}
|
||||||
- {'old': 'prometheus_nginxlog_exporter_metrics_proxying_path_prefix', 'new': 'prometheus_nginxlog_exporter_container_labels_traefik_path_prefix'}
|
- {'old': 'prometheus_nginxlog_exporter_metrics_proxying_path_prefix', 'new': 'prometheus_nginxlog_exporter_container_labels_metrics_path_prefix'}
|
||||||
- {'old': 'prometheus_nginxlog_exporter_config_namespaces_matrix_source_tags_custom', 'new': 'prometheus_nginxlog_exporter_config_namespaces_source_tags_custom'}
|
- {'old': 'prometheus_nginxlog_exporter_config_namespaces_matrix_source_tags_custom', 'new': 'prometheus_nginxlog_exporter_config_namespaces_source_tags_custom'}
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report matrix_postgres variables
|
- name: (Deprecation) Catch and report matrix_postgres variables
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- name: Fail if migration version is not validated (first-time onboarding)
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: >-
|
||||||
|
This playbook now uses a migration validation system to help you stay aware of breaking changes.
|
||||||
|
|
||||||
|
It appears that you haven't configured the `matrix_playbook_migration_validated_version` variable yet.
|
||||||
|
|
||||||
|
Please review the changelog (https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md)
|
||||||
|
and then add the following to your vars.yml file:
|
||||||
|
|
||||||
|
matrix_playbook_migration_validated_version: {{ matrix_playbook_migration_expected_version }}
|
||||||
|
when: "matrix_playbook_migration_validated_version == ''"
|
||||||
|
|
||||||
|
- name: Fail if migration version is outdated
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: |-
|
||||||
|
Your validated migration version ({{ matrix_playbook_migration_validated_version }}) is behind the expected version ({{ matrix_playbook_migration_expected_version }}).
|
||||||
|
|
||||||
|
The following breaking changes have been introduced since your last validation:
|
||||||
|
|
||||||
|
{% for item in matrix_playbook_migration_breaking_changes | selectattr('version', '>', matrix_playbook_migration_validated_version) | sort(attribute='version') %}
|
||||||
|
- {{ item.version }}: {{ item.summary }} ({{ item.changelog_url }})
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
After reviewing the above changes and adapting your setup, update your vars.yml:
|
||||||
|
|
||||||
|
matrix_playbook_migration_validated_version: "{{ matrix_playbook_migration_expected_version }}"
|
||||||
|
when: "matrix_playbook_migration_validated_version != '' and matrix_playbook_migration_validated_version < matrix_playbook_migration_expected_version"
|
||||||
Reference in New Issue
Block a user