Element Web
Element is one of the most active player in the world of Matrix clients. They offer various clients for different platforms. to be honest, the clients are not always the top of the class, but the web client is nice and very easy to install and use.
Offering a web client for Matrix is good, because that will let you and your users login to Matrix from wherever.
Installation
Installing bare-metal is the way to go. Element Web is a pure client-side web application, so all you need to do it basically download and serve it.
See here.
Download latest release tarball from here and decompress it:
su - conduwuit wget https://github.com/element-hq/element-web/releases/<< version >> /element-<< version >>.tar.gz tar xvf element-<< version >>.tar.gz ln -s element-<< version >> element-web
Configuration
Rename the file called config.sample.json to config.json inside the element-« version » folder and edit accordingly, and to be sure to backup it properly, i suggest to move it to /data/conduwuit:
cd /data/daemons/conduwuit/element-web cp config.sample.json /data/conduwuit/element-config.json ln -s /data/conduwuit/element-config.json config.json
At the very least perform the following edits:
"default_server_config": { "m.homeserver": { "base_url": "https://chat.mydomain.com", "server_name": "chat.mydomain.com" }, "disable_custom_urls": true, "disable_guests": true,
at the beginning of the file. I suggest to disable both custom URLs and guests, to avoid your web instance to be used too openly. Please note that this does not mean that your instance will be used: Element X is a javascript app that works in the browser of the use anyway and the user will always be allowed to login to any Matrix server. In this case, no traffic will go trough your server of course.
Reverse Proxy
The only setup needed here is to actually serve the ElementWeb root folder at some path in your NGINX. The relevant part of the file is:
location / { root /data/daemons/conduwuit/element-web; }