Matrix
The IRC of the future!
Installing for a domain
Create a 'matrix' subdomain A record for the domain, e.g. matrix.example.com then add a .well-known to https://example.com/.well-known/matrix/server that returns MIME type application/json with {"m.server": "matrix.example.com:443"} and a client in the same directory with {"m.homeserver": {"base_url": "https://matrix.example.com"}}
Create a user and empty database on PostgreSQL. For some (possibly retarded?) reason, this requires C style collation, which means we have to use template0:
createuser -SDRP <dbuser> createdb -O <dbuser> -T template0 --lc-ctype=C --lc-collate=C -E UTF-8 <dbname>
Then, add the upstream matrix apt repositories:
sudo apt install -y lsb-release wget apt-transport-https sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg \ https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" \ | sudo tee /etc/apt/sources.list.d/matrix-org.list sudo apt update sudo apt install matrix-synapse-py3
Point Apache or nginx at it as a reverse proxy to localhost:8008 and configure for SSL on port 443.
Configuration
Edit /etc/matrix-synapse/homeserver.yaml for database and SMTP server details.
Registering new users
The Debian package disables online user registration by default; use the register_new_matrix_user command from the cli, or enable it in the configuration. Set the registration_shared_secret to something long, and use:
register_new_matrix_user -u <username> -c /etc/matrix-synapse/homeserver.yaml https://matrix.example.com
References
- Matrix.org documentation, "Installing Synapse"