User:Maffblaster/Projects/Matrix

Article description::maff's landing page for setting up a Matrix server on Gentoo.

Todo

 * Finish writing ebuild for www-servers/synapse.
 * Ebuild will need a user account.
 * Research and add relevant USE flags.
 * Tests? Should they be included? They don't seem necessary, but would conclude a 'perfect' ebuild.

Community resources

 * Nico's overlay contains a synapse build: https://gitlab.com/deepbluev7/neko
 * Gentoo project overlay for various matrix clients - https://gitweb.gentoo.org/repo/proj/matrix.git/

Done

 * Registered on Libera.Chat test bridging functionality.

Project links

 * https://github.com/matrix-org/synapse - The reference 'home server' (implemented in Python).
 * https://github.com/matrix-org/dendrite - 'Home server' implemented in go (future primary implementation).
 * https://github.com/matrix-org/gomatrix - A client (written in go).
 * https://github.com/matrix-org/matrix-doc - The docs (including the spec).
 * https://conduit.rs/ - Matrix server written in Rust.

Dendrite
Writing go ebuilds guide could be useful to help package this.

Setup
Instructions for getting a basic Dendrite test server setup:

Edit the configuration file to include the domain name of the hosting server:

The rest of the defaults in the file should work for this setup. Save and exit the file, then start the server:

Insecure and secure connections for the server should run respectively on port 8008 (HTTP) and 8448 (HTTPS) by default.

Now with the server running, open a new terminal console to the current working directory and create some test users:

Testing
can be used to test the API from the command line for both self-signed and signed certificates. For example, to verify the

Setup from source
Instructions for getting a basic Dendrite test server setup can be found upstream. Essentially:


 * Clone the code:
 * Create a python virtualenv and generate a configuration file.
 * Create a database.
 * Verify correct settings in the file. By default the locale is C.UTF8 and text search configuration is English, which should be fine.
 * Configure the server:
 * Start the service:
 * systemd (optional) #
 * Manually start the service (optional):
 * Create database user and database :
 * Configure a signed TLS certificate.
 * Start the home server.
 * Register a user.
 * Configure a signed TLS certificate.
 * Start the home server.
 * Register a user.
 * Register a user.

To consider:


 * URL previews.

Database maintenance

 * State table compressor

Clients
Some clients are being maintained in the matrix overlay other are in the guru overlay.

Prerequisite:

Install the overlay:

weechat-matrix
Emerge (requires matrix overlay above):

Manual installation (Python implementation)
Getting the weechat-matrix client (Python implementation) manually installed on Gentoo:

Prerequisites:

The plugin should install to the current user's directory as.

On the weechat buffer, it is wise to restart weechat (using the command works nicely), then attempt to load the plugin:

After the plugin has been successfully loaded, help can be obtained via:

Add custom server:

Manual installation (Rust implementation)
Getting the weechat-matrix client (Rust implementation) manually installed on Gentoo:

Prerequisites:

External references

 * https://brendan.abolivier.bzh/enter-the-matrix/ - Blog post reviewing and explaining the inner workings of Matrix.