mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2024-12-24 18:08:28 +01:00
Add "Web" to Element and SchildiChat web application (#3755)
* Replace "Element" with "Element Web" - If Element indicates the web application, then it is changed to Element Web. - If it indicates clients branded with Element such as Element desktop, web, mobile clients, then it is changed to Element clients. - If it is combined with location sharing functionality, it is not changed. with other some changes, including: - Change "app.element.io" anchor link to "https://github.com/element-hq/element-web" on README.md, following other documentation files Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org> * Replace "SchildiChat" with "SchildiChat Web" - If SchildiChat indicates the web application, then it is changed to SchildiChat Web. - If it indicates clients branded with SchildiChat such as SchildiChat desktop, web, mobile clients, then it is changed to SchildiChat clients. - If it is combined with location sharing functionality, it is not changed. Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org> * Rename configuring-playbook-client-schildichat.md to configuring-playbook-client-schildichat-web.md Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org> * Rename configuring-playbook-client-element.md to configuring-playbook-client-element-web.md Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org> --------- Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org> Co-authored-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
This commit is contained in:
parent
8308a91afa
commit
b04b658735
22
CHANGELOG.md
22
CHANGELOG.md
@ -731,7 +731,7 @@ Here are **actions you may wish to take** as a result of this change:
|
|||||||
|
|
||||||
- (recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery.
|
- (recommended) embrace the new default. If your Matrix server is federating, your public rooms have always been joinable across federation anyway. Exposing the list of public rooms does no harm and more-so does good by contributing to the usefulness of the Matrix network by facilitating room discovery.
|
||||||
|
|
||||||
- (switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for "mostly private" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces - you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting - controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element have a nice UI checkbox for this) to explicitly disable federation for them.
|
- (switch to a better way of doings things on your semi-private server) The problem that the Synapse team appears to have solved by flipping the `allow_public_rooms_over_federation` default in Synapse v1.7.0 seems to for "mostly private" servers, which federate and have a bunch of rooms made public (and published in their room directory) in an effort to allow people on the same homeserver to easily find and join them (self-onboarding). With the introduction of Matrix Spaces, you can reorganize your flow around spaces - you can auto-join your users to a Matrix Space (via Synapse's `auto_join_rooms` setting - controlled by our `matrix_synapse_auto_join_rooms` variable), then add a bunch of rooms to the space and make them joinable by people belonging to the space. That is to say, do not make rooms public and do not publish them to the room directory unless they are really public. Instead, use other mechanisms for semi-public rooms or private rooms. One alternative is to stick to what you're doing (public rooms published to your rooms directory) but having a `m.federate: true` flag set during creation (clients like Element Web have a nice UI checkbox for this) to explicitly disable federation for them.
|
||||||
|
|
||||||
- (keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures.
|
- (keeping the old behavior) if you wish to keep doing what you're doing (keeping your Matrix server federating, but hiding its public rooms list), add `matrix_synapse_allow_public_rooms_over_federation: false` to your `vars.yml` configuration. This restores the old behavior. You may also consider [disabling federation](docs/configuring-playbook-federation.md#disabling-federation) completely instead of relying on security-by-obscurity measures.
|
||||||
|
|
||||||
@ -751,11 +751,11 @@ People who [enable load-balancing with Synapse workers](docs/configuring-playboo
|
|||||||
|
|
||||||
# 2023-08-31
|
# 2023-08-31
|
||||||
|
|
||||||
## SchildiChat support
|
## SchildiChat Web support
|
||||||
|
|
||||||
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the [SchildiChat](https://github.com/SchildiChat/schildichat-desktop) client.
|
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook can now set up the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client.
|
||||||
|
|
||||||
See our [Configuring SchildiChat](docs/configuring-playbook-client-schildichat.md) documentation to get started.
|
See our [Configuring SchildiChat Web](docs/configuring-playbook-client-schildichat-web.md) documentation to get started.
|
||||||
|
|
||||||
|
|
||||||
# 2023-08-23
|
# 2023-08-23
|
||||||
@ -1826,9 +1826,9 @@ The playbook *could* correct these permissions automatically, but that requires
|
|||||||
|
|
||||||
The playbook no longer installs the [ma1sd](https://github.com/ma1uta/ma1sd) identity server by default. The next time you run the playbook, ma1sd will be uninstalled from your server, unless you explicitly enable the ma1sd service (see how below).
|
The playbook no longer installs the [ma1sd](https://github.com/ma1uta/ma1sd) identity server by default. The next time you run the playbook, ma1sd will be uninstalled from your server, unless you explicitly enable the ma1sd service (see how below).
|
||||||
|
|
||||||
The main reason we used to install ma1sd by default in the past was to prevent Element from talking to the `matrix.org` / `vector.im` identity servers, by forcing it to talk to our own self-hosted (but otherwise useless) identity server instead, thus preventing contact list leaks.
|
The main reason we used to install ma1sd by default in the past was to prevent Element clients from talking to the `matrix.org` / `vector.im` identity servers, by forcing it to talk to our own self-hosted (but otherwise useless) identity server instead, thus preventing contact list leaks.
|
||||||
|
|
||||||
Since Element no longer defaults to using a public identity server if another one is not provided, we can stop installing ma1sd.
|
Since Element clients no longer default to using a public identity server if another one is not provided, we can stop installing ma1sd.
|
||||||
|
|
||||||
If you need to install the ma1sd identity server for some reason, you can explicitly enable it by adding this to your `vars.yml` file:
|
If you need to install the ma1sd identity server for some reason, you can explicitly enable it by adding this to your `vars.yml` file:
|
||||||
|
|
||||||
@ -1917,7 +1917,7 @@ See our [Setting up Honoroit](docs/configuring-playbook-bot-honoroit.md) documen
|
|||||||
|
|
||||||
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) - a new simple, elegant and secure Matrix client.
|
Thanks to [Aine](https://gitlab.com/etke.cc) of [etke.cc](https://etke.cc/), the playbook now supports [Cinny](https://cinny.in/) - a new simple, elegant and secure Matrix client.
|
||||||
|
|
||||||
By default, we still install Element. Still, people who'd like to try Cinny out can now install it via the playbook.
|
By default, we still install Element Web. Still, people who'd like to try Cinny out can now install it via the playbook.
|
||||||
|
|
||||||
Additional details are available in [Setting up Cinny](docs/configuring-playbook-client-cinny.md).
|
Additional details are available in [Setting up Cinny](docs/configuring-playbook-client-cinny.md).
|
||||||
|
|
||||||
@ -1989,7 +1989,7 @@ If you need to downgrade to the previous version, changing `matrix_sygnal_versio
|
|||||||
|
|
||||||
Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) - a new lightweight Matrix client with legacy and mobile browser support.
|
Thanks to [Aaron Raimist](https://github.com/aaronraimist), the playbook now supports [Hydrogen](https://github.com/vector-im/hydrogen-web) - a new lightweight Matrix client with legacy and mobile browser support.
|
||||||
|
|
||||||
By default, we still install Element, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook.
|
By default, we still install Element Web, as Hydrogen is still not fully-featured. Still, people who'd like to try Hydrogen out can now install it via the playbook.
|
||||||
|
|
||||||
Additional details are available in [Setting up Hydrogen](docs/configuring-playbook-client-hydrogen.md).
|
Additional details are available in [Setting up Hydrogen](docs/configuring-playbook-client-hydrogen.md).
|
||||||
|
|
||||||
@ -2427,9 +2427,9 @@ To learn more, follow our [Dynamic DNS docs page](docs/configuring-playbook-dyna
|
|||||||
|
|
||||||
Until now, we used to serve a static page coming from Synapse at `https://matrix.example.com/`. This page was not very useful to anyone.
|
Until now, we used to serve a static page coming from Synapse at `https://matrix.example.com/`. This page was not very useful to anyone.
|
||||||
|
|
||||||
Since `matrix.example.com` may be accessed by regular users in certain conditions, it's probably better to redirect them to a better place (e.g. to the [Element](docs/configuring-playbook-client-element.md) client).
|
Since `matrix.example.com` may be accessed by regular users in certain conditions, it's probably better to redirect them to a better place (e.g. to [Element Web](docs/configuring-playbook-client-element-web.md)).
|
||||||
|
|
||||||
If Element is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page.
|
If Element Web is installed (`matrix_client_element_enabled: true`, which it is by default), we now redirect people to it, instead of showing them a Synapse static page.
|
||||||
|
|
||||||
If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable.
|
If you'd like to control where the redirect goes, use the `matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain` variable.
|
||||||
To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: ""`).
|
To restore the old behavior of not redirecting anywhere and serving the Synapse static page, set it to an empty value (`matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain: ""`).
|
||||||
@ -2514,7 +2514,7 @@ As per the official announcement, [Riot has been rebraned to Element](https://el
|
|||||||
|
|
||||||
The playbook follows suit. Existing installations have a few options for how to handle this.
|
The playbook follows suit. Existing installations have a few options for how to handle this.
|
||||||
|
|
||||||
See our [Migrating to Element](docs/configuring-playbook-riot-web.md#migrating-to-element) documentation page for more details.
|
See our [Migrating to Element Web](docs/configuring-playbook-riot-web.md#migrating-to-element) documentation page for more details.
|
||||||
|
|
||||||
|
|
||||||
# 2020-07-03
|
# 2020-07-03
|
||||||
|
@ -53,10 +53,10 @@ Web clients for Matrix that you can host on your own domains.
|
|||||||
|
|
||||||
| Name | Default? | Description | Documentation |
|
| Name | Default? | Description | Documentation |
|
||||||
| ---- | -------- | ----------- | ------------- |
|
| ---- | -------- | ----------- | ------------- |
|
||||||
| [Element](https://app.element.io/) | ✅ | Web UI, which is configured to connect to your own Synapse server by default | [Link](docs/configuring-playbook-client-element.md) |
|
| [Element Web](https://github.com/element-hq/element-web) | ✅ | Default Matrix web client, configured to connect to your own Synapse server | [Link](docs/configuring-playbook-client-element-web.md) |
|
||||||
| [Hydrogen](https://github.com/element-hq/hydrogen-web) | ❌ | Lightweight Matrix client with legacy and mobile browser support | [Link](docs/configuring-playbook-client-hydrogen.md) |
|
| [Hydrogen](https://github.com/element-hq/hydrogen-web) | ❌ | Lightweight Matrix client with legacy and mobile browser support | [Link](docs/configuring-playbook-client-hydrogen.md) |
|
||||||
| [Cinny](https://github.com/ajbura/cinny) | ❌ | Simple, elegant and secure web client | [Link](docs/configuring-playbook-client-cinny.md) |
|
| [Cinny](https://github.com/ajbura/cinny) | ❌ | Simple, elegant and secure web client | [Link](docs/configuring-playbook-client-cinny.md) |
|
||||||
| [SchildiChat](https://schildi.chat/) | ❌ | Based on Element, with a more traditional instant messaging experience | [Link](docs/configuring-playbook-client-schildichat.md) |
|
| [SchildiChat Web](https://schildi.chat/) | ❌ | Based on Element Web, with a more traditional instant messaging experience | [Link](docs/configuring-playbook-client-schildichat-web.md) |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ A few other **major components and changes** landed in 2023:
|
|||||||
* (2023-03-07) [Sliding Sync proxy](https://github.com/matrix-org/sliding-sync) (currently a necessary component for [Element X](https://element.io/labs/element-x) to work), thanks to: [Benjamin Kampmann](https://github.com/gnunicorn) and [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#sliding-sync-proxy-element-x-support))
|
* (2023-03-07) [Sliding Sync proxy](https://github.com/matrix-org/sliding-sync) (currently a necessary component for [Element X](https://element.io/labs/element-x) to work), thanks to: [Benjamin Kampmann](https://github.com/gnunicorn) and [FSG-Cat](https://github.com/FSG-Cat) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#sliding-sync-proxy-element-x-support))
|
||||||
* (2023-03-12) synapse-auto-compressor to periodically and automatically run [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#synapse-auto-compressor-support))
|
* (2023-03-12) synapse-auto-compressor to periodically and automatically run [rust-synapse-compress-state](https://github.com/matrix-org/rust-synapse-compress-state), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#synapse-auto-compressor-support))
|
||||||
* (2023-07-17) [matrix-media-repo](https://github.com/turt2live/matrix-media-repo), thanks to a PR by [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-media-repo-support))
|
* (2023-07-17) [matrix-media-repo](https://github.com/turt2live/matrix-media-repo), thanks to a PR by [Michael Hollister](https://github.com/Michael-Hollister) from [FUTO](https://www.futo.org/), the creators of the [Circles app](https://circu.li/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#matrix-media-repo-support))
|
||||||
* (2023-08-31) [SchildiChat](https://github.com/SchildiChat/schildichat-desktop) client app (fork of [element-web)](https://github.com/element-hq/element-web), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#schildichat-support))
|
* (2023-08-31) [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client app (fork of [Element Web)](https://github.com/element-hq/element-web), thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#schildichat-support))
|
||||||
* (2023-10-18) Postgres parameters auto-tuning, thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#postgres-parameters-are-automatically-tuned-now))
|
* (2023-10-18) Postgres parameters auto-tuning, thanks to a PR by [Aine](https://gitlab.com/etke.cc) from [etke.cc](https://etke.cc/) (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#postgres-parameters-are-automatically-tuned-now))
|
||||||
* (2023-10-23) Enabling federation of the room directory for Synapse (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#enabling-allow_public_rooms_over_federation-by-default-for-synapse))
|
* (2023-10-23) Enabling federation of the room directory for Synapse (see the [changelog entry](https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/850078b7e37401ce91a0f9b686f60b945f6c3a96/CHANGELOG.md#enabling-allow_public_rooms_over_federation-by-default-for-synapse))
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 205 KiB After Width: | Height: | Size: 205 KiB |
@ -40,7 +40,7 @@ If you are using Cloudflare DNS, make sure to disable the proxy and set all reco
|
|||||||
| [Etherpad](configuring-playbook-etherpad.md) collaborative text editor | CNAME | `etherpad` | - | - | - | `matrix.example.com` |
|
| [Etherpad](configuring-playbook-etherpad.md) collaborative text editor | CNAME | `etherpad` | - | - | - | `matrix.example.com` |
|
||||||
| [Hydrogen](configuring-playbook-client-hydrogen.md) web client | CNAME | `hydrogen` | - | - | - | `matrix.example.com` |
|
| [Hydrogen](configuring-playbook-client-hydrogen.md) web client | CNAME | `hydrogen` | - | - | - | `matrix.example.com` |
|
||||||
| [Cinny](configuring-playbook-client-cinny.md) web client | CNAME | `cinny` | - | - | - | `matrix.example.com` |
|
| [Cinny](configuring-playbook-client-cinny.md) web client | CNAME | `cinny` | - | - | - | `matrix.example.com` |
|
||||||
| [SchildiChat](configuring-playbook-client-schildichat.md) web client | CNAME | `schildichat` | - | - | - | `matrix.example.com` |
|
| [SchildiChat Web](configuring-playbook-client-schildichat-web.md) client | CNAME | `schildichat` | - | - | - | `matrix.example.com` |
|
||||||
| [wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md) sms bridge | CNAME | `wsproxy` | - | - | - | `matrix.example.com` |
|
| [wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md) sms bridge | CNAME | `wsproxy` | - | - | - | `matrix.example.com` |
|
||||||
| [Buscarron](configuring-playbook-bot-buscarron.md) helpdesk bot | CNAME | `buscarron` | - | - | - | `matrix.example.com` |
|
| [Buscarron](configuring-playbook-bot-buscarron.md) helpdesk bot | CNAME | `buscarron` | - | - | - | `matrix.example.com` |
|
||||||
| [rageshake](docs/configuring-playbook-rageshake.md) bug report server | CNAME | `rageshake` | - | - | - | `matrix.example.com` |
|
| [rageshake](docs/configuring-playbook-rageshake.md) bug report server | CNAME | `rageshake` | - | - | - | `matrix.example.com` |
|
||||||
@ -55,7 +55,7 @@ When setting up a SRV record, if you are asked for a service and protocol instea
|
|||||||
|
|
||||||
As the table above illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your new server's IP address (DNS `A` record or `CNAME` record is fine).
|
As the table above illustrates, you need to create 2 subdomains (`matrix.example.com` and `element.example.com`) and point both of them to your new server's IP address (DNS `A` record or `CNAME` record is fine).
|
||||||
|
|
||||||
The `element.example.com` subdomain may be necessary, because this playbook installs the [Element](https://github.com/element-hq/element-web) web client for you. If you'd rather instruct the playbook not to install Element (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record.
|
The `element.example.com` subdomain may be necessary, because this playbook installs the [Element Web](https://github.com/element-hq/element-web) client for you. If you'd rather instruct the playbook not to install Element Web (`matrix_client_element_enabled: false` when [Configuring the playbook](configuring-playbook.md) later), feel free to skip the `element.example.com` DNS record.
|
||||||
|
|
||||||
The `dimension.example.com` subdomain may be necessary, because this playbook could install the [Dimension integration manager](http://dimension.t2bot.io/) for you. The installation of Dimension is disabled by default, because it's only possible to install it after the other Matrix services are working (see [Setting up Dimension integration manager](configuring-playbook-dimension.md) later). If you do not wish to set up Dimension, feel free to skip the `dimension.example.com` DNS record.
|
The `dimension.example.com` subdomain may be necessary, because this playbook could install the [Dimension integration manager](http://dimension.t2bot.io/) for you. The installation of Dimension is disabled by default, because it's only possible to install it after the other Matrix services are working (see [Setting up Dimension integration manager](configuring-playbook-dimension.md) later). If you do not wish to set up Dimension, feel free to skip the `dimension.example.com` DNS record.
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ The `hydrogen.example.com` subdomain may be necessary, because this playbook cou
|
|||||||
|
|
||||||
The `cinny.example.com` subdomain may be necessary, because this playbook could install the [Cinny](https://github.com/ajbura/cinny) web client. The installation of Cinny is disabled by default, it is not a core required component. To learn how to install it, see our [configuring Cinny guide](configuring-playbook-client-cinny.md). If you do not wish to set up Cinny, feel free to skip the `cinny.example.com` DNS record.
|
The `cinny.example.com` subdomain may be necessary, because this playbook could install the [Cinny](https://github.com/ajbura/cinny) web client. The installation of Cinny is disabled by default, it is not a core required component. To learn how to install it, see our [configuring Cinny guide](configuring-playbook-client-cinny.md). If you do not wish to set up Cinny, feel free to skip the `cinny.example.com` DNS record.
|
||||||
|
|
||||||
The `schildichat.example.com` subdomain may be necessary, because this playbook could install the [SchildiChat](https://github.com/SchildiChat/schildichat-desktop) web client. The installation of SchildiChat is disabled by default, it is not a core required component. To learn how to install it, see our [configuring SchildiChat guide](configuring-playbook-client-schildichat.md). If you do not wish to set up SchildiChat, feel free to skip the `schildichat.example.com` DNS record.
|
The `schildichat.example.com` subdomain may be necessary, because this playbook could install the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) client. The installation of SchildiChat Web is disabled by default, it is not a core required component. To learn how to install it, see our [configuring SchildiChat Web guide](configuring-playbook-client-schildichat-web.md). If you do not wish to set up SchildiChat Web, feel free to skip the `schildichat.example.com` DNS record.
|
||||||
|
|
||||||
The `wsproxy.example.com` subdomain may be necessary, because this playbook could install the [wsproxy](https://github.com/mautrix/wsproxy) web client. The installation of wsproxy is disabled by default, it is not a core required component. To learn how to install it, see our [configuring wsproxy guide](configuring-playbook-bridge-mautrix-wsproxy.md). If you do not wish to set up wsproxy, feel free to skip the `wsproxy.example.com` DNS record.
|
The `wsproxy.example.com` subdomain may be necessary, because this playbook could install the [wsproxy](https://github.com/mautrix/wsproxy) web client. The installation of wsproxy is disabled by default, it is not a core required component. To learn how to install it, see our [configuring wsproxy guide](configuring-playbook-bridge-mautrix-wsproxy.md). If you do not wish to set up wsproxy, feel free to skip the `wsproxy.example.com` DNS record.
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Draupnir for all is the way to go if you need more than 1 Draupnir instance, but
|
|||||||
|
|
||||||
Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits.
|
Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits.
|
||||||
|
|
||||||
Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally.
|
Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally.
|
||||||
|
|
||||||
Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account.
|
Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account.
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ The playbook does not create a management room for your Main Draupnir. This task
|
|||||||
|
|
||||||
The management room has to be given an alias and be public when you are setting up the bot for the first time as the bot does not differentiate between invites and invites to the management room.
|
The management room has to be given an alias and be public when you are setting up the bot for the first time as the bot does not differentiate between invites and invites to the management room.
|
||||||
|
|
||||||
This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element calls this powerlevel.
|
This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel.
|
||||||
|
|
||||||
As noted in the Draupnir install instructions the control room is sensitive. The following is said about the control room in the Draupnir install instructions.
|
As noted in the Draupnir install instructions the control room is sensitive. The following is said about the control room in the Draupnir install instructions.
|
||||||
>Anyone in this room can control the bot so it is important that you only invite trusted users to this room. The room must be unencrypted since the playbook does not support installing Pantalaimon yet.
|
>Anyone in this room can control the bot so it is important that you only invite trusted users to this room. The room must be unencrypted since the playbook does not support installing Pantalaimon yet.
|
||||||
@ -72,7 +72,7 @@ To allow users or whole homeservers you type /plain @draupnir-main:example.com a
|
|||||||
|
|
||||||
### 2. How to provision a D4A once you are allowed to.
|
### 2. How to provision a D4A once you are allowed to.
|
||||||
|
|
||||||
Open a DM with @draupnir-main:example.com and if using Element send a message into this DM to finalise creating it. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience.
|
Open a DM with @draupnir-main:example.com and if using an Element client send a message into this DM to finalise creating it. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience.
|
||||||
|
|
||||||
Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment.
|
Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment.
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ Using your own account, create a new invite only room that you will use to manag
|
|||||||
|
|
||||||
If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see below).
|
If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see below).
|
||||||
|
|
||||||
Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element you can do this by going to the room's settings, clicking Advanced, and then copying the internal room ID. The room ID will look something like `!qporfwt:example.com`.
|
Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element Web you can do this by going to the room's settings, clicking Advanced, and then copying the internal room ID. The room ID will look something like `!qporfwt:example.com`.
|
||||||
|
|
||||||
Finally invite the `@bot.draupnir:example.com` account you created earlier into the room.
|
Finally invite the `@bot.draupnir:example.com` account you created earlier into the room.
|
||||||
|
|
||||||
|
@ -68,4 +68,4 @@ You should start in the following order
|
|||||||
|
|
||||||
This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`.
|
This can be done via `mbc login` then `mbc auth` (see the [maubot documentation](https://docs.mau.fi/maubot/usage/cli/auth.html)). To run these commands, you'll first need to `exec` into the maubot container with `docker exec -it matrix-bot-maubot sh`.
|
||||||
|
|
||||||
Alternatively, you can follow our generic [obtain an access token](obtaining-access-tokens.md) documentation. Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element**) as the latter will give your bot issues in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients).
|
Alternatively, you can follow our generic [obtain an access token](obtaining-access-tokens.md) documentation. Be aware that you'd better use the **Obtain an access token via curl** method (not **Obtain an access token via Element Web**) as the latter will give your bot issues in encrypted rooms. Read [more](https://docs.mau.fi/maubot/usage/basic.html#creating-clients).
|
||||||
|
@ -41,7 +41,7 @@ Using your own account, create a new invite only room that you will use to manag
|
|||||||
|
|
||||||
If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see below).
|
If you make the management room encrypted (E2EE), then you MUST enable and use Pantalaimon (see below).
|
||||||
|
|
||||||
Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element you can do this by going to the room's settings, clicking Advanced, and then copying the internal room ID. The room ID will look something like `!qporfwt:example.com`.
|
Once you have created the room you need to copy the room ID so you can tell the bot to use that room. In Element Web you can do this by going to the room's settings, clicking Advanced, and then copying the internal room ID. The room ID will look something like `!qporfwt:example.com`.
|
||||||
|
|
||||||
Finally invite the `@bot.mjolnir:example.com` account you created earlier into the room.
|
Finally invite the `@bot.mjolnir:example.com` account you created earlier into the room.
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ See the project's [documentation](https://github.com/matrix-org/matrix-appservic
|
|||||||
|
|
||||||
loosely based on [this](https://github.com/matrix-org/matrix-appservice-slack#Setup)
|
loosely based on [this](https://github.com/matrix-org/matrix-appservice-slack#Setup)
|
||||||
|
|
||||||
1. Create a new Matrix room to act as the administration control room. Note its internal room ID. This can be done in Element by sending a message, opening the options for that message and choosing "view source". The room ID will be displayed near the top.
|
1. Create a new Matrix room to act as the administration control room. Note its internal room ID. This can be done in Element Web by sending a message, opening the options for that message and choosing "view source". The room ID will be displayed near the top.
|
||||||
|
|
||||||
2. Enable the bridge by adding the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
2. Enable the bridge by adding the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This playbook can install the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you.
|
This playbook can install the [Cinny](https://github.com/ajbura/cinny) Matrix web client for you.
|
||||||
|
|
||||||
Cinny is a web client focusing primarily on simple, elegant and secure interface. It can be installed alongside or instead of Element.
|
Cinny is a web client focusing primarily on simple, elegant and secure interface. It can be installed alongside or instead of Element Web.
|
||||||
|
|
||||||
## Adjusting the playbook configuration
|
## Adjusting the playbook configuration
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
# Configuring Element (optional)
|
# Configuring Element Web (optional)
|
||||||
|
|
||||||
By default, this playbook installs the [Element](https://github.com/element-hq/element-web) Matrix web client for you. If that's okay, you can skip this document.
|
By default, this playbook installs the [Element Web](https://github.com/element-hq/element-web) Matrix client for you. If that's okay, you can skip this document.
|
||||||
|
|
||||||
|
|
||||||
## Disabling Element
|
## Disabling Element Web
|
||||||
|
|
||||||
If you'd like for the playbook to not install Element (or to uninstall it if it was previously installed), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
If you'd like for the playbook to not install Element Web (or to uninstall it if it was previously installed), add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
matrix_client_element_enabled: false
|
matrix_client_element_enabled: false
|
||||||
@ -14,15 +14,15 @@ matrix_client_element_enabled: false
|
|||||||
|
|
||||||
## Adjusting the playbook configuration
|
## Adjusting the playbook configuration
|
||||||
|
|
||||||
The playbook provides some customization variables you could use to change Element's settings.
|
The playbook provides some customization variables you could use to change Element Web's settings.
|
||||||
|
|
||||||
Their defaults are defined in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml) and they ultimately end up in the generated `/matrix/element/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-element/templates/config.json.j2`](../roles/custom/matrix-client-element/templates/config.json.j2) template.
|
Their defaults are defined in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml) and they ultimately end up in the generated `/matrix/element/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-element/templates/config.json.j2`](../roles/custom/matrix-client-element/templates/config.json.j2) template.
|
||||||
|
|
||||||
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
|
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
|
||||||
|
|
||||||
Alternatively, **if there is no pre-defined variable** for an Element setting you wish to change:
|
Alternatively, **if there is no pre-defined variable** for an Element Web setting you wish to change:
|
||||||
|
|
||||||
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of Element's various settings that rarely get used.
|
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of Element Web's various settings that rarely get used.
|
||||||
|
|
||||||
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-element/templates/config.json.j2)) by making use of the `matrix_client_element_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml).
|
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-element/templates/config.json.j2)) by making use of the `matrix_client_element_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-element/defaults/main.yml`](../roles/custom/matrix-client-element/defaults/main.yml).
|
||||||
|
|
||||||
@ -31,17 +31,17 @@ Alternatively, **if there is no pre-defined variable** for an Element setting yo
|
|||||||
|
|
||||||
### Themes
|
### Themes
|
||||||
|
|
||||||
To change the look of Element, you can define your own themes manually by using the `matrix_client_element_setting_defaults_custom_themes` setting.
|
To change the look of Element Web, you can define your own themes manually by using the `matrix_client_element_setting_defaults_custom_themes` setting.
|
||||||
|
|
||||||
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_element_themes_enabled: true`).
|
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_element_themes_enabled: true`).
|
||||||
|
|
||||||
If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it.
|
If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it.
|
||||||
|
|
||||||
Note that for a custom theme to work well, all Element instances that you use must have the same theme installed.
|
Note that for a custom theme to work well, all Element Web instances that you use must have the same theme installed.
|
||||||
|
|
||||||
### Adjusting the Element URL
|
### Adjusting the Element Web URL
|
||||||
|
|
||||||
By default, this playbook installs Element on the `element.` subdomain (`element.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records).
|
By default, this playbook installs Element Web on the `element.` subdomain (`element.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records).
|
||||||
|
|
||||||
By tweaking the `matrix_client_element_hostname` and `matrix_client_element_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one.
|
By tweaking the `matrix_client_element_hostname` and `matrix_client_element_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one.
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ Example additional configuration for your `inventory/host_vars/matrix.example.co
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Switch to the domain used for Matrix services (`matrix.example.com`),
|
# Switch to the domain used for Matrix services (`matrix.example.com`),
|
||||||
# so we won't need to add additional DNS records for Element.
|
# so we won't need to add additional DNS records for Element Web.
|
||||||
matrix_client_element_hostname: "{{ matrix_server_fqn_matrix }}"
|
matrix_client_element_hostname: "{{ matrix_server_fqn_matrix }}"
|
||||||
|
|
||||||
# Expose under the /element subpath
|
# Expose under the /element subpath
|
||||||
@ -58,7 +58,7 @@ matrix_client_element_path_prefix: /element
|
|||||||
|
|
||||||
## Adjusting DNS records
|
## Adjusting DNS records
|
||||||
|
|
||||||
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Element domain to the Matrix server.
|
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the Element Web domain to the Matrix server.
|
||||||
|
|
||||||
By default, you will need to create a CNAME record for `element`. See [Configuring DNS](configuring-dns.md) for details about DNS changes.
|
By default, you will need to create a CNAME record for `element`. See [Configuring DNS](configuring-dns.md) for details about DNS changes.
|
||||||
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This playbook can install the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you.
|
This playbook can install the [Hydrogen](https://github.com/element-hq/hydrogen-web) Matrix web client for you.
|
||||||
|
|
||||||
Hydrogen is a lightweight web client that supports mobile and legacy web browsers. It can be installed alongside or instead of Element.
|
Hydrogen is a lightweight web client that supports mobile and legacy web browsers. It can be installed alongside or instead of Element Web.
|
||||||
|
|
||||||
## Adjusting the playbook configuration
|
## Adjusting the playbook configuration
|
||||||
|
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
# Setting up SchildiChat (optional)
|
# Setting up SchildiChat Web (optional)
|
||||||
|
|
||||||
This playbook can install the [SchildiChat](https://github.com/SchildiChat/schildichat-desktop) Matrix web client for you.
|
This playbook can install the [SchildiChat Web](https://github.com/SchildiChat/schildichat-desktop) Matrix client for you.
|
||||||
|
|
||||||
SchildiChat is a feature-rich messenger for Matrix based on Element with some extras and tweaks. It can be installed alongside or instead of Element.
|
SchildiChat Web is a feature-rich messenger for Matrix based on Element Web with some extras and tweaks. It can be installed alongside or instead of Element Web.
|
||||||
|
|
||||||
**WARNING**: SchildiChat Web is based on Element-web, but its releases are lagging behind. As an example (from 2024-02-26), SchildiChat Web is 22 releases behind (it being based on element-web `v1.11.36`, while element-web is now on `v1.11.58`). Element-web frequently suffers from security issues, so running something based on an ancient Element-web release is **dangerous**. Use SchildiChat Web at your own risk!
|
**WARNING**: SchildiChat Web is based on Element Web, but its releases are lagging behind. As an example (from 2024-02-26), SchildiChat Web is 22 releases behind (it being based on Element Web `v1.11.36`, while Element Web is now on `v1.11.58`). Element Web frequently suffers from security issues, so running something based on an ancient Element Web release is **dangerous**. Use SchildiChat Web at your own risk!
|
||||||
|
|
||||||
## Adjusting the playbook configuration
|
## Adjusting the playbook configuration
|
||||||
|
|
||||||
To enable SchildiChat, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
To enable SchildiChat Web, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
matrix_client_schildichat_enabled: true
|
matrix_client_schildichat_enabled: true
|
||||||
```
|
```
|
||||||
|
|
||||||
The playbook provides some customization variables you could use to change SchildiChat's settings.
|
The playbook provides some customization variables you could use to change SchildiChat Web's settings.
|
||||||
|
|
||||||
Their defaults are defined in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml) and they ultimately end up in the generated `/matrix/schildichat/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-schildichat/templates/config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2) template.
|
Their defaults are defined in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml) and they ultimately end up in the generated `/matrix/schildichat/config.json` file (on the server). This file is generated from the [`roles/custom/matrix-client-schildichat/templates/config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2) template.
|
||||||
|
|
||||||
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
|
**If there's an existing variable** which controls a setting you wish to change, you can simply define that variable in your configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) and [re-run the playbook](installing.md) to apply the changes.
|
||||||
|
|
||||||
Alternatively, **if there is no pre-defined variable** for a SchildiChat setting you wish to change:
|
Alternatively, **if there is no pre-defined variable** for a SchildiChat Web setting you wish to change:
|
||||||
|
|
||||||
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of SchildiChat's various settings that rarely get used.
|
- you can either **request a variable to be created** (or you can submit such a contribution yourself). Keep in mind that it's **probably not a good idea** to create variables for each one of SchildiChat Web's various settings that rarely get used.
|
||||||
|
|
||||||
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2)) by making use of the `matrix_client_schildichat_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml).
|
- or, you can **extend and override the default configuration** ([`config.json.j2`](../roles/custom/matrix-client-schildichat/templates/config.json.j2)) by making use of the `matrix_client_schildichat_configuration_extension_json_` variable. You can find information about this in [`roles/custom/matrix-client-schildichat/defaults/main.yml`](../roles/custom/matrix-client-schildichat/defaults/main.yml).
|
||||||
|
|
||||||
@ -30,17 +30,17 @@ Alternatively, **if there is no pre-defined variable** for a SchildiChat setting
|
|||||||
|
|
||||||
### Themes
|
### Themes
|
||||||
|
|
||||||
To change the look of SchildiChat, you can define your own themes manually by using the `matrix_client_schildichat_setting_defaults_custom_themes` setting.
|
To change the look of SchildiChat Web, you can define your own themes manually by using the `matrix_client_schildichat_setting_defaults_custom_themes` setting.
|
||||||
|
|
||||||
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_schildichat_themes_enabled: true`).
|
Or better yet, you can automatically pull it all themes provided by the [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes) project by simply flipping a flag (`matrix_client_schildichat_themes_enabled: true`).
|
||||||
|
|
||||||
If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it.
|
If you make your own theme, we encourage you to submit it to the **aaronraimist/element-themes** project, so that the whole community could easily enjoy it.
|
||||||
|
|
||||||
Note that for a custom theme to work well, all SchildiChat instances that you use must have the same theme installed.
|
Note that for a custom theme to work well, all SchildiChat Web instances that you use must have the same theme installed.
|
||||||
|
|
||||||
### Adjusting the SchildiChat URL
|
### Adjusting the SchildiChat Web URL
|
||||||
|
|
||||||
By default, this playbook installs SchildiChat on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records).
|
By default, this playbook installs SchildiChat Web on the `schildichat.` subdomain (`schildichat.example.com`) and requires you to [adjust your DNS records](#adjusting-dns-records).
|
||||||
|
|
||||||
By tweaking the `matrix_client_schildichat_hostname` and `matrix_client_schildichat_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one.
|
By tweaking the `matrix_client_schildichat_hostname` and `matrix_client_schildichat_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one.
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Example additional configuration for your `inventory/host_vars/matrix.example.co
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Switch to the domain used for Matrix services (`matrix.example.com`),
|
# Switch to the domain used for Matrix services (`matrix.example.com`),
|
||||||
# so we won't need to add additional DNS records for SchildiChat.
|
# so we won't need to add additional DNS records for SchildiChat Web.
|
||||||
matrix_client_schildichat_hostname: "{{ matrix_server_fqn_matrix }}"
|
matrix_client_schildichat_hostname: "{{ matrix_server_fqn_matrix }}"
|
||||||
|
|
||||||
# Expose under the /schildichat subpath
|
# Expose under the /schildichat subpath
|
||||||
@ -57,7 +57,7 @@ matrix_client_schildichat_path_prefix: /schildichat
|
|||||||
|
|
||||||
## Adjusting DNS records
|
## Adjusting DNS records
|
||||||
|
|
||||||
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the SchildiChat domain to the Matrix server.
|
Once you've decided on the domain and path, **you may need to adjust your DNS** records to point the SchildiChat Web domain to the Matrix server.
|
||||||
|
|
||||||
By default, you will need to create a CNAME record for `schildichat`. See [Configuring DNS](configuring-dns.md) for details about DNS changes.
|
By default, you will need to create a CNAME record for `schildichat`. See [Configuring DNS](configuring-dns.md) for details about DNS changes.
|
||||||
|
|
@ -22,7 +22,7 @@ Since it is difficult to create the first user account on Conduit (see [famedly/
|
|||||||
|
|
||||||
1. Add `matrix_conduit_allow_registration: true` to your `vars.yml` the first time around, temporarily
|
1. Add `matrix_conduit_allow_registration: true` to your `vars.yml` the first time around, temporarily
|
||||||
2. Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` - see [Installing](installing.md))
|
2. Run the playbook (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start` - see [Installing](installing.md))
|
||||||
3. Create your first user via Element or any other client which supports creating users
|
3. Create your first user via Element Web or any other client which supports creating users
|
||||||
4. Get rid of `matrix_conduit_allow_registration: true` from your `vars.yml`
|
4. Get rid of `matrix_conduit_allow_registration: true` from your `vars.yml`
|
||||||
5. Run the playbook again (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-conduit,start` would be enough this time)
|
5. Run the playbook again (`ansible-playbook -i inventory/hosts setup.yml --tags=setup-conduit,start` would be enough this time)
|
||||||
6. You can now use your server safely. Additional users can be created by messaging the internal Conduit bot
|
6. You can now use your server safely. Additional users can be created by messaging the internal Conduit bot
|
||||||
|
@ -24,7 +24,7 @@ matrix_dimension_admins:
|
|||||||
- "@user2:{{ matrix_domain }}"
|
- "@user2:{{ matrix_domain }}"
|
||||||
```
|
```
|
||||||
|
|
||||||
The admin interface is accessible within Element by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element by the "Add widgets, bridges, & bots" link in the room information.
|
The admin interface is accessible within Element Web by accessing it in any room and clicking the cog wheel/settings icon in the top right. Currently, Dimension can be opened in Element Web by the "Add widgets, bridges, & bots" link in the room information.
|
||||||
|
|
||||||
### Access token
|
### Access token
|
||||||
|
|
||||||
@ -75,14 +75,14 @@ After configuring the playbook and potentially [adjusting your DNS records](#adj
|
|||||||
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
|
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
|
||||||
```
|
```
|
||||||
|
|
||||||
After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element by opening a room, clicking the Room info button (`i`) button in the top right corner of the screen, and then clicking Add widgets, bridges & bots.
|
After Dimension has been installed you may need to log out and log back in for it to pick up the new integration manager. Then you can access integrations in Element Web by opening a room, clicking the Room info button (`i`) button in the top right corner of the screen, and then clicking Add widgets, bridges & bots.
|
||||||
|
|
||||||
|
|
||||||
## Jitsi domain
|
## Jitsi domain
|
||||||
|
|
||||||
By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](./configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance. Currently there is no way to configure this via the playbook, see [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details.
|
By default Dimension will use [jitsi.riot.im](https://jitsi.riot.im/) as the `conferenceDomain` of [Jitsi](https://jitsi.org/) audio/video conference widgets. For users running [a self-hosted Jitsi instance](./configuring-playbook-jitsi.md), you will likely want the widget to use your own Jitsi instance. Currently there is no way to configure this via the playbook, see [this issue](https://github.com/turt2live/matrix-dimension/issues/345) for details.
|
||||||
|
|
||||||
In the interim until the above limitation is resolved, an admin user needs to configure the domain via the admin ui once dimension is running. In Element, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately.
|
In the interim until the above limitation is resolved, an admin user needs to configure the domain via the admin ui once dimension is running. In Element Web, go to *Manage Integrations* → *Settings* → *Widgets* → *Jitsi Conference Settings* and set *Jitsi Domain* and *Jitsi Script URL* appropriately.
|
||||||
|
|
||||||
|
|
||||||
## Additional features
|
## Additional features
|
||||||
|
@ -62,7 +62,7 @@ Then from the plugin manager page (`https://etherpad.example.com/admin/plugins`,
|
|||||||
|
|
||||||
### How to use Etherpad widgets without an integration manager (like Dimension)
|
### How to use Etherpad widgets without an integration manager (like Dimension)
|
||||||
|
|
||||||
This is how it works in Element, it might work quite similar with other clients:
|
This is how it works in Element Web, it might work quite similar with other clients:
|
||||||
|
|
||||||
To integrate a standalone Etherpad in a room, create your pad by visiting `https://etherpad.example.com`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section.
|
To integrate a standalone Etherpad in a room, create your pad by visiting `https://etherpad.example.com`. When the pad opens, copy the URL and send a command like this to the room: `/addwidget URL`. You will then find your integrated Etherpad within the right sidebar in the `Widgets` section.
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ To integrate a standalone Etherpad in a room, create your pad by visiting `https
|
|||||||
|
|
||||||
If you decided to install [Dimension integration manager](configuring-playbook-dimension.md) alongside Etherpad, the Dimension administrator users can configure the default URL template.
|
If you decided to install [Dimension integration manager](configuring-playbook-dimension.md) alongside Etherpad, the Dimension administrator users can configure the default URL template.
|
||||||
|
|
||||||
The Dimension configuration menu can be accessed with the sprocket icon as you begin to add a widget to a room in Element. There you will find the Etherpad Widget Configuration action beneath the _Widgets_ tab.
|
The Dimension configuration menu can be accessed with the sprocket icon as you begin to add a widget to a room in Element Web. There you will find the Etherpad Widget Configuration action beneath the _Widgets_ tab.
|
||||||
|
|
||||||
|
|
||||||
#### Removing the integrated Etherpad chat
|
#### Removing the integrated Etherpad chat
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Setting up the Jitsi video-conferencing platform (optional)
|
# Setting up the Jitsi video-conferencing platform (optional)
|
||||||
|
|
||||||
The playbook can install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with [Element](configuring-playbook-client-element.md).
|
The playbook can install the [Jitsi](https://jitsi.org/) video-conferencing platform and integrate it with Element clients ([Element Web](configuring-playbook-client-element-web.md)/Desktop, Android and iOS).
|
||||||
|
|
||||||
Jitsi installation is **not enabled by default**, because it's not a core component of Matrix services.
|
Jitsi installation is **not enabled by default**, because it's not a core component of Matrix services.
|
||||||
|
|
||||||
@ -257,7 +257,7 @@ traefik_provider_configuration_extension_yaml: |
|
|||||||
|
|
||||||
## (Optional) Enable Gravatar
|
## (Optional) Enable Gravatar
|
||||||
|
|
||||||
In the default Jisti Meet configuration, gravatar.com is enabled as an avatar service. This results in third party request leaking data to gravatar. Since element already sends the url of configured Matrix avatars to Jitsi, we disabled gravatar.
|
In the default Jisti Meet configuration, gravatar.com is enabled as an avatar service. This results in third party request leaking data to gravatar. Since Element clients already send the url of configured Matrix avatars to Jitsi, we disabled gravatar.
|
||||||
|
|
||||||
To enable Gravatar set:
|
To enable Gravatar set:
|
||||||
|
|
||||||
@ -279,7 +279,7 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
|
|||||||
|
|
||||||
You can use the self-hosted Jitsi server in multiple ways:
|
You can use the self-hosted Jitsi server in multiple ways:
|
||||||
|
|
||||||
- **by adding a widget to a room via Element** (the one configured by the playbook at `https://element.example.com`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server.
|
- **by adding a widget to a room via Element Web** (the one configured by the playbook at `https://element.example.com`). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server.
|
||||||
|
|
||||||
- **by adding a widget to a room via the Dimension integration manager**. You'll have to point the widget to your own Jitsi server manually. See our [Dimension integration manager](./configuring-playbook-dimension.md) documentation page for more details. Naturally, Dimension would need to be installed first (the playbook doesn't install it by default).
|
- **by adding a widget to a room via the Dimension integration manager**. You'll have to point the widget to your own Jitsi server manually. See our [Dimension integration manager](./configuring-playbook-dimension.md) documentation page for more details. Naturally, Dimension would need to be installed first (the playbook doesn't install it by default).
|
||||||
|
|
||||||
|
@ -76,9 +76,9 @@ This section details what you can expect when switching to the Matrix Authentica
|
|||||||
|
|
||||||
- ✅ Your **existing login sessions will continue to work** (you won't get logged out). Migration will require a bit of manual work and minutes of downtime, but it's not too bad.
|
- ✅ Your **existing login sessions will continue to work** (you won't get logged out). Migration will require a bit of manual work and minutes of downtime, but it's not too bad.
|
||||||
|
|
||||||
- ✅ Various clients ([Cinny](./configuring-playbook-client-cinny.md), [Element-web](./configuring-playbook-client-element.md), Element X, FluffyChat) will be able to use the **new SSO-based login flow** provided by Matrix Authentication Service
|
- ✅ Various clients ([Cinny](./configuring-playbook-client-cinny.md), [Element Web](./configuring-playbook-client-element-web.md), Element X, FluffyChat) will be able to use the **new SSO-based login flow** provided by Matrix Authentication Service
|
||||||
|
|
||||||
- ✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work. Going through the old login flow does not require users to have a verified email address, as [is the case](https://github.com/element-hq/matrix-authentication-service/issues/1505) for the new SSO-based login flow.
|
- ✅ The **old login flow** (called `m.login.password`) **will still continue to work**, so clients (old Element Web, etc.) and bridges/bots that don't support the new OIDC-based login flow will still work. Going through the old login flow does not require users to have a verified email address, as [is the case](https://github.com/element-hq/matrix-authentication-service/issues/1505) for the new SSO-based login flow.
|
||||||
|
|
||||||
- ✅ [Registering users](./registering-users.md) via **the playbook's `register-user` tag remains unchanged**. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. Registering users via the command-line is no longer done via the `/matrix/synapse/bin/register` script, but via `/matrix/matrix-authentication-service/bin/register-user`.
|
- ✅ [Registering users](./registering-users.md) via **the playbook's `register-user` tag remains unchanged**. The playbook automatically does the right thing regardless of homeserver implementation (Synapse, Dendrite, etc.) and whether MAS is enabled or not. When MAS is enabled, the playbook will forward user-registration requests to MAS. Registering users via the command-line is no longer done via the `/matrix/synapse/bin/register` script, but via `/matrix/matrix-authentication-service/bin/register-user`.
|
||||||
|
|
||||||
|
@ -109,10 +109,10 @@ First check that the Matrix client app you are using supports UnifiedPush. There
|
|||||||
|
|
||||||
Set the ntfy server's log level to 'DEBUG', as shown in the example settings above, and watch the server's logs with `sudo journalctl -fu matrix-ntfy`.
|
Set the ntfy server's log level to 'DEBUG', as shown in the example settings above, and watch the server's logs with `sudo journalctl -fu matrix-ntfy`.
|
||||||
|
|
||||||
To check if UnifiedPush is correctly configured on the client device, look at "Settings -> Notifications -> Notification Targets" in Element-Android or SchildiChat, or "Settings -> Notifications -> Devices" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL.
|
To check if UnifiedPush is correctly configured on the client device, look at "Settings -> Notifications -> Notification Targets" in Element Android or SchildiChat Android, or "Settings -> Notifications -> Devices" in FluffyChat. There should be one entry for each Matrix client app that has enabled push notifications, and when that client is using UnifiedPush you should see a URL that begins with your ntfy server's URL.
|
||||||
|
|
||||||
In the "Notification Targets" screen in Element-Android or SchildiChat, two relevant URLs are shown, "push\_key" and "Url", and both should begin with your ntfy server's URL. If "push\_key" shows your server but "Url" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the "Usage" section above.
|
In the "Notification Targets" screen in Element Android or SchildiChat Android, two relevant URLs are shown, "push\_key" and "Url", and both should begin with your ntfy server's URL. If "push\_key" shows your server but "Url" shows an external server such as `up.schildi.chat` then push notifications will still work but are being routed through that external server before they reach your ntfy server. To rectify that, in SchildiChat (at least around version 1.4.20.sc55) you must enable the `Force custom push gateway` setting as described in the "Usage" section above.
|
||||||
|
|
||||||
If it is not working, useful tools are "Settings -> Notifications -> Re-register push distributor" and "Settings -> Notifications -> Troubleshoot Notifications" in SchildiChat (possibly also Element-Android). In particular the "Endpoint/FCM" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app.
|
If it is not working, useful tools are "Settings -> Notifications -> Re-register push distributor" and "Settings -> Notifications -> Troubleshoot Notifications" in SchildiChat Android (possibly also Element Android). In particular the "Endpoint/FCM" step of that troubleshooter should display your ntfy server's URL that it has discovered from the ntfy client app.
|
||||||
|
|
||||||
The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device.
|
The simple [UnifiedPush troubleshooting](https://unifiedpush.org/users/troubleshooting/) app [UP-Example](https://f-droid.org/en/packages/org.unifiedpush.example/) can be used to manually test UnifiedPush registration and operation on an Android device.
|
||||||
|
@ -4,11 +4,11 @@ By default, this playbook **used to install** the [Riot-web](https://github.com/
|
|||||||
|
|
||||||
Riot has since been [renamed to Element](https://element.io/blog/welcome-to-element/).
|
Riot has since been [renamed to Element](https://element.io/blog/welcome-to-element/).
|
||||||
|
|
||||||
- to learn more about Element and its configuration, see our dedicated [Configuring Element](configuring-playbook-client-element.md) documentation page
|
- to learn more about Element Web and its configuration, see our dedicated [Configuring Element Web](configuring-playbook-client-element-web.md) documentation page
|
||||||
- to learn how to migrate from Riot to Element, see [Migrating to Element](#migrating-to-element) below
|
- to learn how to migrate from Riot to Element Web, see [Migrating to Element Web](#migrating-to-element-web) below
|
||||||
|
|
||||||
|
|
||||||
## Migrating to Element
|
## Migrating to Element Web
|
||||||
|
|
||||||
### Migrating your custom settings
|
### Migrating your custom settings
|
||||||
|
|
||||||
@ -19,11 +19,11 @@ Some other playbook variables (but not all) with `riot` in their name are also r
|
|||||||
|
|
||||||
### Domain migration
|
### Domain migration
|
||||||
|
|
||||||
We used to set up Riot at the `riot.example.com` domain. The playbook now sets up Element at `element.example.com` by default.
|
We used to set up Riot at the `riot.example.com` domain. The playbook now sets up Element Web at `element.example.com` by default.
|
||||||
|
|
||||||
There are a few options for handling this:
|
There are a few options for handling this:
|
||||||
|
|
||||||
- (**avoiding changes** - using the old `riot.example.com` domain and avoiding DNS changes) -- to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element: `matrix_server_fqn_element: "riot.{{ matrix_domain }}"`
|
- (**avoiding changes** - using the old `riot.example.com` domain and avoiding DNS changes) -- to keep using `riot.example.com` instead of `element.example.com`, override the domain at which the playbook serves Element Web: `matrix_server_fqn_element: "riot.{{ matrix_domain }}"`
|
||||||
|
|
||||||
- (**embracing changes** - using only `element.example.com`) - set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case.
|
- (**embracing changes** - using only `element.example.com`) - set up the `element.example.com` DNS record (see [Configuring DNS](configuring-dns.md)). You can drop the `riot.example.com` in this case.
|
||||||
|
|
||||||
|
@ -70,13 +70,13 @@ When you're done with all the configuration you'd like to do, continue with [Ins
|
|||||||
|
|
||||||
Web clients for Matrix that you can host on your own domains.
|
Web clients for Matrix that you can host on your own domains.
|
||||||
|
|
||||||
- [Configuring Element](configuring-playbook-client-element.md), if you're going with the default/recommended client
|
- [Configuring Element Web](configuring-playbook-client-element-web.md), if you're going with the default/recommended client
|
||||||
|
|
||||||
- [Setting up Hydrogen](configuring-playbook-client-hydrogen.md), if you've enabled [Hydrogen](https://github.com/element-hq/hydrogen-web), a lightweight Matrix client with legacy and mobile browser support
|
- [Setting up Hydrogen](configuring-playbook-client-hydrogen.md), if you've enabled [Hydrogen](https://github.com/element-hq/hydrogen-web), a lightweight Matrix client with legacy and mobile browser support
|
||||||
|
|
||||||
- [Setting up Cinny](configuring-playbook-client-cinny.md), if you've enabled [Cinny](https://github.com/ajbura/cinny), a web client focusing primarily on simple, elegant and secure interface
|
- [Setting up Cinny](configuring-playbook-client-cinny.md), if you've enabled [Cinny](https://github.com/ajbura/cinny), a web client focusing primarily on simple, elegant and secure interface
|
||||||
|
|
||||||
- [Setting up SchildiChat](configuring-playbook-client-schildichat.md), if you've enabled [SchildiChat](https://schildi.chat/), a web client based on [Element](https://element.io/) with some extras and tweaks
|
- [Setting up SchildiChat Web](configuring-playbook-client-schildichat-web.md), if you've enabled [SchildiChat Web](https://schildi.chat/), a web client based on [Element Web](https://element.io/) with some extras and tweaks
|
||||||
|
|
||||||
### Authentication and user-related
|
### Authentication and user-related
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ There are 2 types of well-known service discovery that Matrix makes use of:
|
|||||||
|
|
||||||
- (important) **Federation Server discovery** (`/.well-known/matrix/server`) -- assists other servers in the Matrix network with finding your server. Without a proper configuration, your server will effectively not be part of the Matrix network. Learn more in [Introduction to Federation Server Discovery](#introduction-to-federation-server-discovery)
|
- (important) **Federation Server discovery** (`/.well-known/matrix/server`) -- assists other servers in the Matrix network with finding your server. Without a proper configuration, your server will effectively not be part of the Matrix network. Learn more in [Introduction to Federation Server Discovery](#introduction-to-federation-server-discovery)
|
||||||
|
|
||||||
- (not that important) **Client Server discovery** (`/.well-known/matrix/client`) -- assists programs that you use to connect to your server (e.g. Element), so that they can make it more convenient for you by automatically configuring the "Homeserver URL" and "Identity Server URL" addresses. Learn more in [Introduction to Client Server Discovery](#introduction-to-client-server-discovery)
|
- (not that important) **Client Server discovery** (`/.well-known/matrix/client`) -- assists programs that you use to connect to your server (e.g. Element Web), so that they can make it more convenient for you by automatically configuring the "Homeserver URL" and "Identity Server URL" addresses. Learn more in [Introduction to Client Server Discovery](#introduction-to-client-server-discovery)
|
||||||
|
|
||||||
|
|
||||||
## Introduction to Federation Server Discovery
|
## Introduction to Federation Server Discovery
|
||||||
@ -86,7 +86,7 @@ All you need to do is:
|
|||||||
|
|
||||||
- copy `/.well-known/matrix/server` and `/.well-known/matrix/client` from the Matrix server (e.g. `matrix.example.com`) to your base domain's server (`example.com`). You can find these files in the `/matrix/static-files/.well-known/matrix` directory on the Matrix server. They are also accessible on URLs like this: `https://matrix.example.com/.well-known/matrix/server` (same for `client`).
|
- copy `/.well-known/matrix/server` and `/.well-known/matrix/client` from the Matrix server (e.g. `matrix.example.com`) to your base domain's server (`example.com`). You can find these files in the `/matrix/static-files/.well-known/matrix` directory on the Matrix server. They are also accessible on URLs like this: `https://matrix.example.com/.well-known/matrix/server` (same for `client`).
|
||||||
|
|
||||||
- set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Element) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS.
|
- set up the server at your base domain (e.g. `example.com`) so that it adds an extra HTTP header when serving the `/.well-known/matrix/client` file. [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS), the `Access-Control-Allow-Origin` header should be set with a value of `*`. If you don't do this step, web-based Matrix clients (like Element Web) may fail to work. Setting up headers for the `/.well-known/matrix/server` file is not necessary, as this file is only consumed by non-browsers, which don't care about CORS.
|
||||||
|
|
||||||
This is relatively easy to do and possibly your only choice if you can only host static files from the base domain's server. It is, however, **a little fragile**, as future updates performed by this playbook may regenerate the well-known files and you may need to notice that and copy them over again.
|
This is relatively easy to do and possibly your only choice if you can only host static files from the base domain's server. It is, however, **a little fragile**, as future updates performed by this playbook may regenerate the well-known files and you may need to notice that and copy them over again.
|
||||||
|
|
||||||
|
@ -19,10 +19,10 @@ Web clients for Matrix that you can host on your own domains.
|
|||||||
|
|
||||||
| Service | Container image | Default? | Description |
|
| Service | Container image | Default? | Description |
|
||||||
| ------- | --------------- | -------- | ----------- |
|
| ------- | --------------- | -------- | ----------- |
|
||||||
| [Element](configuring-playbook-client-element.md) | [vectorim/element-web](https://hub.docker.com/r/vectorim/element-web/) | ✓ | Web UI, which is configured to connect to your own Synapse server by default |
|
| [Element Web](configuring-playbook-client-element-web.md) | [vectorim/element-web](https://hub.docker.com/r/vectorim/element-web/) | ✓ | Default Matrix web client, configured to connect to your own Synapse server |
|
||||||
| [Hydrogen](configuring-playbook-client-hydrogen.md) | [element-hq/hydrogen-web](https://ghcr.io/element-hq/hydrogen-web) | x | Lightweight Matrix client with legacy and mobile browser support |
|
| [Hydrogen](configuring-playbook-client-hydrogen.md) | [element-hq/hydrogen-web](https://ghcr.io/element-hq/hydrogen-web) | x | Lightweight Matrix client with legacy and mobile browser support |
|
||||||
| [Cinny](configuring-playbook-client-cinny.md) | [ajbura/cinny](https://hub.docker.com/r/ajbura/cinny) | x | Simple, elegant and secure web client |
|
| [Cinny](configuring-playbook-client-cinny.md) | [ajbura/cinny](https://hub.docker.com/r/ajbura/cinny) | x | Simple, elegant and secure web client |
|
||||||
| [SchildiChat](configuring-playbook-client-schildichat.md) | [etke.cc/schildichat-web](https://ghcr.io/etkecc/schildichat-web) | x | Based on Element, with a more traditional instant messaging experience |
|
| [SchildiChat Web](configuring-playbook-client-schildichat-web.md) | [etke.cc/schildichat-web](https://ghcr.io/etkecc/schildichat-web) | x | Based on Element Web, with a more traditional instant messaging experience |
|
||||||
|
|
||||||
## Server Components
|
## Server Components
|
||||||
|
|
||||||
|
10
docs/faq.md
10
docs/faq.md
@ -23,11 +23,11 @@ For a lot more generic questions and answers, see the [matrix.org FAQ](https://m
|
|||||||
|
|
||||||
You don't just use the "email" protocols (SMTP, POP3, IMAP) directly though. There's a *server* somewhere which stores your data (`@gmail.com`, `@yahoo.com`, `@hotmail.com`, `@your-company.com`) and you access it by using these "email" protocols via some *client* program (Outlook, Thunderbird, some website, etc).
|
You don't just use the "email" protocols (SMTP, POP3, IMAP) directly though. There's a *server* somewhere which stores your data (`@gmail.com`, `@yahoo.com`, `@hotmail.com`, `@your-company.com`) and you access it by using these "email" protocols via some *client* program (Outlook, Thunderbird, some website, etc).
|
||||||
|
|
||||||
In the world of the Matrix chat protocol, there are various client programs. The first and currently most full-featured one is called [Element](https://element.io/) (used to be called Riot.im and Vector.im in the past). There are [many other clients](https://matrix.org/clients/). You can switch clients as much as you want until you find the one that is right for you on a given platform (you may use Element on your desktop, but Fluffychat on your phone, etc).
|
In the world of the Matrix chat protocol, there are various client programs. The first and currently most full-featured one is called [Element](https://element.io/) (used to be called Riot.im and Vector.im in the past). There are [many other clients](https://matrix.org/clients/). You can switch clients as much as you want until you find the one that is right for you on a given platform (you may use Element Desktop on your desktop, but Fluffychat on your phone, etc).
|
||||||
|
|
||||||
Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:example.com` can talk to `@alice:example.org`).
|
Matrix is also like email due to the fact that there are many servers around the world which can all talk to each other (you can send email from `@gmail.com` addresses to `@yahoo.com` and `@hotmail.com` addresses). It's the same with Matrix (`@bob:example.com` can talk to `@alice:example.org`).
|
||||||
|
|
||||||
If someone else is hosting your Matrix server (you being `@user:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element.
|
If someone else is hosting your Matrix server (you being `@user:matrix.org` or some other public server like this), all you need is a Matrix client program, like Element Web or Element X Android.
|
||||||
|
|
||||||
If you'd like to host your own server (you being `@user:example.com`), you'd need to set up a Matrix server program, like Synapse.
|
If you'd like to host your own server (you being `@user:example.com`), you'd need to set up a Matrix server program, like Synapse.
|
||||||
|
|
||||||
@ -53,9 +53,9 @@ One of [Matrix](https://matrix.org/)'s distinguishing strengths (compared to oth
|
|||||||
|
|
||||||
There are 3 ways to get into Matrix, depending on your technical ability and needs:
|
There are 3 ways to get into Matrix, depending on your technical ability and needs:
|
||||||
|
|
||||||
- **using the existing default server** - the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element](https://element.io) and many others. Just use Element on the browser via that link (or download the Element app on a smartphone), create an account and start chatting.
|
- **using the existing default server** - the easiest way is to use an existing server. The largest public Matrix server is `matrix.org` and it's configured as a default server in clients such as [Element Web](https://app.element.io) and many others. Just use Element Web on the browser via that link (or [download client apps for your Desktop or smartphone](https://element.io/app-for-productivity)), create an account and start chatting.
|
||||||
|
|
||||||
- **using some other server** - instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Again, you download [Element](https://element.io) or [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login.
|
- **using some other server** - instead of using the largest public server (`matrix.org`), you can use another public one. Here's a [list of public Matrix servers](https://joinmatrix.org/servers/) to choose from. Go to [Element Web](https://app.element.io) or download [some other client](https://matrix.org/clients/) of your choosing and adjust the homeserver URL during login.
|
||||||
|
|
||||||
- **using your own server** - running your own server puts you in ultimate control of your data. It also lets you have your own user identifiers (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server).
|
- **using your own server** - running your own server puts you in ultimate control of your data. It also lets you have your own user identifiers (e.g. `@bob:example.com`). See [How do I set up my own Matrix server](#how-do-i-set-up-my-own-matrix-server).
|
||||||
|
|
||||||
@ -251,7 +251,7 @@ matrix_domain: "matrix.example.com"
|
|||||||
# This is where Matrix services
|
# This is where Matrix services
|
||||||
matrix_server_fqn_matrix: "matrix.example.com"
|
matrix_server_fqn_matrix: "matrix.example.com"
|
||||||
|
|
||||||
# This is where you access the Element web UI from (if enabled via `matrix_client_element_enabled: true`; enabled by default).
|
# This is where you access the Element Web from (if enabled via `matrix_client_element_enabled: true`; enabled by default).
|
||||||
# This and the Matrix FQN (see above) are expected to be on the same server.
|
# This and the Matrix FQN (see above) are expected to be on the same server.
|
||||||
#
|
#
|
||||||
# Feel free to use `element.matrix.example.com`, if you'd prefer that.
|
# Feel free to use `element.matrix.example.com`, if you'd prefer that.
|
||||||
|
@ -111,6 +111,6 @@ After you have started the services and **finalized the installation process** (
|
|||||||
- or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)
|
- or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)
|
||||||
- or learn how to [maintain your server](faq.md#maintenance)
|
- or learn how to [maintain your server](faq.md#maintenance)
|
||||||
- or join some Matrix rooms:
|
- or join some Matrix rooms:
|
||||||
* via the *Explore rooms* feature in Element or some other client, or by discovering them using this [matrix-static list](https://view.matrix.org). **Note**: joining large rooms may overload small servers.
|
* via the *Explore rooms* feature in Element Web or some other clients, or by discovering them using this [matrix-static list](https://view.matrix.org). **Note**: joining large rooms may overload small servers.
|
||||||
* or come say Hi in our support room - [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting.
|
* or come say Hi in our support room - [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting.
|
||||||
- or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))
|
- or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))
|
||||||
|
@ -8,17 +8,17 @@ When setting up some optional features like bots and bridges you will need to pr
|
|||||||
|
|
||||||
The user for whom you want to obtain an access token needs to already exist. You can use this playbook to [register a new user](registering-users.md), if you have not already.
|
The user for whom you want to obtain an access token needs to already exist. You can use this playbook to [register a new user](registering-users.md), if you have not already.
|
||||||
|
|
||||||
Below, we describe 2 ways to generate an access token for a user - using [Element](#obtain-an-access-token-via-element) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password.
|
Below, we describe 2 ways to generate an access token for a user - using [Element Web](#obtain-an-access-token-via-element-web) or [curl](#obtain-an-access-token-via-curl). For both ways you need the user's password.
|
||||||
|
|
||||||
## Obtain an access token via Element
|
## Obtain an access token via Element Web
|
||||||
|
|
||||||
1. In a private browsing session (incognito window), open Element.
|
1. In a private browsing session (incognito window), open Element Web.
|
||||||
2. Log in with the user's credentials.
|
2. Log in with the user's credentials.
|
||||||
3. In the settings page, choose "Help & About", scroll down to the bottom and expand the `Access Token` section (see screenshot below).
|
3. In the settings page, choose "Help & About", scroll down to the bottom and expand the `Access Token` section (see screenshot below).
|
||||||
4. Copy the access token to your configuration.
|
4. Copy the access token to your configuration.
|
||||||
5. Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work.
|
5. Close the private browsing session. **Do not log out**. Logging out will invalidate the token, making it not work.
|
||||||
|
|
||||||
![Obtaining an access token with Element](assets/obtain_admin_access_token_element.png)
|
![Obtaining an access token with Element Web](assets/obtain_admin_access_token_element_web.png)
|
||||||
|
|
||||||
|
|
||||||
## Obtain an access token via curl
|
## Obtain an access token via curl
|
||||||
|
@ -16,7 +16,7 @@ Table of contents:
|
|||||||
|
|
||||||
**Note**: in the commands below, `<your-username>` is just a plain username (like `john`), not your full `@<username>:example.com` identifier.
|
**Note**: in the commands below, `<your-username>` is just a plain username (like `john`), not your full `@<username>:example.com` identifier.
|
||||||
|
|
||||||
After registering a user (using one of the methods below), **you can log in with that user** via the [Element](configuring-playbook-client-element.md) service that this playbook has installed for you at a URL like this: `https://element.example.com/`.
|
After registering a user (using one of the methods below), **you can log in with that user** via the [Element Web](configuring-playbook-client-element-web.md) service that this playbook has installed for you at a URL like this: `https://element.example.com/`.
|
||||||
|
|
||||||
### Registering users via the Ansible playbook
|
### Registering users via the Ansible playbook
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=<your-usern
|
|||||||
|
|
||||||
**Note**: `<your-username>` is just a plain username (like `john`), not your full `@<username>:example.com` identifier.
|
**Note**: `<your-username>` is just a plain username (like `john`), not your full `@<username>:example.com` identifier.
|
||||||
|
|
||||||
**You can then log in with that user** via the Element service that this playbook has created for you at a URL like this: `https://element.example.com/`.
|
**You can then log in with that user** via Element Web that this playbook has created for you at a URL like this: `https://element.example.com/`.
|
||||||
|
|
||||||
|
|
||||||
## Option 2 (if you are using an external Postgres server):
|
## Option 2 (if you are using an external Postgres server):
|
||||||
|
@ -10,5 +10,5 @@ To get started, first follow the [front the integrated reverse-proxy webserver w
|
|||||||
|
|
||||||
`matrix-domain.conf` contains configuration for the Matrix domain, which handles both the Client-Server API (port `443`) and the Matrix Federation API (port `8448`).
|
`matrix-domain.conf` contains configuration for the Matrix domain, which handles both the Client-Server API (port `443`) and the Matrix Federation API (port `8448`).
|
||||||
|
|
||||||
`matrix-client-element.conf` is an example for when you're hosting Element at `element.example.com`.
|
`matrix-client-element.conf` is an example for when you're hosting Element Web at `element.example.com`.
|
||||||
This configuration can also be used as an example for handling other domains, depending on the services you enable with the playbook (e.g. `dimension.example.com`, etc).
|
This configuration can also be used as an example for handling other domains, depending on the services you enable with the playbook (e.g. `dimension.example.com`, etc).
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# This is a sample file demonstrating how to set up reverse-proxy for element.example.com.
|
# This is a sample file demonstrating how to set up reverse-proxy for element.example.com.
|
||||||
# If you're not using Element (`matrix_client_element_enabled: false`), you won't need this.
|
# If you're not using Element Web (`matrix_client_element_enabled: false`), you won't need this.
|
||||||
|
|
||||||
<VirtualHost *:80>
|
<VirtualHost *:80>
|
||||||
ServerName element.example.com
|
ServerName element.example.com
|
||||||
|
@ -16,4 +16,4 @@ Then, adjust your Caddy `docker-compose.yaml` file (if you're using docker-comp
|
|||||||
You can either just use the [Caddyfile](Caddyfile) directly or append its content to your own Caddyfile.
|
You can either just use the [Caddyfile](Caddyfile) directly or append its content to your own Caddyfile.
|
||||||
In both cases make sure to replace all the `example.com` domains with your own domain.
|
In both cases make sure to replace all the `example.com` domains with your own domain.
|
||||||
|
|
||||||
This example does not include additional services like Element, but you should be able copy the first block and replace the `matrix.` subdomain with the subdomain of the some other service (e.g. `element.`).
|
This example does not include additional services like Element Web, but you should be able copy the first block and replace the `matrix.` subdomain with the subdomain of the some other service (e.g. `element.`).
|
||||||
|
@ -14,4 +14,4 @@ Copy the [matrix.conf](matrix.conf) file to your nginx server's filesystem, modi
|
|||||||
|
|
||||||
This configuration **disables SSL certificate retrieval**, so you will **need to obtain SSL certificates manually** (e.g. by using [certbot](https://certbot.eff.org/)) and set the appropriate path in `matrix.conf`. In the example nginx configuration, a single certificate is used for all subdomains (`matrix.example.com`, `element.example.com`, etc.). For your setup, may wish to change this and use separate `server` blocks and separate certificate files for each host.
|
This configuration **disables SSL certificate retrieval**, so you will **need to obtain SSL certificates manually** (e.g. by using [certbot](https://certbot.eff.org/)) and set the appropriate path in `matrix.conf`. In the example nginx configuration, a single certificate is used for all subdomains (`matrix.example.com`, `element.example.com`, etc.). For your setup, may wish to change this and use separate `server` blocks and separate certificate files for each host.
|
||||||
|
|
||||||
Also note that your copy of the `matrix.conf` file has to be adapted to whatever services you are using. For example, remove `element.example.com` from the `server_name` list if you don't use [Element](../../../docs/configuring-playbook-client-element.md) web client or add `dimension.example.com` to it if you do use the [Dimension](../../../docs/configuring-playbook-dimension.md) integration manager.
|
Also note that your copy of the `matrix.conf` file has to be adapted to whatever services you are using. For example, remove `element.example.com` from the `server_name` list if you don't use [Element Web](../../../docs/configuring-playbook-client-element-web.md) client or add `dimension.example.com` to it if you do use the [Dimension](../../../docs/configuring-playbook-dimension.md) integration manager.
|
||||||
|
@ -4445,7 +4445,7 @@ keydb_arch: |-
|
|||||||
#
|
#
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
# By default, this playbook installs the Element web UI on the `matrix_server_fqn_element` domain.
|
# By default, this playbook installs the Element Web on the `matrix_server_fqn_element` domain.
|
||||||
# If you wish to connect to your Matrix server by other means, you may wish to disable this.
|
# If you wish to connect to your Matrix server by other means, you may wish to disable this.
|
||||||
matrix_client_element_enabled: true
|
matrix_client_element_enabled: true
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ matrix_server_fqn_matrix: "matrix.{{ matrix_domain }}"
|
|||||||
# This is where you access federation API.
|
# This is where you access federation API.
|
||||||
matrix_server_fqn_matrix_federation: '{{ matrix_server_fqn_matrix }}'
|
matrix_server_fqn_matrix_federation: '{{ matrix_server_fqn_matrix }}'
|
||||||
|
|
||||||
# This is where you access the Element web UI from (if enabled via matrix_client_element_enabled; enabled by default).
|
# This is where you access the Element Web from (if enabled via matrix_client_element_enabled; enabled by default).
|
||||||
# This and the Matrix FQN (see above) are expected to be on the same server.
|
# This and the Matrix FQN (see above) are expected to be on the same server.
|
||||||
matrix_server_fqn_element: "element.{{ matrix_domain }}"
|
matrix_server_fqn_element: "element.{{ matrix_domain }}"
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ matrix_server_fqn_hydrogen: "hydrogen.{{ matrix_domain }}"
|
|||||||
# This is where you access the Cinny web client from (if enabled via matrix_client_cinny_enabled; disabled by default).
|
# This is where you access the Cinny web client from (if enabled via matrix_client_cinny_enabled; disabled by default).
|
||||||
matrix_server_fqn_cinny: "cinny.{{ matrix_domain }}"
|
matrix_server_fqn_cinny: "cinny.{{ matrix_domain }}"
|
||||||
|
|
||||||
# This is where you access the SchildiChat web client from (if enabled via matrix_client_schildichat_enabled; disabled by default).
|
# This is where you access the SchildiChat Web from (if enabled via matrix_client_schildichat_enabled; disabled by default).
|
||||||
matrix_server_fqn_schildichat: "schildichat.{{ matrix_domain }}"
|
matrix_server_fqn_schildichat: "schildichat.{{ matrix_domain }}"
|
||||||
|
|
||||||
# This is where you access the Buscarron bot from (if enabled via matrix_bot_buscarron_enabled; disabled by default).
|
# This is where you access the Buscarron bot from (if enabled via matrix_bot_buscarron_enabled; disabled by default).
|
||||||
|
@ -23,7 +23,7 @@ matrix_bot_matrix_registration_bot_bot_server: "{{ matrix_homeserver_url }}"
|
|||||||
matrix_bot_matrix_registration_bot_api_base_url: "{{ matrix_homeserver_url }}"
|
matrix_bot_matrix_registration_bot_api_base_url: "{{ matrix_homeserver_url }}"
|
||||||
|
|
||||||
|
|
||||||
# The bot's password (can also be used to login via a client like element)
|
# The bot's password (can also be used to login via a client like Element Web)
|
||||||
matrix_bot_matrix_registration_bot_bot_password: ''
|
matrix_bot_matrix_registration_bot_bot_password: ''
|
||||||
|
|
||||||
# Optional variable that only needs to be set if the bot account is not admin
|
# Optional variable that only needs to be set if the bot account is not admin
|
||||||
|
@ -130,14 +130,14 @@ matrix_client_element_floc_optout_enabled: true
|
|||||||
matrix_client_element_hsts_preload_enabled: false
|
matrix_client_element_hsts_preload_enabled: false
|
||||||
|
|
||||||
matrix_client_element_scheme: https
|
matrix_client_element_scheme: https
|
||||||
# The hostname at which Element is served.
|
# The hostname at which Element Web is served.
|
||||||
matrix_client_element_hostname: "{{ matrix_server_fqn_element }}"
|
matrix_client_element_hostname: "{{ matrix_server_fqn_element }}"
|
||||||
|
|
||||||
# The path at which Element is exposed.
|
# The path at which Element Web is exposed.
|
||||||
# This value must either be `/` or not end with a slash (e.g. `/element`).
|
# This value must either be `/` or not end with a slash (e.g. `/element`).
|
||||||
matrix_client_element_path_prefix: /
|
matrix_client_element_path_prefix: /
|
||||||
|
|
||||||
# Element config.json customizations
|
# Element Web config.json customizations
|
||||||
matrix_client_element_default_server_name: "{{ matrix_domain }}"
|
matrix_client_element_default_server_name: "{{ matrix_domain }}"
|
||||||
matrix_client_element_default_hs_url: ""
|
matrix_client_element_default_hs_url: ""
|
||||||
matrix_client_element_default_is_url: ~
|
matrix_client_element_default_is_url: ~
|
||||||
@ -177,7 +177,7 @@ matrix_client_element_branding_welcome_background_url: ~ # noqa var-naming
|
|||||||
|
|
||||||
matrix_client_element_page_template_welcome_path: "{{ role_path }}/templates/welcome.html.j2"
|
matrix_client_element_page_template_welcome_path: "{{ role_path }}/templates/welcome.html.j2"
|
||||||
|
|
||||||
# By default, there's no Element homepage (when logged in). If you wish to have one,
|
# By default, there's no Element Web homepage (when logged in). If you wish to have one,
|
||||||
# point this to a `home.html` template file on your local filesystem.
|
# point this to a `home.html` template file on your local filesystem.
|
||||||
matrix_client_element_embedded_pages_home_path: ~
|
matrix_client_element_embedded_pages_home_path: ~
|
||||||
|
|
||||||
@ -195,7 +195,7 @@ matrix_client_element_default_country_code: "GB"
|
|||||||
# Controls whether presence will be enabled
|
# Controls whether presence will be enabled
|
||||||
matrix_client_element_enable_presence_by_hs_url: ~
|
matrix_client_element_enable_presence_by_hs_url: ~
|
||||||
|
|
||||||
# Controls whether custom Element themes will be installed.
|
# Controls whether custom Element Web themes will be installed.
|
||||||
# When enabled, all themes found in the `matrix_client_element_themes_repository_url` repository
|
# When enabled, all themes found in the `matrix_client_element_themes_repository_url` repository
|
||||||
# will be installed and enabled automatically.
|
# will be installed and enabled automatically.
|
||||||
matrix_client_element_themes_enabled: false
|
matrix_client_element_themes_enabled: false
|
||||||
@ -205,16 +205,16 @@ matrix_client_element_themes_repository_version: master
|
|||||||
# Controls the default theme
|
# Controls the default theme
|
||||||
matrix_client_element_default_theme: 'light'
|
matrix_client_element_default_theme: 'light'
|
||||||
|
|
||||||
# Controls the `setting_defaults.custom_themes` setting of the Element configuration.
|
# Controls the `setting_defaults.custom_themes` setting of the Element Web configuration.
|
||||||
# You can use this setting to define custom themes.
|
# You can use this setting to define custom themes.
|
||||||
#
|
#
|
||||||
# Also, look at `matrix_client_element_themes_enabled` for a way to pull in a bunch of custom themes automatically.
|
# Also, look at `matrix_client_element_themes_enabled` for a way to pull in a bunch of custom themes automatically.
|
||||||
# If you define your own themes here and set `matrix_client_element_themes_enabled: true`, your themes will be preserved as well.
|
# If you define your own themes here and set `matrix_client_element_themes_enabled: true`, your themes will be preserved as well.
|
||||||
#
|
#
|
||||||
# Note that for a custom theme to work well, all Element instances that you use must have the same theme installed.
|
# Note that for a custom theme to work well, all Element Web instances that you use must have the same theme installed.
|
||||||
matrix_client_element_setting_defaults_custom_themes: [] # noqa var-naming
|
matrix_client_element_setting_defaults_custom_themes: [] # noqa var-naming
|
||||||
|
|
||||||
# Default Element configuration template which covers the generic use case.
|
# Default Element Web configuration template which covers the generic use case.
|
||||||
# You can customize it by controlling the various variables inside it.
|
# You can customize it by controlling the various variables inside it.
|
||||||
#
|
#
|
||||||
# For a more advanced customization, you can extend the default (see `matrix_client_element_configuration_extension_json`)
|
# For a more advanced customization, you can extend the default (see `matrix_client_element_configuration_extension_json`)
|
||||||
@ -224,7 +224,7 @@ matrix_client_element_setting_defaults_custom_themes: [] # noqa var-naming
|
|||||||
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
|
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
|
||||||
matrix_client_element_configuration_default: "{{ lookup('template', 'templates/config.json.j2') }}"
|
matrix_client_element_configuration_default: "{{ lookup('template', 'templates/config.json.j2') }}"
|
||||||
|
|
||||||
# Your custom JSON configuration for Element should go to `matrix_client_element_configuration_extension_json`.
|
# Your custom JSON configuration for Element Web should go to `matrix_client_element_configuration_extension_json`.
|
||||||
# This configuration extends the default starting configuration (`matrix_client_element_configuration_default`).
|
# This configuration extends the default starting configuration (`matrix_client_element_configuration_default`).
|
||||||
#
|
#
|
||||||
# You can override individual variables from the default configuration, or introduce new ones.
|
# You can override individual variables from the default configuration, or introduce new ones.
|
||||||
@ -243,7 +243,7 @@ matrix_client_element_configuration_extension_json: '{}'
|
|||||||
|
|
||||||
matrix_client_element_configuration_extension: "{{ matrix_client_element_configuration_extension_json | from_json if matrix_client_element_configuration_extension_json | from_json is mapping else {} }}"
|
matrix_client_element_configuration_extension: "{{ matrix_client_element_configuration_extension_json | from_json if matrix_client_element_configuration_extension_json | from_json is mapping else {} }}"
|
||||||
|
|
||||||
# Holds the final Element configuration (a combination of the default and its extension).
|
# Holds the final Element Web configuration (a combination of the default and its extension).
|
||||||
# You most likely don't need to touch this variable. Instead, see `matrix_client_element_configuration_default`.
|
# You most likely don't need to touch this variable. Instead, see `matrix_client_element_configuration_default`.
|
||||||
matrix_client_element_configuration: "{{ matrix_client_element_configuration_default | combine(matrix_client_element_configuration_extension, recursive=True) }}"
|
matrix_client_element_configuration: "{{ matrix_client_element_configuration_default | combine(matrix_client_element_configuration_extension, recursive=True) }}"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tasks related to setting up Element themes
|
# Tasks related to setting up Element Web themes
|
||||||
#
|
#
|
||||||
|
|
||||||
- when: matrix_client_element_themes_enabled | bool
|
- when: matrix_client_element_themes_enabled | bool
|
||||||
@ -9,35 +9,35 @@
|
|||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
become: false
|
become: false
|
||||||
block:
|
block:
|
||||||
- name: Ensure Element themes repository is pulled
|
- name: Ensure Element Web themes repository is pulled
|
||||||
ansible.builtin.git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_client_element_themes_repository_url }}"
|
repo: "{{ matrix_client_element_themes_repository_url }}"
|
||||||
version: "{{ matrix_client_element_themes_repository_version }}"
|
version: "{{ matrix_client_element_themes_repository_version }}"
|
||||||
dest: "{{ role_path }}/files/scratchpad/themes"
|
dest: "{{ role_path }}/files/scratchpad/themes"
|
||||||
|
|
||||||
- name: Find all Element theme files
|
- name: Find all Element Web theme files
|
||||||
ansible.builtin.find:
|
ansible.builtin.find:
|
||||||
paths: "{{ role_path }}/files/scratchpad/themes"
|
paths: "{{ role_path }}/files/scratchpad/themes"
|
||||||
patterns: "*.json"
|
patterns: "*.json"
|
||||||
recurse: true
|
recurse: true
|
||||||
register: matrix_client_element_theme_file_list
|
register: matrix_client_element_theme_file_list
|
||||||
|
|
||||||
- name: Read Element theme
|
- name: Read Element Web theme
|
||||||
ansible.builtin.slurp:
|
ansible.builtin.slurp:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
register: "matrix_client_element_theme_file_contents"
|
register: "matrix_client_element_theme_file_contents"
|
||||||
with_items: "{{ matrix_client_element_theme_file_list.files }}"
|
with_items: "{{ matrix_client_element_theme_file_list.files }}"
|
||||||
|
|
||||||
- name: Load Element theme
|
- name: Load Element Web theme
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_client_element_setting_defaults_custom_themes: "{{ matrix_client_element_setting_defaults_custom_themes + [item['content'] | b64decode | from_json] }}" # noqa var-naming
|
matrix_client_element_setting_defaults_custom_themes: "{{ matrix_client_element_setting_defaults_custom_themes + [item['content'] | b64decode | from_json] }}" # noqa var-naming
|
||||||
with_items: "{{ matrix_client_element_theme_file_contents.results }}"
|
with_items: "{{ matrix_client_element_theme_file_contents.results }}"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tasks related to getting rid of Element themes (if it was previously enabled)
|
# Tasks related to getting rid of Element Web themes (if it was previously enabled)
|
||||||
#
|
#
|
||||||
|
|
||||||
- name: Ensure Element themes repository is removed
|
- name: Ensure Element Web themes repository is removed
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ role_path }}/files/scratchpad/themes"
|
path: "{{ role_path }}/files/scratchpad/themes"
|
||||||
state: absent
|
state: absent
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
- ansible.builtin.set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_client_element_url_endpoint_public: "{{ matrix_client_element_scheme }}://{{ matrix_client_element_hostname }}/config.json"
|
matrix_client_element_url_endpoint_public: "{{ matrix_client_element_scheme }}://{{ matrix_client_element_hostname }}/config.json"
|
||||||
|
|
||||||
- name: Check Element
|
- name: Check Element Web
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ matrix_client_element_url_endpoint_public }}"
|
url: "{{ matrix_client_element_url_endpoint_public }}"
|
||||||
follow_redirects: none
|
follow_redirects: none
|
||||||
@ -14,11 +14,11 @@
|
|||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
become: false
|
become: false
|
||||||
|
|
||||||
- name: Fail if Element not working
|
- name: Fail if Element Web not working
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "Failed checking Element is up at `{{ matrix_server_fqn_element }}` (checked endpoint: `{{ matrix_client_element_url_endpoint_public }}`). Is Element running? Is port 443 open in your firewall? Full error: {{ matrix_client_element_self_check_result }}"
|
msg: "Failed checking Element Web is up at `{{ matrix_server_fqn_element }}` (checked endpoint: `{{ matrix_client_element_url_endpoint_public }}`). Is Element Web running? Is port 443 open in your firewall? Full error: {{ matrix_client_element_self_check_result }}"
|
||||||
when: "matrix_client_element_self_check_result.failed or 'json' not in matrix_client_element_self_check_result"
|
when: "matrix_client_element_self_check_result.failed or 'json' not in matrix_client_element_self_check_result"
|
||||||
|
|
||||||
- name: Report working Element
|
- name: Report working Element Web
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "Element at `{{ matrix_server_fqn_element }}` is working (checked endpoint: `{{ matrix_client_element_url_endpoint_public }}`)"
|
msg: "Element Web at `{{ matrix_server_fqn_element }}` is working (checked endpoint: `{{ matrix_client_element_url_endpoint_public }}`)"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure Element paths exists
|
- name: Ensure Element Web paths exists
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
@ -12,7 +12,7 @@
|
|||||||
- {path: "{{ matrix_client_element_docker_src_files_path }}", when: "{{ matrix_client_element_container_image_self_build }}"}
|
- {path: "{{ matrix_client_element_docker_src_files_path }}", when: "{{ matrix_client_element_container_image_self_build }}"}
|
||||||
when: "item.when | bool"
|
when: "item.when | bool"
|
||||||
|
|
||||||
- name: Ensure Element Docker image is pulled
|
- name: Ensure Element Web Docker image is pulled
|
||||||
community.docker.docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ matrix_client_element_docker_image }}"
|
name: "{{ matrix_client_element_docker_image }}"
|
||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||||
@ -24,7 +24,7 @@
|
|||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure Element repository is present on self-build
|
- name: Ensure Element Web repository is present on self-build
|
||||||
ansible.builtin.git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_client_element_container_image_self_build_repo }}"
|
repo: "{{ matrix_client_element_container_image_self_build_repo }}"
|
||||||
dest: "{{ matrix_client_element_docker_src_files_path }}"
|
dest: "{{ matrix_client_element_docker_src_files_path }}"
|
||||||
@ -49,7 +49,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
when: "matrix_client_element_container_image_self_build | bool and matrix_client_element_container_image_self_build_low_memory_system_patch_enabled | bool"
|
when: "matrix_client_element_container_image_self_build | bool and matrix_client_element_container_image_self_build_low_memory_system_patch_enabled | bool"
|
||||||
|
|
||||||
- name: Ensure Element Docker image is built
|
- name: Ensure Element Web Docker image is built
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: |-
|
cmd: |-
|
||||||
{{ devture_systemd_docker_base_host_command_docker }} buildx build
|
{{ devture_systemd_docker_base_host_command_docker }} buildx build
|
||||||
@ -59,7 +59,7 @@
|
|||||||
changed_when: true
|
changed_when: true
|
||||||
when: matrix_client_element_container_image_self_build | bool
|
when: matrix_client_element_container_image_self_build | bool
|
||||||
|
|
||||||
- name: Ensure Element configuration installed
|
- name: Ensure Element Web configuration installed
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_client_element_configuration | to_nice_json }}"
|
content: "{{ matrix_client_element_configuration | to_nice_json }}"
|
||||||
dest: "{{ matrix_client_element_data_path }}/config.json"
|
dest: "{{ matrix_client_element_data_path }}/config.json"
|
||||||
@ -76,7 +76,7 @@
|
|||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure Element config files installed
|
- name: Ensure Element Web config files installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
dest: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
dest: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
||||||
@ -90,7 +90,7 @@
|
|||||||
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
||||||
when: "item.src is not none"
|
when: "item.src is not none"
|
||||||
|
|
||||||
- name: Ensure Element config files removed
|
- name: Ensure Element Web config files removed
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
path: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
||||||
state: absent
|
state: absent
|
||||||
@ -98,7 +98,7 @@
|
|||||||
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
||||||
when: "item.src is none"
|
when: "item.src is none"
|
||||||
|
|
||||||
- name: Ensure Element container network is created
|
- name: Ensure Element Web container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
||||||
name: "{{ matrix_client_element_container_network }}"
|
name: "{{ matrix_client_element_container_network }}"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-element.service"
|
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-element.service"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Ensure Element path doesn't exist
|
- name: Ensure Element Web path doesn't exist
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_client_element_data_path }}"
|
path: "{{ matrix_client_element_data_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: Fail if required Element settings not defined
|
- name: Fail if required Element Web settings not defined
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: >
|
msg: >
|
||||||
You need to define a required configuration setting (`{{ item }}`) for using Element.
|
You need to define a required configuration setting (`{{ item }}`) for using Element Web.
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
with_items:
|
with_items:
|
||||||
- matrix_client_element_default_hs_url
|
- matrix_client_element_default_hs_url
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#jinja2: lstrip_blocks: "True"
|
#jinja2: lstrip_blocks: "True"
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Matrix Element server
|
Description=Matrix Element Web server
|
||||||
{% for service in matrix_client_element_systemd_required_services_list %}
|
{% for service in matrix_client_element_systemd_required_services_list %}
|
||||||
Requires={{ service }}
|
Requires={{ service }}
|
||||||
After={{ service }}
|
After={{ service }}
|
||||||
|
@ -124,14 +124,14 @@ matrix_client_schildichat_floc_optout_enabled: true
|
|||||||
matrix_client_schildichat_hsts_preload_enabled: false
|
matrix_client_schildichat_hsts_preload_enabled: false
|
||||||
|
|
||||||
matrix_client_schildichat_scheme: https
|
matrix_client_schildichat_scheme: https
|
||||||
# The hostname at which SchildiChat is served.
|
# The hostname at which SchildiChat Web is served.
|
||||||
matrix_client_schildichat_hostname: "{{ matrix_server_fqn_schildichat }}"
|
matrix_client_schildichat_hostname: "{{ matrix_server_fqn_schildichat }}"
|
||||||
|
|
||||||
# The path at which SchildiChat is exposed.
|
# The path at which SchildiChat Web is exposed.
|
||||||
# This value must either be `/` or not end with a slash (e.g. `/schildichat`).
|
# This value must either be `/` or not end with a slash (e.g. `/schildichat`).
|
||||||
matrix_client_schildichat_path_prefix: /
|
matrix_client_schildichat_path_prefix: /
|
||||||
|
|
||||||
# SchildiChat config.json customizations
|
# SchildiChat Web config.json customizations
|
||||||
matrix_client_schildichat_default_server_name: "{{ matrix_domain }}"
|
matrix_client_schildichat_default_server_name: "{{ matrix_domain }}"
|
||||||
matrix_client_schildichat_default_hs_url: ""
|
matrix_client_schildichat_default_hs_url: ""
|
||||||
matrix_client_schildichat_default_is_url: ~
|
matrix_client_schildichat_default_is_url: ~
|
||||||
@ -145,9 +145,9 @@ matrix_client_schildichat_integrations_jitsi_widget_url: "https://scalar.vector.
|
|||||||
matrix_client_schildichat_permalink_prefix: "https://matrix.to" # noqa var-naming
|
matrix_client_schildichat_permalink_prefix: "https://matrix.to" # noqa var-naming
|
||||||
matrix_client_schildichat_bug_report_endpoint_url: "https://element.io/bugreports/submit"
|
matrix_client_schildichat_bug_report_endpoint_url: "https://element.io/bugreports/submit"
|
||||||
matrix_client_schildichat_show_lab_settings: true # noqa var-naming
|
matrix_client_schildichat_show_lab_settings: true # noqa var-naming
|
||||||
# SchildiChat public room directory server(s)
|
# SchildiChat Web public room directory server(s)
|
||||||
matrix_client_schildichat_room_directory_servers: ['matrix.org']
|
matrix_client_schildichat_room_directory_servers: ['matrix.org']
|
||||||
# Branding of SchildiChat
|
# Branding of SchildiChat Web
|
||||||
matrix_client_schildichat_brand: "schildichat"
|
matrix_client_schildichat_brand: "schildichat"
|
||||||
|
|
||||||
# URL to Logo on welcome page
|
# URL to Logo on welcome page
|
||||||
@ -171,7 +171,7 @@ matrix_client_schildichat_branding_welcome_background_url: ~ # noqa var-naming
|
|||||||
|
|
||||||
matrix_client_schildichat_page_template_welcome_path: "{{ role_path }}/templates/welcome.html.j2"
|
matrix_client_schildichat_page_template_welcome_path: "{{ role_path }}/templates/welcome.html.j2"
|
||||||
|
|
||||||
# By default, there's no SchildiChat homepage (when logged in). If you wish to have one,
|
# By default, there's no SchildiChat Web homepage (when logged in). If you wish to have one,
|
||||||
# point this to a `home.html` template file on your local filesystem.
|
# point this to a `home.html` template file on your local filesystem.
|
||||||
matrix_client_schildichat_embedded_pages_home_path: ~
|
matrix_client_schildichat_embedded_pages_home_path: ~
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ matrix_client_schildichat_default_country_code: "GB"
|
|||||||
# Controls whether presence will be enabled
|
# Controls whether presence will be enabled
|
||||||
matrix_client_schildichat_enable_presence_by_hs_url: ~
|
matrix_client_schildichat_enable_presence_by_hs_url: ~
|
||||||
|
|
||||||
# Controls whether custom SchildiChat themes will be installed.
|
# Controls whether custom SchildiChat Web themes will be installed.
|
||||||
# When enabled, all themes found in the `matrix_client_schildichat_themes_repository_url` repository
|
# When enabled, all themes found in the `matrix_client_schildichat_themes_repository_url` repository
|
||||||
# will be installed and enabled automatically.
|
# will be installed and enabled automatically.
|
||||||
matrix_client_schildichat_themes_enabled: false
|
matrix_client_schildichat_themes_enabled: false
|
||||||
@ -199,16 +199,16 @@ matrix_client_schildichat_themes_repository_version: master
|
|||||||
# Controls the default theme
|
# Controls the default theme
|
||||||
matrix_client_schildichat_default_theme: 'light'
|
matrix_client_schildichat_default_theme: 'light'
|
||||||
|
|
||||||
# Controls the `setting_defaults.custom_themes` setting of the SchildiChat configuration.
|
# Controls the `setting_defaults.custom_themes` setting of the SchildiChat Web configuration.
|
||||||
# You can use this setting to define custom themes.
|
# You can use this setting to define custom themes.
|
||||||
#
|
#
|
||||||
# Also, look at `matrix_client_schildichat_themes_enabled` for a way to pull in a bunch of custom themes automatically.
|
# Also, look at `matrix_client_schildichat_themes_enabled` for a way to pull in a bunch of custom themes automatically.
|
||||||
# If you define your own themes here and set `matrix_client_schildichat_themes_enabled: true`, your themes will be preserved as well.
|
# If you define your own themes here and set `matrix_client_schildichat_themes_enabled: true`, your themes will be preserved as well.
|
||||||
#
|
#
|
||||||
# Note that for a custom theme to work well, all SchildiChat instances that you use must have the same theme installed.
|
# Note that for a custom theme to work well, all SchildiChat Web instances that you use must have the same theme installed.
|
||||||
matrix_client_schildichat_setting_defaults_custom_themes: [] # noqa var-naming
|
matrix_client_schildichat_setting_defaults_custom_themes: [] # noqa var-naming
|
||||||
|
|
||||||
# Default SchildiChat configuration template which covers the generic use case.
|
# Default SchildiChat Web configuration template which covers the generic use case.
|
||||||
# You can customize it by controlling the various variables inside it.
|
# You can customize it by controlling the various variables inside it.
|
||||||
#
|
#
|
||||||
# For a more advanced customization, you can extend the default (see `matrix_client_schildichat_configuration_extension_json`)
|
# For a more advanced customization, you can extend the default (see `matrix_client_schildichat_configuration_extension_json`)
|
||||||
@ -218,7 +218,7 @@ matrix_client_schildichat_setting_defaults_custom_themes: [] # noqa var-naming
|
|||||||
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
|
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
|
||||||
matrix_client_schildichat_configuration_default: "{{ lookup('template', 'templates/config.json.j2') }}"
|
matrix_client_schildichat_configuration_default: "{{ lookup('template', 'templates/config.json.j2') }}"
|
||||||
|
|
||||||
# Your custom JSON configuration for SchildiChat should go to `matrix_client_schildichat_configuration_extension_json`.
|
# Your custom JSON configuration for SchildiChat Web should go to `matrix_client_schildichat_configuration_extension_json`.
|
||||||
# This configuration extends the default starting configuration (`matrix_client_schildichat_configuration_default`).
|
# This configuration extends the default starting configuration (`matrix_client_schildichat_configuration_default`).
|
||||||
#
|
#
|
||||||
# You can override individual variables from the default configuration, or introduce new ones.
|
# You can override individual variables from the default configuration, or introduce new ones.
|
||||||
@ -237,7 +237,7 @@ matrix_client_schildichat_configuration_extension_json: '{}'
|
|||||||
|
|
||||||
matrix_client_schildichat_configuration_extension: "{{ matrix_client_schildichat_configuration_extension_json | from_json if matrix_client_schildichat_configuration_extension_json | from_json is mapping else {} }}"
|
matrix_client_schildichat_configuration_extension: "{{ matrix_client_schildichat_configuration_extension_json | from_json if matrix_client_schildichat_configuration_extension_json | from_json is mapping else {} }}"
|
||||||
|
|
||||||
# Holds the final SchildiChat configuration (a combination of the default and its extension).
|
# Holds the final SchildiChat Web configuration (a combination of the default and its extension).
|
||||||
# You most likely don't need to touch this variable. Instead, see `matrix_client_schildichat_configuration_default`.
|
# You most likely don't need to touch this variable. Instead, see `matrix_client_schildichat_configuration_default`.
|
||||||
matrix_client_schildichat_configuration: "{{ matrix_client_schildichat_configuration_default | combine(matrix_client_schildichat_configuration_extension, recursive=True) }}"
|
matrix_client_schildichat_configuration: "{{ matrix_client_schildichat_configuration_default | combine(matrix_client_schildichat_configuration_extension, recursive=True) }}"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tasks related to setting up SchildiChat themes
|
# Tasks related to setting up SchildiChat Web themes
|
||||||
#
|
#
|
||||||
|
|
||||||
- when: matrix_client_schildichat_themes_enabled | bool
|
- when: matrix_client_schildichat_themes_enabled | bool
|
||||||
@ -9,35 +9,35 @@
|
|||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
become: false
|
become: false
|
||||||
block:
|
block:
|
||||||
- name: Ensure SchildiChat themes repository is pulled
|
- name: Ensure SchildiChat Web themes repository is pulled
|
||||||
ansible.builtin.git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_client_schildichat_themes_repository_url }}"
|
repo: "{{ matrix_client_schildichat_themes_repository_url }}"
|
||||||
version: "{{ matrix_client_schildichat_themes_repository_version }}"
|
version: "{{ matrix_client_schildichat_themes_repository_version }}"
|
||||||
dest: "{{ role_path }}/files/scratchpad/themes"
|
dest: "{{ role_path }}/files/scratchpad/themes"
|
||||||
|
|
||||||
- name: Find all SchildiChat theme files
|
- name: Find all SchildiChat Web theme files
|
||||||
ansible.builtin.find:
|
ansible.builtin.find:
|
||||||
paths: "{{ role_path }}/files/scratchpad/themes"
|
paths: "{{ role_path }}/files/scratchpad/themes"
|
||||||
patterns: "*.json"
|
patterns: "*.json"
|
||||||
recurse: true
|
recurse: true
|
||||||
register: matrix_client_schildichat_theme_file_list
|
register: matrix_client_schildichat_theme_file_list
|
||||||
|
|
||||||
- name: Read SchildiChat theme
|
- name: Read SchildiChat Web theme
|
||||||
ansible.builtin.slurp:
|
ansible.builtin.slurp:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
register: "matrix_client_schildichat_theme_file_contents"
|
register: "matrix_client_schildichat_theme_file_contents"
|
||||||
with_items: "{{ matrix_client_schildichat_theme_file_list.files }}"
|
with_items: "{{ matrix_client_schildichat_theme_file_list.files }}"
|
||||||
|
|
||||||
- name: Load SchildiChat theme
|
- name: Load SchildiChat Web theme
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
matrix_client_schildichat_setting_defaults_custom_themes: "{{ matrix_client_schildichat_setting_defaults_custom_themes + [item['content'] | b64decode | from_json] }}" # noqa var-naming
|
matrix_client_schildichat_setting_defaults_custom_themes: "{{ matrix_client_schildichat_setting_defaults_custom_themes + [item['content'] | b64decode | from_json] }}" # noqa var-naming
|
||||||
with_items: "{{ matrix_client_schildichat_theme_file_contents.results }}"
|
with_items: "{{ matrix_client_schildichat_theme_file_contents.results }}"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tasks related to getting rid of SchildiChat themes (if it was previously enabled)
|
# Tasks related to getting rid of SchildiChat Web themes (if it was previously enabled)
|
||||||
#
|
#
|
||||||
|
|
||||||
- name: Ensure SchildiChat themes repository is removed
|
- name: Ensure SchildiChat Web themes repository is removed
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ role_path }}/files/scratchpad/themes"
|
path: "{{ role_path }}/files/scratchpad/themes"
|
||||||
state: absent
|
state: absent
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
- ansible.builtin.set_fact:
|
- ansible.builtin.set_fact:
|
||||||
matrix_client_schildichat_url_endpoint_public: "{{ matrix_client_schildichat_scheme }}://{{ matrix_client_schildichat_hostname }}/config.json"
|
matrix_client_schildichat_url_endpoint_public: "{{ matrix_client_schildichat_scheme }}://{{ matrix_client_schildichat_hostname }}/config.json"
|
||||||
|
|
||||||
- name: Check SchildiChat
|
- name: Check SchildiChat Web
|
||||||
ansible.builtin.uri:
|
ansible.builtin.uri:
|
||||||
url: "{{ matrix_client_schildichat_url_endpoint_public }}"
|
url: "{{ matrix_client_schildichat_url_endpoint_public }}"
|
||||||
follow_redirects: none
|
follow_redirects: none
|
||||||
@ -14,11 +14,11 @@
|
|||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
become: false
|
become: false
|
||||||
|
|
||||||
- name: Fail if SchildiChat not working
|
- name: Fail if SchildiChat Web not working
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "Failed checking SchildiChat is up at `{{ matrix_server_fqn_schildichat }}` (checked endpoint: `{{ matrix_client_schildichat_url_endpoint_public }}`). Is SchildiChat running? Is port 443 open in your firewall? Full error: {{ matrix_client_schildichat_self_check_result }}"
|
msg: "Failed checking SchildiChat Web is up at `{{ matrix_server_fqn_schildichat }}` (checked endpoint: `{{ matrix_client_schildichat_url_endpoint_public }}`). Is SchildiChat Web running? Is port 443 open in your firewall? Full error: {{ matrix_client_schildichat_self_check_result }}"
|
||||||
when: "matrix_client_schildichat_self_check_result.failed or 'json' not in matrix_client_schildichat_self_check_result"
|
when: "matrix_client_schildichat_self_check_result.failed or 'json' not in matrix_client_schildichat_self_check_result"
|
||||||
|
|
||||||
- name: Report working SchildiChat
|
- name: Report working SchildiChat Web
|
||||||
ansible.builtin.debug:
|
ansible.builtin.debug:
|
||||||
msg: "SchildiChat at `{{ matrix_server_fqn_schildichat }}` is working (checked endpoint: `{{ matrix_client_schildichat_url_endpoint_public }}`)"
|
msg: "SchildiChat Web at `{{ matrix_server_fqn_schildichat }}` is working (checked endpoint: `{{ matrix_client_schildichat_url_endpoint_public }}`)"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure SchildiChat paths exists
|
- name: Ensure SchildiChat Web paths exists
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
@ -12,7 +12,7 @@
|
|||||||
- {path: "{{ matrix_client_schildichat_docker_src_files_path }}", when: "{{ matrix_client_schildichat_container_image_self_build }}"}
|
- {path: "{{ matrix_client_schildichat_docker_src_files_path }}", when: "{{ matrix_client_schildichat_container_image_self_build }}"}
|
||||||
when: "item.when | bool"
|
when: "item.when | bool"
|
||||||
|
|
||||||
- name: Ensure SchildiChat Docker image is pulled
|
- name: Ensure SchildiChat Web Docker image is pulled
|
||||||
community.docker.docker_image:
|
community.docker.docker_image:
|
||||||
name: "{{ matrix_client_schildichat_docker_image }}"
|
name: "{{ matrix_client_schildichat_docker_image }}"
|
||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
||||||
@ -24,7 +24,7 @@
|
|||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
||||||
until: result is not failed
|
until: result is not failed
|
||||||
|
|
||||||
- name: Ensure SchildiChat repository is present on self-build
|
- name: Ensure SchildiChat Web repository is present on self-build
|
||||||
ansible.builtin.git:
|
ansible.builtin.git:
|
||||||
repo: "{{ matrix_client_schildichat_container_image_self_build_repo }}"
|
repo: "{{ matrix_client_schildichat_container_image_self_build_repo }}"
|
||||||
dest: "{{ matrix_client_schildichat_docker_src_files_path }}"
|
dest: "{{ matrix_client_schildichat_docker_src_files_path }}"
|
||||||
@ -49,7 +49,7 @@
|
|||||||
mode: '0644'
|
mode: '0644'
|
||||||
when: "matrix_client_schildichat_container_image_self_build | bool and matrix_client_schildichat_container_image_self_build_low_memory_system_patch_enabled | bool"
|
when: "matrix_client_schildichat_container_image_self_build | bool and matrix_client_schildichat_container_image_self_build_low_memory_system_patch_enabled | bool"
|
||||||
|
|
||||||
- name: Ensure SchildiChat Docker image is built
|
- name: Ensure SchildiChat Web Docker image is built
|
||||||
ansible.builtin.command:
|
ansible.builtin.command:
|
||||||
cmd: |-
|
cmd: |-
|
||||||
{{ devture_systemd_docker_base_host_command_docker }} buildx build
|
{{ devture_systemd_docker_base_host_command_docker }} buildx build
|
||||||
@ -59,7 +59,7 @@
|
|||||||
changed_when: true
|
changed_when: true
|
||||||
when: matrix_client_schildichat_container_image_self_build | bool
|
when: matrix_client_schildichat_container_image_self_build | bool
|
||||||
|
|
||||||
- name: Ensure SchildiChat configuration installed
|
- name: Ensure SchildiChat Web configuration installed
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ matrix_client_schildichat_configuration | to_nice_json }}"
|
content: "{{ matrix_client_schildichat_configuration | to_nice_json }}"
|
||||||
dest: "{{ matrix_client_schildichat_data_path }}/config.json"
|
dest: "{{ matrix_client_schildichat_data_path }}/config.json"
|
||||||
@ -76,7 +76,7 @@
|
|||||||
owner: "{{ matrix_user_username }}"
|
owner: "{{ matrix_user_username }}"
|
||||||
group: "{{ matrix_user_groupname }}"
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
|
||||||
- name: Ensure SchildiChat config files installed
|
- name: Ensure SchildiChat Web config files installed
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
dest: "{{ matrix_client_schildichat_data_path }}/{{ item.name }}"
|
dest: "{{ matrix_client_schildichat_data_path }}/{{ item.name }}"
|
||||||
@ -89,7 +89,7 @@
|
|||||||
- {src: "{{ matrix_client_schildichat_embedded_pages_home_path }}", name: "home.html"}
|
- {src: "{{ matrix_client_schildichat_embedded_pages_home_path }}", name: "home.html"}
|
||||||
when: "item.src is not none"
|
when: "item.src is not none"
|
||||||
|
|
||||||
- name: Ensure SchildiChat config files removed
|
- name: Ensure SchildiChat Web config files removed
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_client_schildichat_data_path }}/{{ item.name }}"
|
path: "{{ matrix_client_schildichat_data_path }}/{{ item.name }}"
|
||||||
state: absent
|
state: absent
|
||||||
@ -97,7 +97,7 @@
|
|||||||
- {src: "{{ matrix_client_schildichat_embedded_pages_home_path }}", name: "home.html"}
|
- {src: "{{ matrix_client_schildichat_embedded_pages_home_path }}", name: "home.html"}
|
||||||
when: "item.src is none"
|
when: "item.src is none"
|
||||||
|
|
||||||
- name: Ensure SchildiChat container network is created
|
- name: Ensure SchildiChat Web container network is created
|
||||||
community.general.docker_network:
|
community.general.docker_network:
|
||||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
||||||
name: "{{ matrix_client_schildichat_container_network }}"
|
name: "{{ matrix_client_schildichat_container_network }}"
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-schildichat.service"
|
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-schildichat.service"
|
||||||
state: absent
|
state: absent
|
||||||
|
|
||||||
- name: Ensure SchildiChat path doesn't exist
|
- name: Ensure SchildiChat Web path doesn't exist
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ matrix_client_schildichat_data_path }}"
|
path: "{{ matrix_client_schildichat_data_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed Schildichat settings
|
- name: (Deprecation) Catch and report renamed SchildiChat Web settings
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
Your configuration contains a variable, which now has a different name.
|
Your configuration contains a variable, which now has a different name.
|
||||||
@ -9,10 +9,10 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- {'old': 'matrix_client_schildichat_welcome_user_id', 'new': '<removed>'}
|
- {'old': 'matrix_client_schildichat_welcome_user_id', 'new': '<removed>'}
|
||||||
|
|
||||||
- name: Fail if required SchildiChat settings not defined
|
- name: Fail if required SchildiChat Web settings not defined
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: >
|
msg: >
|
||||||
You need to define a required configuration setting (`{{ item }}`) for using SchildiChat.
|
You need to define a required configuration setting (`{{ item }}`) for using SchildiChat Web.
|
||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
with_items:
|
with_items:
|
||||||
- matrix_client_schildichat_default_hs_url
|
- matrix_client_schildichat_default_hs_url
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#jinja2: lstrip_blocks: "True"
|
#jinja2: lstrip_blocks: "True"
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Matrix SchildiChat server
|
Description=Matrix SchildiChat Web server
|
||||||
{% for service in matrix_client_schildichat_systemd_required_services_list %}
|
{% for service in matrix_client_schildichat_systemd_required_services_list %}
|
||||||
Requires={{ service }}
|
Requires={{ service }}
|
||||||
After={{ service }}
|
After={{ service }}
|
||||||
|
@ -31,7 +31,7 @@ homeserver:
|
|||||||
accessToken: {{ matrix_dimension_access_token | to_json }}
|
accessToken: {{ matrix_dimension_access_token | to_json }}
|
||||||
|
|
||||||
# These users can modify the integrations this Dimension supports.
|
# These users can modify the integrations this Dimension supports.
|
||||||
# To access the admin interface, open Dimension in Element and click the settings icon.
|
# To access the admin interface, open Dimension in Element Web and click the settings icon.
|
||||||
admins: {{ matrix_dimension_admins | to_json }}
|
admins: {{ matrix_dimension_admins | to_json }}
|
||||||
|
|
||||||
# IPs and CIDR ranges listed here will be blocked from being widgets.
|
# IPs and CIDR ranges listed here will be blocked from being widgets.
|
||||||
|
@ -169,26 +169,26 @@ matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: ""
|
|||||||
matrix_static_files_file_matrix_client_property_io_element_e2ee_entries_enabled: "{{ not matrix_static_files_file_matrix_client_property_io_element_e2ee_default or matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_required or matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_setup_methods | length > 0 }}"
|
matrix_static_files_file_matrix_client_property_io_element_e2ee_entries_enabled: "{{ not matrix_static_files_file_matrix_client_property_io_element_e2ee_default or matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_required or matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_setup_methods | length > 0 }}"
|
||||||
|
|
||||||
# Controls the io.element.e2ee/default property in the /.well-known/matrix/client file,
|
# Controls the io.element.e2ee/default property in the /.well-known/matrix/client file,
|
||||||
# which instructs Element whether it should use End-to-End Encryption by default.
|
# which instructs Element clients whether they should use End-to-End Encryption by default.
|
||||||
# Setting this to false will update `/.well-known/matrix/client` and tell Element clients to avoid E2EE.
|
# Setting this to false will update `/.well-known/matrix/client` and tell Element clients to avoid E2EE.
|
||||||
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
||||||
matrix_static_files_file_matrix_client_property_io_element_e2ee_default: true
|
matrix_static_files_file_matrix_client_property_io_element_e2ee_default: true
|
||||||
|
|
||||||
# Controls the io.element.e2ee/secure_backup_required property in the /.well-known/matrix/client file,
|
# Controls the io.element.e2ee/secure_backup_required property in the /.well-known/matrix/client file,
|
||||||
# which instructs Element whether it should require a secure backup set up before Element can be used.
|
# which instructs Element clients whether they should require a secure backup set up before they can be used.
|
||||||
# Setting this to true will update `/.well-known/matrix/client` and tell Element require a secure backup.
|
# Setting this to true will update `/.well-known/matrix/client` and tell Element clients require a secure backup.
|
||||||
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
||||||
matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_required: false
|
matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_required: false
|
||||||
|
|
||||||
# Controls the io.element.e2ee/secure_backup_setup_methods property in the /.well-known/matrix/client file,
|
# Controls the io.element.e2ee/secure_backup_setup_methods property in the /.well-known/matrix/client file,
|
||||||
# which instructs Element which backup methods from ["key", "passphrase"] should be used.
|
# which instructs Element clients which backup methods from ["key", "passphrase"] should be used.
|
||||||
# When an empty list is provided, Element defaults to using both.
|
# When an empty list is provided, Element clients default to using both.
|
||||||
# Setting this to other than empty will update `/.well-known/matrix/client` and tell Element which method to use.
|
# Setting this to other than empty will update `/.well-known/matrix/client` and tell Element clients which method to use.
|
||||||
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
||||||
matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_setup_methods: []
|
matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_setup_methods: []
|
||||||
|
|
||||||
# Controls the io.element.e2ee/force_disable property in the /.well-known/matrix/client file,
|
# Controls the io.element.e2ee/force_disable property in the /.well-known/matrix/client file,
|
||||||
# which can be set to `true` to instruct Element whether to disable End-to-End Encryption by default
|
# which can be set to `true` to instruct Element clients whether to disable End-to-End Encryption by default
|
||||||
# and to not show encryption related-settings in room settings.
|
# and to not show encryption related-settings in room settings.
|
||||||
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
|
||||||
matrix_static_files_file_matrix_client_property_io_element_e2ee_force_disable: false
|
matrix_static_files_file_matrix_client_property_io_element_e2ee_force_disable: false
|
||||||
|
Loading…
Reference in New Issue
Block a user