To configure the playbook, you need to have done the following things:
- have a server where Matrix services will run
- configured your DNS records
- retrieved the playbook's source code to your computer
You can then follow these steps inside the playbook directory:
-
create a directory to hold your configuration (
mkdir inventory/host_vars/matrix.<your-domain>
) -
copy the sample configuration file (
cp examples/vars.yml inventory/host_vars/matrix.<your-domain>/vars.yml
) -
edit the configuration file (
inventory/host_vars/matrix.<your-domain>/vars.yml
) to your liking. You may also take a look at the variousroles/ROLE_NAME_HERE/defaults/main.yml
files and see if there's something you'd like to copy over and override in yourvars.yml
configuration file. -
copy the sample inventory hosts file (
cp examples/hosts inventory/hosts
) -
edit the inventory hosts file (
inventory/hosts
) to your liking -
(optional, advanced) to run Ansible against multiple servers with different
sudo
credentials, you can copy the sample inventory hosts yaml file for each of your hosts: (cp examples/host.yml inventory/my_host1.yml
…) and use theansible-all-hosts.sh
script in the installation step.
For a basic Matrix installation, that's all you need. For a more custom setup, see the Other configuration options below.
When you're done with all the configuration you'd like to do, continue with Installing.
-
Setting up the Dimension Integration Manager (optional, but recommended; after installing)
-
Setting up Dynamic DNS (optional)
-
Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server (optional)
-
Configuring Synapse (optional)
-
Configuring Element (optional)
-
Storing Matrix media files on Amazon S3 (optional)
-
Using an external PostgreSQL server (optional)
-
Adjusting SSL certificate retrieval (optional, advanced)
-
Serving your base domain using this playbook's nginx server (optional)
-
Configure Nginx (optional, advanced)
-
Using your own webserver, instead of this playbook's nginx proxy (optional, advanced)
-
Adjusting TURN server configuration (optional, advanced)
-
Enabling Telemetry for your Matrix server (optional)
-
Controlling Matrix federation (optional)
-
Adjusting email-sending settings (optional)
-
Setting up Hydrogen - a new lightweight matrix client with legacy and mobile browser support (optional)
-
Setting up Cinny - a web client focusing primarily on simple, elegant and secure interface (optional)
-
Setting up an ma1sd Identity Server (optional)
-
Setting up Synapse Admin (optional)
-
Setting up matrix-registration (optional)
-
Setting up the REST authentication password provider module (optional, advanced)
-
Setting up the Shared Secret Auth password provider module (optional, advanced)
-
Setting up the LDAP password provider module (optional, advanced)
-
Setting up the ldap-registration-proxy (optional, advanced)
-
Setting up Synapse Simple Antispam (optional, advanced)
-
Setting up Matrix Corporal (optional, advanced)
-
Setting up Mautrix Discord bridging (optional)
-
Setting up Mautrix Telegram bridging (optional)
-
Setting up Mautrix Whatsapp bridging (optional)
-
Setting up Mautrix Facebook bridging (optional)
-
Setting up Mautrix Hangouts bridging (optional)
-
Setting up Mautrix Google Chat bridging (optional)
-
Setting up Mautrix Instagram bridging (optional)
-
Setting up Mautrix Twitter bridging (optional)
-
Setting up Mautrix Signal bridging (optional)
-
Setting up Appservice IRC bridging (optional)
-
Setting up Appservice Discord bridging (optional)
-
Setting up Appservice Slack bridging (optional)
-
Setting up Appservice Webhooks bridging (optional)
-
Setting up Appservice Kakaotalk bridging (optional)
-
Setting up Beeper LinkedIn bridging (optional)
-
Setting up matrix-hookshot - a bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA. (optional)
-
Setting up MX Puppet Skype bridging(optional) - this component has been broken for a long time, so it has been removed from the playbook. Consider Setting up Go Skype Bridge bridging -
Setting up MX Puppet Slack bridging (optional)
-
Setting up MX Puppet Instagram bridging (optional)
-
Setting up MX Puppet Twitter bridging (optional)
-
Setting up MX Puppet Discord bridging (optional)
-
Setting up MX Puppet GroupMe bridging (optional)
-
Setting up MX Puppet Steam bridging (optional)
-
Setting up Go Skype Bridge bridging (optional)
-
Setting up Email2Matrix (optional)
-
Setting up Postmoogle email bridging (optional)
-
Setting up Matrix SMS bridging (optional)
-
Setting up Heisenbridge bouncer-style IRC bridging (optional)
-
Setting up matrix-reminder-bot - a bot to remind you about stuff (optional)
-
Setting up matrix-registration-bot - a bot to create and manage registration tokens to invite users (optional)
-
Setting up maubot - a plugin-based Matrix bot system (optional)
-
Setting up honoroit - a helpdesk bot (optional)
-
Setting up Go-NEB - an extensible multifunctional bot (optional)
-
Setting up Mjolnir - a moderation tool/bot (optional)
-
Setting up Buscarron - a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room (optional)
-
Setting up borg backup - a full Matrix server backup solution, including the Postgres database (optional)
-
Setting up postgres backup - a Postgres-database backup solution (note: does not include other files) (optional)
-
Setting up the Sygnal push gateway (optional)
-
Setting up a Cactus Comments server - a federated comment system built on Matrix (optional)