Commit Graph

2026 Commits

Author SHA1 Message Date
aff57d67c0 Adjust Synapse OIDC variable wiring and docs
Auto-enabling the OIDC APIs is convenient for people
using the new `matrix_synapse_oidc_*` variables.
2024-01-14 12:34:25 +02:00
c238978ac8 Add new global variable for controlling federation regardless of homeserver implementation
The old variables still work. The global lets us avoid
auto-detection logic like we're currently doing for
`matrix_nginx_proxy_proxy_matrix_federation_api_enabled`.

In the future, we'd just be able to reference
`matrix_homeserver_federation_enabled` and know the up-to-date value
regardless of homeserver.
2024-01-14 11:52:40 +02:00
df5d8bfc04 Remove matrix-homeserver-proxy role in favor of the new internal Traefik entrypoint
This was meant to serve as an intermediary for services needing to reach
the homeserver. It was used like that for a while in this
`bye-bye-nginx-proxy` branch, but was never actually public.

It has recently been superseded by homeserver-like services injecting
themselves into a new internal Traefik entrypoint
(see `matrix_playbook_internal_matrix_client_api_traefik_entrypoint_*`),
so `matrix-homeserver-proxy` is no longer necessary.

---

This is probably a good moment to share some benchmarks and reasons
for going with the internal Traefik entrypoint as opposed to this nginx
service.

1. (1400 rps) Directly to Synapse (`ab -n 1000 -c 100 http://matrix-synapse:8008/_matrix/client/versions`
2. (~900 rps) Via `matrix-homeserver-proxy` (nginx) proxying to Synapse (`ab -n 1000 -c 100 http://matrix-homeserver-proxy:8008/_matrix/client/versions`)
3. (~1200 rps) Via the new internal entrypoint of Traefik (`matrix-internal-matrix-client-api`) proxying to Synapse (`ab -n 1000 -c 100 http://matrix-traefik:8008/_matrix/client/versions`)

Besides Traefik being quicker for some reason, there are also other
benefits to not having this `matrix-homeserver-proxy` component:

- we can reuse what we have in terms of labels. Services can register a few extra labels on the new Traefik entrypoint
- we don't need services (like `matrix-media-repo`) to inject custom nginx configs into `matrix-homeserver-proxy`. They just need to register labels, like they do already.
- Traefik seems faster than nginx on this benchmark for some reason, which is a nice bonus
- no need to run one extra container (`matrix-homeserver-proxy`) and execute one extra Ansible role
- no need to maintain a setup where some people run the `matrix-homeserver-proxy` component (because they have route-stealing services like `matrix-media-repo` enabled) and others run an optimized setup without this component and everything needs to be rewired to talk to the homeserver directly. Now, everyone can go through Traefik and we can all run an identical setup

Downsides of the new Traefik entrypoint setup are that:

- all addon services that need to talk to the homeserver now depend on Traefik
- people running their own Traefik setup will be inconvenienced - they
  need to manage one additional entrypoint
2024-01-14 10:53:14 +02:00
b2aeb8cde9 Rename label-related variables for homeservers
We'd be adding integration with an internal Traefik entrypoint
(`matrix_playbook_internal_matrix_client_api_traefik_entrypoint`),
so renaming helps disambiguate things.

There's no need for deperecation tasks, because the old names
have only been part of this `bye-bye-nginx-proxy` branch and not used by
anyone publicly.
2024-01-14 10:48:54 +02:00
39bddefd39 Make addons communicate with the homeserver via a new internal Traefik entrypoint
This also adds labels for Synapse. Support for other homeservers and
components will be added later.
2024-01-14 10:48:54 +02:00
533dc711ad Merge branch 'master' into bye-bye-nginx-proxy 2024-01-14 09:23:43 +02:00
95e5a5c62e Deprecate direct usage of devture_traefik_additional_entrypoints_auto 2024-01-14 09:23:36 +02:00
f3dfd5e063 Improve "Traefik managed by you" documentation section with entrypoint name details 2024-01-14 09:22:02 +02:00
f6fa395c88 Adjust email2matrix docs with regard to the homeserver container URL
`matrix_homeserver_container_url` is potentially wrong in certain
scenarios (going through `matrix-homeserver-proxy`).
2024-01-13 18:15:15 +02:00
3f212feb1f Move matrix-email2matrix to its own container network 2024-01-13 17:18:22 +02:00
809cce98cc Rework prometheus-nginxlog-exporter docs page 2024-01-13 16:56:40 +02:00
262caf0d59 Add native Traefik support to matrix-prometheus-nginxlog-exporter 2024-01-13 16:50:44 +02:00
d6e91116ab Update documentation related to variables for prometheus-node-exporter/prometheus-postgres-exporter metrics exposure 2024-01-12 18:04:18 +02:00
7fba83924c Remove etherpad-proxy-connect role 2024-01-12 17:22:46 +02:00
18254cd0b2 Remvoe all Traefik labels from matrix-nginx-proxy and update docs for delegation via SRV 2024-01-11 12:31:56 +02:00
d8eb768e03 Add native Traefik support to matrix-dendrite 2024-01-11 11:30:42 +02:00
4639eebf12 Add native Traefik support to matrix-conduit 2024-01-11 08:56:51 +02:00
057d168ff0 Merge branch 'master' into bye-bye-nginx-proxy 2024-01-09 19:12:07 +02:00
2f457b2a23 Remove inventory/ directory tree to allow people to manage it as a git repository (etc.)
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3086
2024-01-09 19:08:43 +02:00
f83c221fda Merge branch 'master' into bye-bye-nginx-proxy 2024-01-09 15:38:23 +02:00
25595a3c65 Update Netlify _redirects section 2024-01-09 15:34:00 +02:00
aea66442a1 Move matrix-ma1sd to its own container network and add native Traefik support 2024-01-09 15:27:13 +02:00
a8bda6ab88 Remove matrix_ldap_registration_proxy_container_additional_networks_custom mention in docs
ldap-registration-proxy is already connected to the homeserver
container's network by default (via group vars), so there's no need for this.
2024-01-09 11:51:46 +02:00
300e67c03d Split matrix_ldap_registration_proxy_systemd_wanted_services_list and update docs a bit 2024-01-09 11:51:15 +02:00
9171b8df91 Merge branch 'master' into bye-bye-nginx-proxy 2024-01-09 10:49:00 +02:00
998e9ce655 Revert "Auto-generate matrix_bot_matrix_registration_bot_bot_password via group vars"
This reverts commit bf95ad2235.

This was a bad idea.
It's better to have people manually define the password.

Otherwise, `matrix_homeserver_generic_secret_key` changing some day in
the future would break the bot and one would have to figure out how to
reset its password manually.

Using an explicit password is more stable.
2024-01-09 10:22:20 +02:00
bf95ad2235 Auto-generate matrix_bot_matrix_registration_bot_bot_password via group vars 2024-01-09 10:19:57 +02:00
2642cc1b18 Adjust matrix-registration-bot docs to tell people to perform a full installation
Running just `setup-all,start` is not enough, because it doesn't run `ensure-matrix-users-created`
and the bot account won't get created.
2024-01-09 10:19:57 +02:00
ea992496a3 Add matrix-cactus-comments-client role
This is split out from matrix-cactus-comments (see 241779b583),
but also heavily inspired by `matrix-static-files`.
2024-01-09 09:53:01 +02:00
241779b583 Initial work on moving matrix-cactus-comments to its own container network and splitting cactus-client out of it 2024-01-08 19:57:18 +02:00
7ec6fd3dfe Make bridges/bots use matrix_addons_homeserver_client_api_url (instead of matrix_homeserver_container_url) 2024-01-07 17:04:23 +02:00
4a9fe21d44 Merge branch 'master' into bye-bye-nginx-proxy 2024-01-07 08:43:40 +02:00
9c0287f4f8 Update configuring-playbook-own-webserver.md to note that Traefik is the default reverse-proxy since 1 year ago 2024-01-07 08:43:33 +02:00
b122c7092a Merge branch 'master' into bye-bye-nginx-proxy 2024-01-05 18:12:44 +02:00
d116d863e6 Move exim-relay service to its own network and connect Synapse & ma1sd to it automatically 2024-01-05 18:10:24 +02:00
377fce5855 Merge branch 'master' into bye-bye-nginx-proxy 2024-01-05 17:55:49 +02:00
ba0a4e864a Replace matrix-mailer with an external role 2024-01-05 17:54:50 +02:00
abde681b56 Clean up some matrix_nginx_proxy_proxy_matrix_metrics_* references 2024-01-04 12:49:00 +02:00
54fb153acf Expose /_synapse/* APIs via matrix-synapse-reverse-proxy-companion
This also updates validation tasks and documentation, pointing to
variables in the matrix-synapse role which don't currently exist yet
(e.g. `matrix_synapse_container_labels_client_synapse_admin_api_enabled`).

These variables will be added soon, as Traefik labels are added to the
`matrix-synapse` role. At that point, the `matrix-synapse-reverse-proxy-companion` role
will be updated to also use them.
2024-01-04 11:37:17 +02:00
e81a395a98 Drop some matrix_nginx_proxy_proxy_riot_compat_* variables
matrix-nginx-proxy is going away and this is one of the features it
offered.

This feature will have no equivalent in our new Traefik-only
setup, although it's possible to implement it manually by using
`matrix_client_element_container_labels_additional_labels`
2024-01-03 14:43:45 +02:00
cc75be9c65 Add support for serving the base domain via matrix-static-files 2024-01-03 14:39:17 +02:00
da48a605bb More progress on matrix-static-files role and cleaning up of matrix-base and matrix-nginx-proxy 2024-01-03 13:46:25 +02:00
23a78d1718 Merge branch 'master' into bye-bye-nginx-proxy 2024-01-03 13:13:07 +02:00
b6e4352ea9 Fix role values documentation for /.well-known/matrix/support
The spec had gotten updated
2024-01-03 13:12:49 +02:00
46cbc2ead0 Merge branch 'master' into bye-bye-nginx-proxy 2024-01-03 13:09:55 +02:00
61bf368080 Mark /.well-known/matrix/support as accepted spec 2024-01-03 13:09:45 +02:00
065b70203d [WIP] Initial work on matrix-static-files role 2024-01-03 13:05:59 +02:00
055406b255 Merge branch 'spantaleev:master' into 3031-feat-add-signalgo-bridge 2023-12-22 16:48:06 +01:00
a4c3bedf4b Fix "SSL_do_handshake() failed" in nginx reverse-proxy
In nginx reverse-proxy, when the upstream server relies on SNI, the reverser-proxy may return 502 by follow error:
```
*10 SSL_do_handshake() failed (SSL: error:0A000410:SSL routines::sslv3 alert handshake failure:SSL alert number 40) while SSL handshaking to upstream, client: 172.19.0.1, server: example.host, request: "GET /.well-known/matrix/client HTTP/2.0", upstream: "https://<ip>/.well-known/matrix/client", host: "<domain>"
```
This problem often arises when the upstream server is behind the CDN, setting `proxy_ssl_server_name` to `on` will solve it.
2023-12-22 07:44:34 +08:00
c93b642f90 doc: check typo 2023-12-18 16:51:35 +01:00