* Add construct for cactus comments role * Adjust config files * Add docker self build to defaults * Adjust tasks * Fix smaller syntax errors * Fix env argument * Add tmp path to allow container writing there Background why I did this: https://docs.gunicorn.org/en/stable/settings.html#worker-tmp-dir * Change port back to 5000 as not configurable in container * Try to add appservice config file for synapse to use * Inject appservice file * Correct copied variable name * Comment out unused app service file injection would need mounting the appservice file to the synapse container i guess * Move role before synapse to be able to inject during runtime * Remove unused parts * Change default user id to mirror official docs * Add docs * Update roles/matrix-cactus-comments/tasks/setup_install.yml Co-authored-by: Slavi Pantaleev <slavi@devture.com> * Update roles/matrix-cactus-comments/templates/cactus_appservice.yaml.j2 Co-authored-by: Slavi Pantaleev <slavi@devture.com> * Generate secrets if necessary, adjust docs * Rename cactusbot userid * Shorten salt strings Co-authored-by: Slavi Pantaleev <slavi@devture.com> * Use tmpfs instead of persistent mount * Remove proxy option as it is nonsense * Add download and serving of cc-client files * Add documentation on client * Clarify docs a bit * Add nginx proxy to required services Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Use container address Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Correct comment of user id Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Use releases or local distributed client Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Move homeserver url to defaults Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Correct truth value Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Add documentation of variables Co-authored-by: Slavi Pantaleev <slavi@devture.com> * Tabs vs. spaces Co-authored-by: Slavi Pantaleev <slavi@devture.com> * Make nginx root configurable Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Complete ake nginx root configurable Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Fix file permission Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> * Fix lint errors Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> Signed-off-by: Julian-Samuel Gebühr <julian-samuel@gebuehr.net> Co-authored-by: Slavi Pantaleev <slavi@devture.com>
9 KiB
Configuring the Ansible playbook
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.
Other configuration options
Additional useful services
-
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)
Core service adjustments
-
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)
Server connectivity
-
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)
Authentication and user-related
-
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 Synapse Simple Antispam (optional, advanced)
-
Setting up Matrix Corporal (optional, advanced)
Bridging other networks
-
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)
Bots
-
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)
Backups
-
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)
Other specialized services
-
Setting up the Sygnal push gateway (optional)
-
Setting up a Cactus Comments server - a federated comment system built on Matrix (optional)