3.1 KiB
Prerequisites
-
An x86 server running CentOS (7 only for now; 8 is not yet supported), Debian (9/Stretch+) or Ubuntu (16.04+). This playbook doesn't support running on ARM so it won't work on a Raspberry Pi. We only strive to support released stable versions of distributions, not betas or pre-releases. This playbook can take over your whole server or co-exist with other services that you have there.
- for ancient distributions like CentOS 7.0, we recommend that you do a manual systemd-journald adjustment. Because the Synapse chat server is incredibly chatty when it comes to logging (here's one such issue describing the problem), be advised that systemd's journald default logging restrictions may not be high enough to capture all log messages generated by Synapse. This is especially true if you've got a busy (Synapse) server. We advise that you manually add
RateLimitInterval=0
andRateLimitBurst=0
under[Storage]
in the/etc/systemd/journald.conf
file, followed by restarting the logging service (systemctl restart systemd-journald
).
- for ancient distributions like CentOS 7.0, we recommend that you do a manual systemd-journald adjustment. Because the Synapse chat server is incredibly chatty when it comes to logging (here's one such issue describing the problem), be advised that systemd's journald default logging restrictions may not be high enough to capture all log messages generated by Synapse. This is especially true if you've got a busy (Synapse) server. We advise that you manually add
-
Python being installed on the server. Most distributions install Python by default, but some don't (e.g. Ubuntu 18.04) and require manual installation (something like
apt-get install python
). -
a
cron
-like tool installed on the server such ascron
oranacron
to automatically schedule the Let's Encrypt SSL certificates's renewal. This can be ignored if you use your own SSL certificates. -
the Ansible program being installed on your own computer. It's used to run this playbook and configures your server for you. Take a look at our guide about Ansible for more information, as well as version requirements and alternative ways to run Ansible.
-
either the
dig
tool orpython-dns
installed on your own computer. Used later on, by the playbook's services check feature. -
an HTTPS-capable web server at the base domain name (
<your-domain>
) which is capable of serving static files. Unless you decide to Serve the base domain from the Matrix server or alternatively, to use DNS SRV records for Server Delegation. -
properly configured DNS records for
<your-domain>
(details in Configuring DNS) -
some TCP/UDP ports open. This playbook configures the server's internal firewall for you. In most cases, you don't need to do anything special. But if your server is running behind another firewall, you'd need to open these ports:
80/tcp
(HTTP webserver),443/tcp
(HTTPS webserver),3478/tcp
(TURN over TCP),3478/udp
(TURN over UDP),5349/tcp
(TURN over TCP),5349/udp
(TURN over UDP),8448/tcp
(Matrix Federation API HTTPS webserver), the range49152-49172/udp
(TURN over UDP).
When ready to proceed, continue with Configuring DNS.