Slavi Pantaleev
5cc69ca7eb
Add whoami-based sync worker routing for user-level sticky sessions
This adds a new routing mechanism for sync workers that resolves access tokens
to usernames via Synapse's whoami endpoint, enabling true user-level sticky
routing regardless of which device or token is used.
Previously, sticky routing relied on parsing the username from native Synapse
tokens (`syt_<base64 username>_...`), which only works with native Synapse auth
and provides device-level stickiness at best. This new approach works with any
auth system (native Synapse, MAS, etc.) because Synapse handles token validation
internally.
Implementation uses nginx's auth_request module with an njs script because:
- The whoami lookup requires an async HTTP subrequest (ngx.fetch)
- js_set handlers must return synchronously and don't support async operations
- auth_request allows the async lookup to complete, then captures the result
via response headers into nginx variables
The njs script:
- Extracts access tokens from Authorization header or query parameter
- Calls Synapse's whoami endpoint to resolve token -> username
- Caches results in a shared memory zone to minimize latency
- Returns the username via a `X-User-Identifier` header
The username is then used by nginx's upstream hash directive for consistent
worker selection. This leverages nginx's built-in health checking and failover.
4 недель назад
Aine
81f815d19b
fix uid/gid vars for Synapse Admin
4 недель назад
renovate[bot]
c63a0f984b
chore(deps): update dependency valkey to v9.0.2-0
4 недель назад
Aine
6c4b9bb3d7
Merge pull request #4886 from spantaleev/synapse-admin-etke53
Synapse Admin v0.11.1-etke53
4 недель назад
Slavi Pantaleev
76e13f8200
Add native Sliding Sync (MSC3575) endpoint to worker routing
The /_matrix/client/unstable/org.matrix.simplified_msc3575/sync endpoint
can be handled by generic workers, but Synapse's workers.md documentation
doesn't mention it. The code confirms it's worker-compatible:
- SlidingSyncRestServlet is registered via sync.register_servlets:
https://github.com/element-hq/synapse/blob/0dfcffab0f/synapse/rest/client/sync.py#L1128-L1131
- sync.register_servlets is NOT in the worker exclusion list:
https://github.com/element-hq/synapse/blob/0dfcffab0f/synapse/rest/__init__.py#L180-L194
- GenericWorkerStore includes SlidingSyncStore:
https://github.com/element-hq/synapse/blob/0dfcffab0f/synapse/app/generic_worker.py#L168
This adds the endpoint to both:
- matrix_synapse_workers_sync_worker_client_server_endpoints (for specialized sync workers with sticky routing)
- matrix_synapse_workers_generic_worker_endpoints (documenting generic worker capability)
1 месяц назад
renovate[bot]
aeea016e3c
chore(deps): update dependency babel to v2.18.0
1 месяц назад
Aine
5bbb1930cb
Synapse Admin i18n menu
1 месяц назад
renovate[bot]
2f66b7df94
chore(deps): update docker.io/metio/matrix-alertmanager-receiver docker tag to v2026.1.31
1 месяц назад
Aine
f621eb8018
Synapse Admin v0.11.1-etke53
1 месяц назад
renovate[bot]
3f0ff4c510
chore(deps): update halfshot/matrix-hookshot docker tag to v7.3.2
1 месяц назад
Slavi Pantaleev
b9631aea1c
Upgrade ntfy (v2.16.0-0 -> v2.16.0-1)
1 месяц назад
Thom Wiggers
b1ff71266b
Update matrix-appservice-irc to 4.0.0 with authenticated media proxy support
- Upgrade from 1.0.1 to 4.0.0
- Add ircService.mediaProxy configuration for authenticated Matrix media
- Add Traefik integration for media proxy endpoint
- Generate signing key for authenticated media
Closes #3512
Co-authored-by: Jade Ellis <jade@ellis.link>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
1 месяц назад
renovate[bot]
72d522b9f1
chore(deps): update dependency backup_borg to v1.4.3-2.1.1-0
1 месяц назад
renovate[bot]
67e650b5f9
chore(deps): update coturn/coturn docker tag to v4.8.0
1 месяц назад
Slavi Pantaleev
18b11eea3b
Try `versioning=loose` for the Coturn container image definition for Renovate
Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4880#issuecomment-3807433691
1 месяц назад
Sid Manat
fd6f72382d
Upgrade Coturn (4.6.2-r11 -> 4.8.0-r0)
1 месяц назад
Slavi Pantaleev
460d46999f
Make Synapse's `enable_local_media_storage` configurable
Ref:
- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4882
- https://github.com/element-hq/synapse/pull/19204
- https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#enable_local_media_storage
We default it to `true`, keeping up with upstream and the old behavior.
s3-storage-provider users may set `matrix_synapse_enable_local_media_storage` to `false`
to disable local file caching.
This likely comes at the expense of some performance.
For matrix-media-repo users, it likely doesn't matter what this is set to,
as for a matrix-media-repo setup, all media-related API endpoints are
captured and forwarded to matrix-media-repo (before reaching Synapse).
1 месяц назад
renovate[bot]
93d110e61e
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.146.0
1 месяц назад
renovate[bot]
6629867235
chore(deps): update ghcr.io/element-hq/matrix-authentication-service docker tag to v1.10.0
1 месяц назад
renovate[bot]
8a3c75b7bd
chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.9
1 месяц назад
renovate[bot]
b6bf91c150
chore(deps): update dependency etherpad to v2.6.1-0
1 месяц назад
renovate[bot]
b0e70f419f
chore(deps): update dependency setuptools to v80.10.2
1 месяц назад
renovate[bot]
692c34ad9b
chore(deps): update halfshot/matrix-hookshot docker tag to v7.3.1
1 месяц назад
Slavi Pantaleev
97c2915034
Upgrade baibot (v1.12.0 -> v1.13.0)
1 месяц назад
renovate[bot]
292397234a
chore(deps): update dependency packaging to v26
1 месяц назад
renovate[bot]
82d6f3de2c
chore(deps): update dependency setuptools to v80.10.1
1 месяц назад
renovate[bot]
cc9234d3ba
chore(deps): update ghcr.io/etkecc/fluffychat-web docker tag to v2.4.0
1 месяц назад
renovate[bot]
47322a8d52
chore(deps): update docker.io/metio/matrix-alertmanager-receiver docker tag to v2026.1.21
1 месяц назад
Slavi Pantaleev
911031e2cf
Add support for Hookshot static connections (new in v7.3.0)
This adds the matrix_hookshot_connections variable for configuring
static webhook connections via the config file.
See: https://github.com/matrix-org/matrix-hookshot/pull/1102
1 месяц назад
renovate[bot]
e01a79865c
chore(deps): update halfshot/matrix-hookshot docker tag to v7.3.0
1 месяц назад
renovate[bot]
ab97b94245
chore(deps): update dependency ntfy to v2.16.0-0
1 месяц назад
renovate[bot]
c8fc504470
chore(deps): update dock.mau.dev/mautrix/whatsapp docker tag to v0.2601.0
1 месяц назад
renovate[bot]
a6c447ade3
chore(deps): update dock.mau.dev/mautrix/gmessages docker tag to v0.2601.0
1 месяц назад
renovate[bot]
aa69069627
chore(deps): update dock.mau.dev/mautrix/signal docker tag to v0.2601.0
1 месяц назад
renovate[bot]
fa22053bf1
chore(deps): update ansible/ansible-lint action to v26.1.1
1 месяц назад
renovate[bot]
a3ef7109b6
chore(deps): update dependency docker to v8
1 месяц назад
renovate[bot]
7c8a28d590
chore(deps): update ghcr.io/element-hq/lk-jwt-service docker tag to v0.4.1
1 месяц назад
renovate[bot]
28af19a1a7
chore(deps): update dependency myst-parser to v5
1 месяц назад
renovate[bot]
ea4b467cd3
chore(deps): update dependency livekit_server to v1.9.11-0
1 месяц назад
Slavi Pantaleev
bd6202eb65
Upgrade Traefik (v3.6.6-0 -> v3.6.7-1) and remove all (now-unnecessary) `encodedCharacters_*` setting overrides
All these `encodedCharacters_*` settings default to `true` in Traefik v3.6.7,
so we don't need to override their values.
Ref: https://doc.traefik.io/traefik/v3.6/migrate/v3/#v367
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4835
1 месяц назад
Aine
4d0cf32151
grafana: add /tmp tmpfs
1 месяц назад
renovate[bot]
1890f3a01a
chore(deps): update dependency jitsi to v10710
1 месяц назад
Slavi Pantaleev
ac5dc5d44f
Pull in some additional Synapse workers routing configuration
Provoked by https://github.com/element-hq/synapse/pull/19281
which landed in Synapse v1.145.0, but we pull in a few other routes
that I noticed to be missing.
1 месяц назад
renovate[bot]
a050107e0f
chore(deps): update ghcr.io/element-hq/synapse docker tag to v1.145.0
1 месяц назад
renovate[bot]
41108b57e3
chore(deps): update docker.io/metio/matrix-alertmanager-receiver docker tag to v2026
1 месяц назад
renovate[bot]
78c7b61af8
chore(deps): update ghcr.io/element-hq/matrix-authentication-service docker tag to v1.9.0
1 месяц назад
renovate[bot]
b5c5f34ca4
chore(deps): update ghcr.io/element-hq/element-web docker tag to v1.12.8
1 месяц назад
Slavi Pantaleev
e1bf0aebd2
Upgrade LiveKit (v1.9.10-0 -> v1.9.10-1)
1 месяц назад
Slavi Pantaleev
8a02d791ea
Add missing `:` to `matrix_media_repo_redis_shards` entry
Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/4851#issuecomment-3732696383
1 месяц назад
akdk7
dd54691137
Automatically integate matrix-media-repo with Valkey (if enabled) ( #4851 )
* This push request is about handling Traefik ipallowlist to synapse-admin application.
It's my first push request. If I forgot something please let me know. :-)
* Changed position of variable and naming for better expandebility of traefik options
* Remove useless `noqa var-naming` comment and too many blank lines at the end of the file
* If redis ist enabled for matrix media repo it failes to connect to valkey due to inproper configuration.
* Updated solution for fixing MMR redis connection
* Clean up
* Update valkey_container_network condition
---------
Co-authored-by: AkDk7 <joerg@pannbacker.email>
Co-authored-by: Slavi Pantaleev <slavi@devture.com>
1 месяц назад