Commit Graph

214 Commits

Author SHA1 Message Date
Slavi Pantaleev c7819f576a Remove the custom Element Web welcome page
Element Web redesigned its welcome page into a built-in component
(element-hq/element-web#33211, first released in spring 2026) and no
longer falls back to loading welcome.html. The custom page the playbook
installed had therefore silently stopped having any effect, and it was a
fork of an upstream file that upstream has deleted (its button icon
assets are already missing from current Element Web builds).

Remove the welcome.html shipping and the variables that only applied to
it (matrix_client_element_welcome_headline, _welcome_text,
_welcome_logo_link, _page_template_welcome_path), rejecting them in
validate_config.yml with pointers to the alternatives. Logo and
background customization keep working through Element Web's branding
options, which the new welcome page still honors. A fully custom page
can be self-hosted and wired via embedded_pages.welcome_url.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 07:49:39 +03:00
Slavi Pantaleev 8b9fe4ce37 Make Element welcome page text readable on the dark theme
The playbook-shipped welcome.html hardcoded #2e2f32 for the headline and
welcome text, which is nearly invisible on the dark background Element
renders when the dark theme is active. Element Web's default
use_system_theme behavior keys the theme off the system color scheme, so
switch the text to Element's dark-theme text color (#ebeef2) under a
prefers-color-scheme: dark media query.

Fixes #4838

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 16:33:55 +03:00
Slavi Pantaleev b32272ef40 Add CORS header to Element's map_style.json for Element Desktop
Element Desktop (Electron) loads the location-sharing map style from a
`vector://vector` origin, so fetching map_style.json from the Element
domain is a cross-origin request. Without an Access-Control-Allow-Origin
header, the request is blocked and maps fail to load with "This homeserver
is not configured correctly to display maps".

Add a dedicated Traefik router for map_style.json that attaches an
Access-Control-Allow-Origin header (configurable via
matrix_client_element_location_sharing_map_style_access_control_allow_origin,
defaulting to `*`). It is only defined when location sharing is enabled.

Fixes #2291

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 09:01:00 +03:00
krassle b463dd02bb [Element] Fix missing background URL on welcome, login & register pages
- Updated `welcome_background_url` to upstream default *lake.jpg* for the official Matrix Client Element.
- Provoked by: [Convert welcome.html to React component](https://github.com/element-hq/element-web/commit/4b4289e211c12ea0ebb885d570cfa6b7c29dac86)
2026-07-07 20:30:23 +03:00
renovate[bot] 044dbc5de5 Update ghcr.io/element-hq/element-web Docker tag to v1.12.23 2026-07-07 20:20:54 +03:00
renovate[bot] d06094ffc3 Update ghcr.io/element-hq/element-web Docker tag to v1.12.22 2026-06-24 07:31:58 +03:00
Bart van der Braak 36f3d4c4a5 Fix Dockerfile path when self building Element Web container image 2026-06-11 14:21:09 +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] e1db9c7876 Update ghcr.io/element-hq/element-web Docker tag to v1.12.21 2026-06-10 09:18:37 +03:00
renovate[bot] f92c5fee18 Update ghcr.io/element-hq/element-web Docker tag to v1.12.20 2026-05-28 07:28:24 +03:00
renovate[bot] a5ebb77eeb Update ghcr.io/element-hq/element-web Docker tag to v1.12.19 2026-05-27 15:22:04 +03:00
renovate[bot] 6f116ed4d6 Update ghcr.io/element-hq/element-web Docker tag to v1.12.18 (#5223)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-12 20:30:25 +01:00
Slavi Pantaleev b6831fbd54 matrix-client-element: 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 22:07:56 +03:00
renovate[bot] 889df54fff Update ghcr.io/element-hq/element-web Docker tag to v1.12.17 2026-04-30 14:00:39 +03:00
renovate[bot] 61e4a47a2d Update ghcr.io/element-hq/element-web Docker tag to v1.12.16 2026-04-28 20:58:55 +03:00
renovate[bot] 8b06a36ac7 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.15 2026-04-08 21:05:55 +03:00
renovate[bot] 17eb1615de chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.14 2026-04-07 19:53:57 +03:00
renovate[bot] 7c5a729c18 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.13 2026-03-24 15:50:45 +02:00
Slavi Pantaleev b942715469 fix(self-check): respect path_prefix in web client self-check URLs
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/5051

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 23:31:13 +02:00
renovate[bot] 94beb79279 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.12 2026-03-10 22:06:25 +02:00
tripleawwy 58bf4fe34b fix: conditionally include m.identity_server in Element Web config.json
When no identity server is configured, `matrix_client_element_default_is_url`
defaults to `~` (YAML null). The `| string | to_json` filter chain converts
this to the literal string `"None"`, causing Element Web to log errors:

- TypeError: URL constructor: None is not a valid URL
- Invalid base_url for m.identity_server

The well-known template (`.well-known/matrix/client.j2`) already handles
this correctly with a conditional guard (see PR #314). This applies the
same pattern to the Element Web `config.json.j2` template.
2026-03-03 12:50:52 +02:00
renovate[bot] 93c6587b9d chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.11 2026-02-24 16:54:10 +02:00
Slavi Pantaleev f0e0f5ec56 Rename _docker_ vars to _container_ across 34 roles
Roles affected: appservice-discord, appservice-irc, beeper-linkedin,
heisenbridge, hookshot, mautrix-bluesky, mautrix-discord,
mautrix-gmessages, mautrix-googlechat, mautrix-signal, mautrix-slack,
mautrix-twitter, mautrix-whatsapp, mautrix-wsproxy, mx-puppet-groupme,
mx-puppet-steam, postmoogle, sms, steam, cactus-comments, element,
fluffychat, schildichat, conduit, corporal, dendrite,
ldap-registration-proxy, media-repo, pantalaimon,
prometheus-nginxlog-exporter, registration, sygnal, synapse-admin,
user-verification-service.

For each role: renamed _docker_image* variables to _container_image*
(and _docker_src_files_path to _container_src_files_path where
applicable), added deprecation entries in validate_config.yml, and
updated group_vars/docs references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 08:21:13 +02:00
QEDeD f0f496b6ba Quote YAML mode values to satisfy octal lint rules 2026-02-16 13:19:10 +02:00
Slavi Pantaleev 16010ff8c7 Add conditional restart support to client, bot, and bridge roles
For each of the 34 roles (3 clients, 9 bots, 22 bridges), this commit:
- Adds `_restart_necessary: false` default variable
- Adds `register:` directives to config/image/systemd tasks
- Computes `_restart_necessary` via set_fact (OR of all .changed results)
- Wires `(_restart_necessary | bool)` in group_vars/matrix_servers

This allows the systemd service manager to skip unnecessary restarts
when running install-* tags and nothing actually changed.

Service roles and complex multi-service roles will follow separately.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 15:33:54 +02:00
renovate[bot] 0a08126324 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.10 2026-02-10 17:49:29 +00:00
Suguru Hirahara 66d66f67f8 Remove obsolete X-Frame-Options
Signed-off-by: Suguru Hirahara <did:key:z6MkvVZk1A3KBApWJXv2Ju4H14ErDfRGxh8zxdXSZ4vACDg5>
2026-02-08 21:54:38 +09:00
renovate[bot] 8a3c75b7bd chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.9 2026-01-27 16:55:38 +02:00
renovate[bot] b5c5f34ca4 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.8 2026-01-13 19:46:26 +02:00
renovate[bot] 6d202a30fc chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.7 2025-12-16 17:58:36 +02:00
renovate[bot] 717c9bfd7d chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.6 2025-12-03 21:15:42 +02:00
renovate[bot] 1838840f65 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.5 2025-12-02 18:06:41 +02:00
Slavi Pantaleev ddf0fe7167 Fix Ansible inject_facts_as_vars deprecation warning 2025-11-26 11:56:57 +02:00
renovate[bot] 9582f6a565 chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.4
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-11-18 17:08:43 +02:00
renovate[bot] fba4ee598a chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.3
Lock Threads / action (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
2025-11-05 07:19:55 +02:00
renovate[bot] df6df6cbad chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.2 2025-10-21 16:15:38 +00:00
renovate[bot] 951b27ed7f chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.1
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-10-07 16:53:53 +03:00
renovate[bot] 6e5cf9f3be chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.0 2025-09-23 17:25:24 +03:00
Aine 38b40242c4 element web v1.11.112
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-09-16 13:29:34 +01:00
renovate[bot] 840ad0171f Update ghcr.io/element-hq/element-web Docker tag to v1.11.111 2025-09-10 13:39:05 +00:00
renovate[bot] 6e89e181ec Update ghcr.io/element-hq/element-web Docker tag to v1.11.110
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-08-28 08:38:58 +03:00
Aine 06ab77fdcc add element web mobile guide app variant config option
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
2025-08-21 10:56:16 +01:00
renovate[bot] d3fcd7a97a Update ghcr.io/element-hq/element-web Docker tag to v1.11.109 2025-08-11 15:43:37 +03:00
renovate[bot] d2419fccf3 Update ghcr.io/element-hq/element-web Docker tag to v1.11.108 2025-07-30 15:36:35 +00:00
renovate[bot] 11028761a1 Update ghcr.io/element-hq/element-web Docker tag to v1.11.107 2025-07-29 16:39:29 +03:00
Slavi Pantaleev d876da4186 Explicitly tell template-lookup to not auto-parse JSON files
ansible-core>=2.19.0 only auto-parses YAML files, not JSON.

Previous ansible-core versions auto-parsed JSON as well, but ansible-core>=2.19.0
doesn't, so we added a `from_json` post-filter.
However, older versions auto-parsing JSON and turning it into a dict, on
which we later run `from_json` is no good.

In this patch, we try to equalize behavior and configure Ansible to never parse JSON,
hopefully making old-Ansible behave like new Ansible.

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

Ref: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_lookup.html#parameter-convert_data
2025-07-27 07:45:58 +03:00
Slavi Pantaleev 90813b3739 Pass the result of JSON-file template lookups through from_json for better ansible-core>=2.19.0 compatibility
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445

It seems like ansible-core 2.19.0 no longer automatically parses template lookup content
as JSON (into a dict) when dealing with template files (be it `file.json.j2` or `file.j2`).

For files detected to contain YAML (`.ya?ml.j2`, but possibly others),
it automatically parses YAML, because the `convert_data` option
for the template lookup defaults to `true`.
Ref: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_lookup.html
2025-07-26 18:53:11 +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
renovate[bot] b8029111c9 Update ghcr.io/element-hq/element-web Docker tag to v1.11.106
Lock Threads / action (push) Has been cancelled
Matrix CI / yamllint (push) Has been cancelled
Matrix CI / ansible-lint (push) Has been cancelled
Matrix CI / Run pre-commit (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
2025-07-16 06:35:42 +03:00