Commit Graph

48 Commits

Author SHA1 Message Date
Slavi Pantaleev e5b8de8c2b Heal git checkout ownership in all roles cloning repositories on the server
6b4b7647e fixed this for synapse-usage-exporter only. A checkout owned by
a different user makes the git task fail from then on, either with a
permission error or with git's dubious-ownership protection, until
someone removes the directory on the host by hand. It gets into that
state when the matrix user's uid changes (a server migration or a restore
onto a differently numbered user), when an earlier clone ran as another
user, or when someone runs git as root inside the checkout.

Every other role cloning a repository onto the server was open to the
same failure, so ensure the checkout's ownership recursively before
updating it at the remaining 54 sites.

The three matrix-synapse ext clones also gain force=yes. They were the
only on-server clones without it, which left a checkout that an
interrupted run had half-written wedged, instead of repaired on the next
run.

matrix-matrixto used to clone as root into a directory that nothing ever
chowned, unlike every other role. It now becomes the matrix user too.

The Element Web and SchildiChat Web theme checkouts live on the Ansible
controller, where correcting ownership is not ours to do, so they merely
mark the checkout as a safe directory for git.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 19:01:52 +03:00
Kevin Veen-Birkenbach bd6e08a93e Allow host network mode for MDAD-managed containers (#5310)
* feat: support container_network=host across all roles + systemd templates

Mirror the pattern Slavi introduced for matrix-coturn (aafa8f0) across the
fork: every 'Ensure X container network is created' task gets a
'when: <var> not in ["", "host"]' guard so MDAD does not try to
docker_network create a network literally named 'host' (returns 403,
since host is a pre-defined Docker network).

Mirror the same guard in every systemd unit template that does
'ExecStartPre=docker network connect <addnet> <container>' loops over
matrix_<role>_container_additional_networks: skip the connects when the
container is on host networking (where additional --network attaches
are invalid).

Unblocks DiD setups where MDAD-managed containers share their host's
network namespace (matrix-mdad outer compose service joined to central
postgres/openldap networks) to reach external services on the outer
Docker daemon.

* Simplify container network guards (!= 'host') and fix duplicate when

Guarding on the empty string ('') as well was misleading: systemd unit
templates still render an unconditional --network= flag, so an empty
network value produces a broken docker create command. Only 'host' is
actually supported, so only guard on that. This also matches the
existing convention in the Traefik role
(when: traefik_container_network != 'host').

Also fix a duplicate when key in the meshtastic-relay role, where the
network-creation task already had a when condition - the two are now
combined into a list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 23:48:03 +03:00
renovate[bot] 1a82f38061 Update ghcr.io/matrix-org/rageshake Docker tag to v1.18.0 2026-05-13 21:07:29 +03:00
Slavi Pantaleev 7a33b5939d matrix-rageshake: switch to modern community.docker docker_image modules
Replaces `community.docker.docker_image` with the modern
`docker_image_pull` module. Drops the `ansible_version` compatibility
ladder and the now-redundant `_container_image_force_pull` variable
(the new pull module handles registry refresh natively via `pull: always`).

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/5191.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 21:27:03 +03:00
QEDeD f0f496b6ba Quote YAML mode values to satisfy octal lint rules 2026-02-16 13:19:10 +02:00
Slavi Pantaleev 0d86610cbe Add conditional restart support to service roles
Track config/image/systemd changes via register: directives and compute
a _restart_necessary variable for each service role, allowing the
systemd_service_manager to skip unnecessary restarts during install-* runs.

Covers 22 service roles: alertmanager-receiver, appservice-draupnir-for-all,
bridge-mautrix-wsproxy (+ syncproxy), cactus-comments, cactus-comments-client,
corporal, element-admin, ldap-registration-proxy, livekit-jwt-service, matrixto,
pantalaimon, prometheus-nginxlog-exporter, rageshake, registration, static-files,
sygnal, synapse-admin, synapse-auto-compressor, synapse-reverse-proxy-companion,
synapse-usage-exporter, and user-verification-service.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:01:46 +02:00
Slavi Pantaleev 325b22a302 Stop using deprecated vars variable in all other custom roles
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4776

Supersedes https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4777
2025-12-02 21:32:15 +02:00
renovate[bot] a88c394ae0 chore(deps): update ghcr.io/matrix-org/rageshake docker tag to v1.17.1 2025-11-28 17:54:12 +02:00
renovate[bot] 99d68c4e51 chore(deps): update ghcr.io/matrix-org/rageshake docker tag to v1.17.0 2025-11-14 06:55:33 +02:00
renovate[bot] 7f0c9aaf55 Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.3 2025-08-28 21:12:04 +03:00
Slavi Pantaleev 51ab9ed9ff Adjust lstrip_blocks to use a bool value for compatibility with ansible-core>=2.19.0
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 17:58:12 +03:00
Slavi Pantaleev a1f6ee4dc9 Improve compatibility with ansible-core>=2.19.0 by not reaching into vars
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 17:50:20 +03:00
Slavi Pantaleev 3ee7deb2d7 Rename variable (matrix_user_groupname -> matrix_group_name) 2025-04-29 10:39:41 +03:00
Slavi Pantaleev 9fc5cdab33 Rename variable (matrix_user_username -> matrix_user_name) 2025-04-29 10:39:41 +03:00
renovate[bot] d635f664b5 Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.2 2025-03-19 19:27:16 +02:00
renovate[bot] bf2e2dab5a Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.1 2025-03-18 07:46:33 +02:00
renovate[bot] e3b4128278 Update ghcr.io/matrix-org/rageshake Docker tag to v1.16.0 2025-03-17 14:58:53 +02:00
renovate[bot] 96adaf9916 Update ghcr.io/matrix-org/rageshake Docker tag to v1.15.0 2025-03-10 10:39:16 +02:00
Suguru Hirahara c385bee7af Re-run "reuse annotate" to sort statements
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-03-05 12:43:41 +09:00
Suguru Hirahara 4a92cc11d0 Add license information to files for matrix-rageshake
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-27 18:31:49 +09:00
Slavi Pantaleev c47eca389b Rework all roles to include component_(docker|container)_image_registry_prefix* variables
This:

- brings consistency - no more mixing `_name_prefix` and `_registry_prefix`
- adds extensibility - a future patch will allow reconfiguring all registry prefixes for all roles in the playbook

We still have `_docker_` vs `_container_` inconsistencies.
These may be worked on later.
2025-02-24 11:38:47 +02:00
Slavi Pantaleev d12643eb91 Do not use docker stop --time (deprecated in Docker v28 in favor of --timeout or just -t)
`-t` works on both old and new Docker versions, so it's best to use that.
2025-02-22 21:42:18 +02:00
renovate[bot] 44de5d91f1 Update ghcr.io/matrix-org/rageshake Docker tag to v1.14.0 2025-02-11 15:38:53 +00:00
Suguru Hirahara 51f0a315ac Update files for rageshake: change config.yml.j2 → config.yaml.j2
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-06 18:26:08 +09:00
Suguru Hirahara 6dff60e7a4 Fix capitalization: Rageshake → rageshake
Based on https://github.com/matrix-org/rageshake

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-10-24 18:02:19 +09:00
David Mehren c89c356e53 Add a global config option for Docker network MTU (#3502)
* Add a global config option for Docker network MTU

* Upgrade systemd_docker_base (v1.2.0-0 -> v1.3.0-0)

The new version includes `devture_systemd_docker_base_container_networks_driver_options`
due to https://github.com/devture/com.devture.ansible.role.systemd_docker_base/commit/3cc7d1239654752da3e8f65760783a280a2b92f7

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3502

* Switch from passing matrix_playbook_docker_network_mtu to respecting devture_systemd_docker_base_container_networks_driver_options

Related to:
- https://github.com/devture/com.devture.ansible.role.systemd_docker_base/commit/3cc7d1239654752da3e8f65760783a280a2b92f7
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3502

* Update all roles to versions that respect `devture_systemd_docker_base_container_networks_driver_options`

---------

Co-authored-by: Slavi Pantaleev <slavi@devture.com>
2024-09-18 16:20:27 +03:00
Slavi Pantaleev 4224741130 Remove a few remaining hardcoded docker.service references
Continuation of 9f2eff2ac7

Provoked by 7749048bf8
(https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3353)
2024-06-05 21:22:21 +03:00
renovate[bot] 285decd7f2 chore(deps): update ghcr.io/matrix-org/rageshake docker tag to v1.13.0 2024-05-10 10:24:32 +00:00
Slavi Pantaleev 3758b0cfeb Squashed commit of the following:
commit cf8637efaca0a0be3609fd6add0dff893a0a9194
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sun Mar 24 19:14:57 2024 +0200

    Make devture_systemd_docker_base_ipv6_enabled automatically reconfigure geerlingguy/ansible-role-docker

    Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3218

commit dc7af3bc7d25f321bf409477d823e43ea8a05803
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sun Mar 24 19:10:31 2024 +0200

    Replace matrix_ipv6_enabled with devture_systemd_docker_base_ipv6_enabled

    Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3218

commit 07e900d6a2
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sun Mar 24 19:01:51 2024 +0200

    Improve matrix_ipv6_enabled comments

commit 3f03ca7f69
Author: Tilo Spannagel <development@tilosp.de>
Date:   Sat Mar 9 19:27:50 2024 +0000

    Add setting to enable ipv6
2024-03-24 19:15:43 +02:00
renovate[bot] 27b464f1a6 chore(deps): update ghcr.io/matrix-org/rageshake docker tag to v1.12.0 2024-03-18 15:48:14 +00:00
Slavi Pantaleev 51df34e7ae Ensure each container labels file defines at least one service
Most of these files were defining a service, usually toward the end.
These lines have been moved upward.

Some components (mautrix-signal, mautrix-gmessages, etc.) were defining
a service conditionally (only if metrics are exposed, etc). This was
causing issues like these in the Traefik logs:

> level=error msg="service \"matrix-mautrix-twitter\" error: port is missing" providerName=docker container=matrix-mautrix-twitter-..
2024-01-17 17:56:45 +02:00
Slavi Pantaleev 2511b34a7c Stop containers gracefully, instead of outright killing them 2023-12-06 11:52:23 +02:00
renovate[bot] d985f115d2 Update ghcr.io/matrix-org/rageshake Docker tag to v1.11.0 2023-10-17 06:21:45 +00:00
Samuel Meenzen c846ed199b Annotate version numbers with renovate metadata 2023-10-06 14:14:03 +02:00
Slavi Pantaleev 7be8943b64 Pin matrix-rageshake to 1.9.0
Related to:

- https://github.com/matrix-org/rageshake/issues/69
- https://github.com/matrix-org/rageshake/pull/70
2023-03-22 17:53:57 +02:00
Slavi Pantaleev dddfee16bc Fix all 300+ ansible-lint-reported errors 2023-03-07 17:28:15 +02:00
Slavi Pantaleev 8df7ad47cd Fix rageshake project description in defaults/main.yml 2023-02-25 19:04:28 +02:00
Slavi Pantaleev 233e253264 Add native Traefik support to rageshake 2023-02-25 13:46:42 +02:00
Slavi Pantaleev 4c64e092d0 Fix rageshake self-building
BuildX is required for building this container image.
2023-02-25 13:09:53 +02:00
Slavi Pantaleev 39be2ef71a Fix matrix_rageshake_container_src_files_path value 2023-02-25 13:01:38 +02:00
Slavi Pantaleev 9a8ebf3d8c matrix_rageshake_docker_ -> matrix_rageshake_container_ 2023-02-25 13:01:11 +02:00
Slavi Pantaleev 5934de84be Reorder matrix-rageshake default variables a bit 2023-02-25 12:59:56 +02:00
Slavi Pantaleev 8339ebdf58 Redo the way matryx-rageshake configuration is done
This makes it consistent with the rest of the playbook:
- there's a default config which has various variables controlling
  settings
- there's also an `_extension_yaml` variable, which lets you override it
2023-02-25 12:29:22 +02:00
Slavi Pantaleev a51c9521a8 Rename some task files 2023-02-25 12:23:45 +02:00
Slavi Pantaleev db0104978f Extract api_prefix rageshake configuration into matrix_rageshake_config_api_prefix 2023-02-25 12:23:07 +02:00
Slavi Pantaleev 19e0b8374b Enable matrix_rageshake_enabled in the role by default
We disable it via `group_vars/matrix_servers`, as we do for all other
roles.
2023-02-25 12:20:25 +02:00
Slavi Pantaleev d513c0f446 Document why the rageshake version is master 2023-02-25 12:20:09 +02:00
Benjamin Kampmann 40f037b36d Add rageshake server 2023-02-24 16:55:49 +01:00