matrix-docker-ansible-deploy/README.md
Slavi Pantaleev 9970603f15 Add Element Call support
This is an initial implementaton that's hasn't been battle-tested much.

Our LiveKit Server setup by default doesn't enable TURN, so connectivity
for NAT-ed clients may be subpar.

Squashed commit of the following:

commit d5c24fcafe
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:31:48 2025 +0200

    Upgrade LiveKit Server (v1.8.4-1 -> v1.8.4-2)

commit 4d61cc571b
Merge: 9c24064fb 9a231a815
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:19:05 2025 +0200

    Merge branch 'master' into element-call-integration

commit 9c24064fb6
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:14:49 2025 +0200

    Make Element Call fail during validation if on an unsupported architecture (like arm32)

commit a757b515fb
Merge: ba9cedbed 2a6b746ac
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:11:16 2025 +0200

    Merge branch 'master' into element-call-integration

commit ba9cedbeda
Merge: 4a638c2df f8f7ffc7d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 08:03:03 2025 +0200

    Merge branch 'master' into element-call-integration

commit 4a638c2df3
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 07:52:04 2025 +0200

    Prepare Element Call announcement text on the changelog

commit 155d5dad38
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 07:49:49 2025 +0200

    Mention the compatible clients on Element Call docs, more cross-linking & consistency fixes

commit 6b8a3fc891
Merge: 3ea1ea2f3 95dcaf6e2
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Mar 15 07:38:02 2025 +0200

    Merge branch 'master' into element-call-integration

commit 3ea1ea2f34
Merge: d3913a015 60e2e035a
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 22:29:14 2025 +0200

    Merge branch 'master' into element-call-integration

commit d3913a015e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 20:04:18 2025 +0200

    Upgrade LiveKit Server (v1.8.4-0 -> v1.8.4-1)

commit ac7f96806d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 19:58:09 2025 +0200

    Relocate the livekit-server Ansible role to its own repository in the MASH organization

commit b8d800f6ef
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 19:37:29 2025 +0200

    Add "Federation" as a prerequisite for Element Call (indirect, via LiveKit JWT Service)

    Ref:
    - https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2725250554
    - f5f5374c4b/main.go (L135-L146)

commit 2c1c49444a
Merge: 6bc0185d5 8e883a555
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Fri Mar 14 19:32:48 2025 +0200

    Merge branch 'master' into element-call-integration

commit 6bc0185d50
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Mar 13 09:43:22 2025 +0200

    Add Element Call, LiveKit Server and LiveKit JWT Service to `README.md`

    Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3562#issuecomment-2720039742

commit a0470fe248
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 19:12:30 2025 +0200

    Minor rewording in LiveKit Server docs

commit d4ceebc6a9
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 19:12:22 2025 +0200

    Add Element Call, LiveKit Server and LiveKit JWT Service to `docs/container-images.md`

commit 6a86de958f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 19:05:51 2025 +0200

    Apply suggestions from code review

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit d9df022d55
Merge: 676f9dd9a 2f30886b1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 18:40:31 2025 +0200

    Merge branch 'master' into element-call-integration

commit 676f9dd9ad
Merge: 251561ff8 2be709e2c
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 18:00:45 2025 +0200

    Merge branch 'master' into element-call-integration

commit 251561ff81
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:47:01 2025 +0200

    Simplify LiveKit Server role by removing unused/untested HTTP middleware variables

commit 1e60f41a59
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:44:00 2025 +0200

    Restore Element Call HTTP headers to more secure/privacy-respecting values

commit f8e84c4b2f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:43:34 2025 +0200

    Remove useless `matrix_element_call_port` variable

commit 3f5e8f656b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 17:35:30 2025 +0200

    Switch default LiveKit server endpoint to one under the `matrix.` domain and polish-up docs

commit 72118f2f03
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 16:56:06 2025 +0200

    Fix LiveKitServer middlware name (`matrix-livekit-server-server-slashless-redirect` -> `matrix-livekit-server-slashless-redirect`)

commit 585377975b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 16:51:10 2025 +0200

    Adjust LiveKit Server ports and exposure

commit 22ef579444
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 15:44:31 2025 +0200

    Make livekit-jwt-service communicate with livekit-server via public URLs

    Communicating via container URLs works, but the URL provided to
    livekit-jwt-service as `LIVEKIT_URL` is also passed to the user later
    and it must be a public one at that point.

    It'd be great if livekit-jwt-service can be given 2 different URLs
    (e.g. `LIVEKIT_URL` and `LIVEKIT_URL_PUBLIC`) and only announce the
    public one to the user, but there's no support for this yet.

commit 32f8c6de6e
Merge: 370feb740 79cc333be
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 15:27:42 2025 +0200

    Merge branch 'master' into element-call-integration

commit 370feb740f
Merge: 9a11e5e1f a9ee537f8
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 10:04:19 2025 +0200

    Merge branch 'master' into element-call-integration

commit 9a11e5e1fe
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 09:19:03 2025 +0200

    Auto-enable experimental Synapse features required by Element Call when Element Call is enabled

commit 8291b2f99d
Merge: 890f10f76 c5a03efdf
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 09:14:50 2025 +0200

    Merge branch 'master' into element-call-integration

commit 890f10f765
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 09:01:35 2025 +0200

    Make `matrix_livekit_jwt_service_public_url` respect `matrix_livekit_jwt_service_path_prefix`

commit 031cf68cbb
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:59:50 2025 +0200

    Remove unused `matrix_element_call_metrics_*` variables

commit 5961841e52
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:59:05 2025 +0200

    Make matrix-livekit-jwt-service role not reference foreign variables (except the matrix-base ones)

commit 2be4923aef
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:56:15 2025 +0200

    Make Element Call role not reference foreign variables (except the matrix-base ones)

commit 23efad9cb7
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:51:52 2025 +0200

    Rework Element Call config.json templating

commit 6b55ba29ab
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:46:11 2025 +0200

    Make Element Call refuse a path prefix other than `/`

commit 0d1112638d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:05:42 2025 +0200

    Update LiveKit JWT service path prefix (`/lk-jwt-service` -> `/livekit-jwt-service`)

commit c3c2ba34b4
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:02:29 2025 +0200

    Split `matrix_element_call_systemd_required_services_list` into `_default`, `_auto` and `_custom`

commit 0215708f79
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 08:00:28 2025 +0200

    Remove some useless variables and rework environment variables variable for livekit-jwt-service

commit e1b57f3d45
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:56:47 2025 +0200

    Pin livekit-jwt-service to released (v0.2.0) and adapt configuration

commit de2a8f11d2
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:46:51 2025 +0200

    `_name_prefix` -> `_registry_prefix` changes for LiveKit roles

commit 2a69ca35be
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:42:40 2025 +0200

    Clean up Element Call group vars vs defaults/main.yml mixup and make some minor LiveKit updates

commit 72d64cfa6b
Merge: f161c7c58 5dfbefd64
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:03:53 2025 +0200

    Merge branch 'master' into element-call-integration

commit f161c7c58f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 07:03:00 2025 +0200

    Add newlines at end of files

commit 6c6b44dc25
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:58:00 2025 +0200

    Add license information to Element Call and LiveKit roles

commit 8eb1c57e2b
Merge: 61069d631 aa36acdef
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:36:48 2025 +0200

    Merge branch 'master' into element-call-integration

commit 61069d6313
Merge: 74d6a99b1 0b9389fd6
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:34:00 2025 +0200

    Merge branch 'element-call-integration' of github.com:wjbeckett/matrix-docker-ansible-deploy into element-call-integration

commit 74d6a99b1e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:32:22 2025 +0200

    Adjust names for Element Call tasks and make uninstallation more consistent with other roles

commit 81a30f17ac
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:29:39 2025 +0200

    Remove some superficial comments

commit 413d591562
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:27:11 2025 +0200

    Bring container-network-creation tasks up-to-date for Element Call and LiveKit-related services

commit 7572522820
Merge: 564275527 5ece1fea5
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Wed Mar 12 06:24:34 2025 +0200

    Merge branch 'master' into element-call-integration

commit 0b9389fd64
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:43:52 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 9a8a569431
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:43:29 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit bb403e1aee
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:43:15 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 74fbacbd9f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 17:42:54 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 5642755273
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 16:40:50 2024 +0200

    Rework LiveKit JWT Service role

commit bb925f4782
Merge: c57d0d192 ca8c1cf2b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Sat Nov 23 14:45:20 2024 +0200

    Merge branch 'master' into element-call-integration

commit c57d0d192d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:45:07 2024 +0200

    Eliminate remaining matrix references from LiveKit Server role

commit 006920882c
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:38:23 2024 +0200

    Rename file (element-call-labels -> labels)

commit 69d702643f
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:36:55 2024 +0200

    Remove homeserver.yaml patching from Element Call role

commit 252ca52f60
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:32:15 2024 +0200

    Relocate /.well-known/element/element.json setup to matrix-static-files, instead of ugly patching from the Element Call role

commit 3f52cec25c
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 19:17:30 2024 +0200

    Relocate Element Web features & element_call configuration to Element role, instead of ugly patching from the Element Call role

commit 7a6fcaa402
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:59:11 2024 +0200

    Fix typo

commit 394fdca066
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:54:29 2024 +0200

    Relocate org.matrix.msc4143.rtc_foci setup to /.well-known/matrix/client to matrix-static-files instead of ugly patching

commit f0466d5a99
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:19:36 2024 +0200

    Make LiveKit Server configuration extensible

commit be7271760e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:13:07 2024 +0200

    Make LiveKit Server logging config configurable

commit 8b84eb6390
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:04:53 2024 +0200

    Default LiveKit Server to a smaller RTC range for faster startup on non-host networks

commit 3e86adac0d
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 18:00:43 2024 +0200

    Fix port exposure for LiveKit Server

commit 721fb39aa2
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 17:28:06 2024 +0200

    More progress on the LiveKit role

commit 783d4a23f8
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:54:45 2024 +0200

    Add livekit_server_identifier

commit fa4ebd2a64
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:37:01 2024 +0200

    Cleanups

commit 79ae704a24
Merge: 88d466845 c07b09390
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:31:50 2024 +0200

    Merge branch 'element-call-integration' of github.com:wjbeckett/matrix-docker-ansible-deploy into element-call-integration

commit c07b093902
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:34 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit c321ca160e
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:26 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 164be875b0
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:15 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 0f23e36e12
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:24:05 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 83bb546c64
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:55 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 3783922275
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:47 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 66cc36466c
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:36 2024 +0200

    Update docs/configuring-playbook-livekit-server.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit ec41c1aba5
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:28 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit df6ef106d1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:18 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit eb048da8a1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:23:06 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit ccb29beb30
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:22:56 2024 +0200

    Update docs/configuring-playbook-jwt-service.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 32ea60fdc5
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:22:44 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 25a8cb3b4a
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:22:17 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 55da5c3213
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:21:55 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 925ebfbd4b
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:21:42 2024 +0200

    Update docs/configuring-playbook-element-call.md

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 88d4668450
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:16:43 2024 +0200

    Variable rename (livekit_server_image -> livekit_server_container_image) for consistency with other roles

commit 1838a541ae
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 16:15:54 2024 +0200

    Variables rename (matrix_livekit_server_ -> livekit_server_) to prepare for role extraction

commit 1e82530080
Merge: 82127830b 0c9fc4358
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:59:56 2024 +0200

    Merge branch 'master' into element-call-integration

commit 82127830b3
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:58:01 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/uninstall.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 85c0ffa9e1
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:57:51 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/uninstall.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit b691f39d39
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:57:44 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/install.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit 10df145101
Author: Slavi Pantaleev <slavi@devture.com>
Date:   Thu Nov 21 15:57:31 2024 +0200

    Update roles/custom/matrix-livekit-server/tasks/install.yml

    Co-authored-by: Suguru Hirahara <luixxiul@users.noreply.github.com>

commit fa2a913d39
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 16:20:54 2024 +1000

    fixing issue with element call domain not being expanded when writing the element web config.json.

commit e18b28136c
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 15:28:56 2024 +1000

    Updated Element call docs with dependent services and fixed typo.

commit 1906d61c39
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 13:25:40 2024 +1000

    updated traefik label to be in line with the latest change from devture_traefik_ to traefik_

commit b7e0a41134
Merge: a03f5985a d9a919a4b
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Oct 3 13:20:02 2024 +1000

    Merge branch 'spantaleev:master' into element-call-integration

commit a03f5985a5
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Thu Oct 3 12:38:34 2024 +1000

    removed trailing whitespaces

commit 1e6698cb99
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Oct 2 13:27:02 2024 +1000

    updated documentation or the new roles.

commit f684719b2a
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 22:30:09 2024 +1000

    fixed error with element client update task

commit a6e3203398
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 22:20:50 2024 +1000

    updated docs, broke the well-known and element client modifications out to separate tasks.

commit 2b4fdea70f
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 17:04:11 2024 +1000

    added header flags back in.

commit 6c8923ae28
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 16:51:06 2024 +1000

    removed headers.

commit 9691577b22
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 16:45:07 2024 +1000

    removed additinoal headers

commit 46109565e1
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 16:33:48 2024 +1000

    updated headers for each of the call services.

commit 4acb025130
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 13:35:53 2024 +1000

    testing livekit configuration

commit e421852af5
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 13:09:00 2024 +1000

    updated jwt bind port

commit 5507fb3bab
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 13:08:21 2024 +1000

    added element-call config.json to systemd file

commit 9864996aad
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 12:46:37 2024 +1000

    adjusted jwt service ports for traefik

commit dbbaae4fbe
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 12:34:25 2024 +1000

    stopping the recursive loop

commit d53c2428b8
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 12:29:35 2024 +1000

    updated jwt hostname.

commit f98a505df8
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 11:00:56 2024 +1000

    changed jwt-service port label.

commit d5aabc85be
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 10:41:30 2024 +1000

    removed redis images in favor of the inbuilt keyDB

commit 7cdec5f251
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 10:17:34 2024 +1000

    fixed type in livekit image

commit fd2f505b34
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 10:00:30 2024 +1000

    Fixed typo in livekit server hostname

commit 812b57cfaa
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 09:54:02 2024 +1000

    resolved missing key.

commit b7b8ed573b
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 09:48:44 2024 +1000

    typo in livekit-server validate.

commit 97f93ebd76
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Tue Oct 1 09:31:42 2024 +1000

    renamed the livekit role and added livekit-server and jwt-service roles to the setup file.

commit 8cb7deff15
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 23:04:10 2024 +1000

    cleaned up old services again

commit 71dff50a65
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:53:21 2024 +1000

    fixed livekit service name

commit 58a9642e8c
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:45:56 2024 +1000

    fixed config file placement.

commit 3de399025f
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:41:36 2024 +1000

    hard coded redis port.

commit e952ba1c3a
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:35:59 2024 +1000

    removed duplicate tasks.

commit 8cb3e33bbf
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 22:20:46 2024 +1000

    separated livekit and jwt to separate roles

commit b907777ae5
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 13:13:29 2024 +1000

    fixing labels again.

commit cb41fb02ae
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 13:00:10 2024 +1000

    testing traefik labels again.

commit 31a138a6ba
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:47:42 2024 +1000

    fixed traefik router issues.

commit 6143ad7ffa
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:27:04 2024 +1000

    fix: removed the read-only tag from the element-call systemd file.

commit f762048a8d
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:15:27 2024 +1000

    fix: added missing labels to main.

commit 93650cf20e
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 12:02:45 2024 +1000

    fix: Type in the element-call main.yml

commit 9dbee212d8
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 11:37:08 2024 +1000

    fix: removed duplicate keys.

commit 1167e1ec13
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 11:17:34 2024 +1000

    fix: changed matrix server name to matrix domain in element-call config.

commit f036e18789
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Mon Sep 30 11:05:11 2024 +1000

    Fix: Restructured Element call configuration files.

commit a274d32c6d
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:50:31 2024 +1000

    Removed serve function

commit 5db9a5c061
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:40:37 2024 +1000

    Removed env file

commit 2492672025
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:39:39 2024 +1000

    Update env.j2

commit a0917fa283
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:37:36 2024 +1000

    Update main.yml

commit 8b172cc194
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 12:35:38 2024 +1000

    Update env.j2

commit 63133d6599
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 11:53:26 2024 +1000

    Added serve command back in.

commit 5b8dcf32d5
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 11:42:34 2024 +1000

    Added element-call systemd services to the service manager.

commit 14614cb211
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 10:26:01 2024 +1000

    Update matrix-element-call.service.j2

commit 3c084e17d2
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 10:15:51 2024 +1000

    Update element-call-labels.j2-new

commit 089c5f14c8
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 10:00:40 2024 +1000

    Update jwt-service-labels.j2

commit b6571fc4fd
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:59:54 2024 +1000

    Update livekit-labels.j2

commit 6d6f9ab853
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:59:13 2024 +1000

    Added hostnames for livekit and jwt labels

commit 5730dbfc6e
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:54:01 2024 +1000

    Added hostname label

commit c14f9cdcb5
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:25:48 2024 +1000

    Update matrix_servers

commit 805b726c6d
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:25:01 2024 +1000

    Update element-call-labels.j2

commit 5f49433f6c
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:15:21 2024 +1000

    Handle empty labels correctly.

commit 510cfb2dac
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:14:29 2024 +1000

    Update matrix_servers

commit 1721e85195
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 09:00:03 2024 +1000

    Corrected element call labels file name

commit 25909b1029
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:51:27 2024 +1000

    Update and rename labels.j2 to element-call-labels.j2

commit 3264408758
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:49:55 2024 +1000

    Rename element-call-labels.j2 to element-call-labels.j2-new

commit dd96b93d89
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:34:01 2024 +1000

    Update matrix-element-call.service.j2

commit df4bf4a0c9
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:23:24 2024 +1000

    Added tasks for moving the new labels files into place

commit 2f2cb8962e
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:19:26 2024 +1000

    Updated livekit labels

commit d2e2781d3b
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:18:27 2024 +1000

    Updated label file

commit 80763804f9
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:16:56 2024 +1000

    Updated label file

commit 1d7a60055c
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:10:06 2024 +1000

    Create jwt-service-labels.j2

commit 2cf471075d
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:09:32 2024 +1000

    Created livekit-labels.j2

commit 6a519bb053
Author: Backslash <wjbeckett@gmail.com>
Date:   Fri Sep 27 08:08:42 2024 +1000

    Created element-call-labels to separate the labels for each container

commit f0632b20eb
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 21:24:43 2024 +1000

    Added missing labels for sfu and jwt

commit 5cc9c70ba6
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 20:57:47 2024 +1000

    Remove serve command from matrix-element-call.service.j2

commit e34e5da9a4
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:57:39 2024 +1000

    Update matrix-redis.service.j2

commit 656d4275bc
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:48:06 2024 +1000

    Update install.yml

commit 6ef304b118
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:43:22 2024 +1000

    Update validate_config.yml

commit 85be68946c
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:30:15 2024 +1000

    Migrated from matrix_redis to redis_

commit 3f6c327da2
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:18:47 2024 +1000

    Update main.yml

commit ba54e549c4
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 19:08:09 2024 +1000

    Added well-known element directory

commit f2acc7430d
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:53:49 2024 +1000

    Create well_known_element.json.j2

commit 9cb236da30
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:50:48 2024 +1000

    Update install.yml

commit f38d6a0d88
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:39:03 2024 +1000

    Update main.yml

commit ac1295ac45
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 18:33:22 2024 +1000

    Create matrix-jwt-service.service.j2

commit bc2ed60762
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 17:23:03 2024 +1000

    Update main.yml

commit f7621283fd
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 16:31:23 2024 +1000

    Update labels.j2

commit e31e688a41
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 15:42:05 2024 +1000

    Update main.yml

commit a533ec4204
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 15:38:12 2024 +1000

    Update matrix_servers

commit f16ca24408
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 15:17:15 2024 +1000

    Update install.yml

commit e910d09ff1
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 14:52:30 2024 +1000

    Create matrix-redis.service.j2

commit bc9658c06b
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 13:40:38 2024 +1000

    Create matrix-livekit.service.j2

commit 45c8a61f04
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 11:39:33 2024 +1000

    Migrating to systemd for container management

commit 954d46cfd7
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:25:49 2024 +1000

    Update labels.j2

commit dfeca192ab
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:23:26 2024 +1000

    Update redis.conf.j2

commit f306a47b83
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:22:29 2024 +1000

    Update livekit.yaml.j2

commit becdb0810c
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:18:55 2024 +1000

    Update config.json.j2

commit 37fd2e701d
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 09:15:07 2024 +1000

    Update env.j2 to support the new configuration

commit 68cc1f4b2b
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 08:29:16 2024 +1000

    Simplified the validation step.

commit 5efc189293
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 08:12:06 2024 +1000

    Updated to support new structure

commit 02479e8bec
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 07:59:09 2024 +1000

    Updated with new structure.

commit 0eef094f2b
Author: Backslash <wjbeckett@gmail.com>
Date:   Thu Sep 26 06:51:36 2024 +1000

    Restructure install.yml to follow other roles more closely

commit 16ed788b3f
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 21:07:22 2024 +1000

    Update main.yml

commit 6364101410
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 20:20:20 2024 +1000

    Adding another debug task for testing the labels file.

commit 81735503f8
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 20:06:27 2024 +1000

    Added debug task to test labels configuration

commit 8644a7383e
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 19:22:21 2024 +1000

    Removed additional label loop

commit ce827e7953
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 19:09:13 2024 +1000

    Changed matrix_base_domain to matrix_domain

commit c93d30bcb8
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 19:07:03 2024 +1000

    Added matrix_server_name to the defaults

commit 90ea758c3b
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 18:39:26 2024 +1000

    Fixed regex for checking the hostname.

commit 350d4d4bcd
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 18:35:09 2024 +1000

    Fixed assertion block to remove jinja2 delimiters

commit fc6357a089
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 18:05:34 2024 +1000

    Update main.yml

commit 60f34cd7af
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Sep 25 16:13:29 2024 +1000

    fixed matrix_redis for migration

commit d1ba784dde
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Sep 25 15:01:53 2024 +1000

    added doc for setting up element call.

commit 434157eb98
Merge: 6594cce57 f657273cc
Author: Backslash <wjbeckett@gmail.com>
Date:   Wed Sep 25 14:55:42 2024 +1000

    Merge branch 'spantaleev:master' into element-call-integration

commit 6594cce570
Author: wjbeckett <wjbeckett@gmail.com>
Date:   Wed Sep 25 14:53:48 2024 +1000

    Feat: Added element call setup and configuration.
2025-03-15 08:34:48 +02:00

24 KiB

Support room on Matrix donate REUSE status

Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker

🎯 Purpose

This Ansible playbook is meant to help you run your own Matrix homeserver, along with the various services related to that.

That is, it lets you join the Matrix network using your own user ID like @alice:example.com, all hosted on your own server (see prerequisites).

We run all supported services in Docker containers (see the container images we use), which lets us have a predictable and up-to-date setup, across multiple supported distros (see prerequisites) and architectures (x86/amd64 being recommended).

Installation (upgrades) and some maintenance tasks are automated using Ansible (see our Ansible guide).

☁ Self-hosting or Managed / SaaS

This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy (see Getting started). Still, running any service smoothly requires knowledge, time and effort.

If you like the FOSS spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also get a managed Matrix server from etke.cc (both hosting and on-premises) - a service built on top of this Ansible playbook but with additional components and services which all help you run a Matrix server with ease. Be advised that etke.cc operates on a subscription-based approach and there is no "just set up my server once and be done with it" option.

🚀 Getting started

We have detailed documentation in the docs/ directory - see the Table of Contents in the documentation README.

While the list of supported services and documentation is very extensive, you don't need to read through everything. We recommend:

  • Starting with the basics. You can always add/remove or tweak services later on.

  • Following our installation guide. There are two guides available for beginners and advanced users:

    • Quick start (for beginners): this is recommended for those who do not have an existing Matrix server and want to start quickly with "opinionated defaults".

    • Full installation guide (for advanced users): if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the Prerequisites documentation page.

If you experience an issue on configuring the playbook, setting up your server, maintaining services on it, etc., please take a look at our FAQ. If you cannot find an answer to your question, feel free to ask for help and support.

✔ Supported services

Using this playbook, you can get the following list of services configured on your server. Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else.

Notes:

  • The list below is exhaustive. It includes optional or even some advanced components that you will most likely not need. Sticking with the defaults (which install a subset of the above components) is the best choice, especially for a new installation. You can always re-run the playbook later to add or remove components.

  • Deprecated or unmaintained services are not listed. You can find documentations for them here.

Homeserver

The homeserver is the backbone of your Matrix system. Choose one from the following list.

Name Default? Description Documentation
Synapse Storing your data and managing your presence in the Matrix network Link
Conduit Storing your data and managing your presence in the Matrix network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements Link
conduwuit Storing your data and managing your presence in the Matrix network. conduwuit is a fork of Conduit. Link
Dendrite Storing your data and managing your presence in the Matrix network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. Link

Clients

Web clients for Matrix that you can host on your own domains.

Name Default? Description Documentation
Element Web Default Matrix web client, configured to connect to your own Synapse server Link
Hydrogen Lightweight Matrix client with legacy and mobile browser support Link
Cinny Simple, elegant and secure web client Link
SchildiChat Web Based on Element Web, with a more traditional instant messaging experience Link
FluffyChat Web The cutest messenger in Matrix Link

Server Components

Services that run on the server to make the various parts of your installation work.

Name Default? Description Documentation
PostgreSQL Database for Synapse. Using an external PostgreSQL server is also possible. Link
coturn STUN/TURN server for WebRTC audio/video calls Link
Traefik Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver is also possible. Link
Let's Encrypt Free SSL certificate, which secures the connection to all components Link
Exim Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) Link
ma1sd Matrix Identity Server Link
ddclient Dynamic DNS Link
LiveKit Server WebRTC server for audio/video calls Link
Livekit JWT Service JWT service for integrating Element Call with LiveKit Server Link

Authentication

Extend and modify how users are authenticated on your homeserver.

Name Default? Description Documentation
matrix-synapse-rest-auth (advanced) REST authentication password provider module Link
matrix-synapse-shared-secret-auth (advanced) Password provider module Link
matrix-synapse-ldap3 (advanced) LDAP Auth password provider module Link
matrix-ldap-registration-proxy (advanced) Proxy that handles Matrix registration requests and forwards them to LDAP Link
matrix-registration Simple python application to have a token based Matrix registration Link
Matrix User Verification Service Service to verify details of a user based on an Open ID token Link
synapse-simple-antispam (advanced) Spam checker module Link

File Storage

Use alternative file storage to the default media_store folder.

Name Default? Description Documentation
Goofys Amazon S3 (or other S3-compatible object store) storage for Synapse's content repository (media_store) files Link
synapse-s3-storage-provider Amazon S3 (or other S3-compatible object store) storage for Synapse's content repository (media_store) files Link
matrix-media-repo Highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification. Link

Bridges

Bridges can be used to connect your Matrix installation with third-party communication networks.

Name Default? Description Documentation
mautrix-discord Bridge to Discord Link
mautrix-slack Bridge to Slack Link
mautrix-telegram Bridge to Telegram Link
mautrix-gmessages Bridge to Google Messages Link
mautrix-whatsapp Bridge to WhatsApp Link
mautrix-wsproxy Bridge to Android SMS or Apple iMessage Link
mautrix-bluesky Bridge to Bluesky Link
mautrix-twitter Bridge to Twitter Link
mautrix-googlechat Bridge to Google Chat Link
mautrix-meta Bridge to Messenger and Instagram Link for Messenger / Instagram
mautrix-signal Bridge to Signal Link
beeper-linkedin Bridge to LinkedIn Link
matrix-appservice-irc Bridge to IRC Link
matrix-appservice-kakaotalk Bridge to Kakaotalk Link
matrix-appservice-discord Bridge to Discord Link
matrix-appservice-slack Bridge to Slack Link
matrix-hookshot Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular Link
matrix-sms-bridge Bridge to SMS Link
matrix-wechat Bridge to WeChat Link
Heisenbridge Bouncer-style bridge to IRC Link
go-skype-bridge Bridge to Skype Link
mx-puppet-slack Bridge to Slack Link
mx-puppet-instagram Bridge for Instagram-DMs (Instagram) Link
mx-puppet-twitter Bridge for Twitter-DMs (Twitter) Link
mx-puppet-discord Bridge to Discord Link
mx-puppet-groupme Bridge to GroupMe Link
mx-puppet-steam Bridge to Steam Link
Postmoogle Email to Matrix bridge Link

Bots

Bots provide various additional functionality to your installation.

Name Default? Description Documentation
baibot Bot that exposes the power of AI / Large Language Models to you Link
matrix-reminder-bot Bot for scheduling one-off & recurring reminders and alarms Link
matrix-registration-bot Bot for invitations by creating and managing registration tokens Link
maubot Plugin-based Matrix bot system Link
Honoroit Helpdesk bot Link
Mjolnir Moderation tool for Matrix Link
Draupnir Moderation tool for Matrix (Fork of Mjolnir) Link (for appservice mode)
Buscarron Web forms (HTTP POST) to Matrix Link

Administration

Services that help you in administrating and monitoring your Matrix installation.

Name Default? Description Documentation
matrix-alertmanager-receiver Prometheus' Alertmanager client Link
Matrix Authentication Service OAuth 2.0 and OpenID Provider server Link
synapse-admin Web UI tool for administrating users and rooms on your Matrix server Link
Metrics and Graphs Consists of the Prometheus time-series database server, the Prometheus node-exporter host metrics exporter, and the Grafana web UI, with prometheus-nginxlog-exporter being available too Link (for prometheus-nginxlog-exporter)
Borg Backups Link
rageshake Bug report server Link
synapse-usage-exporter Export the usage statistics of a Synapse homeserver to be scraped by Prometheus. Link

Misc

Various services that don't fit any other categories.

Name Default? Description Documentation
sliding-sync (Superseded by Simplified Sliding Sync integrated into Synapse > 1.114 and Conduit > 0.6.0) Sliding Sync support for clients which require it (e.g. old Element X versions before Simplified Sliding Sync was developed) Link
synapse_auto_accept_invite Synapse module to automatically accept invites Link
synapse_auto_compressor Cli tool that automatically compresses state_groups database table in background Link
Matrix Corporal (advanced) Reconciliator and gateway for a managed Matrix server Link
Etherpad Open source collaborative text editor Link
Jitsi Open source video-conferencing platform Link
Cactus Comments Federated comment system built on Matrix Link
Pantalaimon E2EE aware proxy daemon Link
Sygnal Push gateway Link
ntfy Push notifications server Link
Element Call A native Matrix video conferencing application Link

🆕 Changes

This playbook evolves over time, sometimes with backward-incompatible changes.

When updating the playbook, refer to the changelog to catch up with what's new.

🆘 Support

🌐 Translation

See the i18n/README.md file for more information about translation.

Translations are still work in progress.

You may also be interested in mash-playbook - another Ansible playbook for self-hosting non-Matrix services (see its List of supported services).

mash-playbook also makes use of Traefik as its reverse-proxy, so with minor interoperability adjustments, you can make matrix-docker-ansible-deploy and mash-playbook co-exist and host Matrix and non-Matrix services on the same server.