This repository has been archived by the owner on Apr 26, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Update installation instructions #10919
Merged
Merged
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
2e660a7
Prefer prebuilt packages over PyPI
richvdh b2efbc4
Update python dependency
richvdh 8533af9
We only have amd64 debs
richvdh a8b36e5
Create 10919.doc
richvdh a68cb87
fix link in README
richvdh 6695f9e
Update docs/setup/installation.md
richvdh File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,19 +18,177 @@ that your email address is probably `user@example.com` rather than | |
|
||
## Installing Synapse | ||
|
||
### Installing from source | ||
### Prebuilt packages | ||
|
||
Prebuilt packages are available for a number of platforms. These are recommended | ||
for most users. | ||
|
||
#### Docker images and Ansible playbooks | ||
|
||
There is an official synapse image available at | ||
<https://hub.docker.com/r/matrixdotorg/synapse> which can be used with | ||
the docker-compose file available at | ||
[contrib/docker](https://github.com/matrix-org/synapse/tree/develop/contrib/docker). | ||
Further information on this including configuration options is available in the README | ||
on hub.docker.com. | ||
|
||
Alternatively, Andreas Peters (previously Silvio Fricke) has contributed a | ||
Dockerfile to automate a synapse server in a single Docker image, at | ||
<https://hub.docker.com/r/avhost/docker-matrix/tags/> | ||
|
||
Slavi Pantaleev has created an Ansible playbook, | ||
which installs the offical Docker image of Matrix Synapse | ||
along with many other Matrix-related services (Postgres database, Element, coturn, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should that be |
||
ma1sd, SSL support, etc.). | ||
For more details, see | ||
<https://github.com/spantaleev/matrix-docker-ansible-deploy> | ||
|
||
#### Debian/Ubuntu | ||
|
||
##### Matrix.org packages | ||
|
||
Matrix.org provides Debian/Ubuntu packages of Synapse via | ||
<https://packages.matrix.org/debian/>. To install the latest release: | ||
|
||
```sh | ||
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 | ||
``` | ||
|
||
Packages are also published for release candidates. To enable the prerelease | ||
channel, add `prerelease` to the `sources.list` line. For example: | ||
|
||
```sh | ||
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 prerelease" | | ||
sudo tee /etc/apt/sources.list.d/matrix-org.list | ||
sudo apt update | ||
sudo apt install matrix-synapse-py3 | ||
``` | ||
|
||
The fingerprint of the repository signing key (as shown by `gpg | ||
/usr/share/keyrings/matrix-org-archive-keyring.gpg`) is | ||
`AAF9AE843A7584B5A3E4CD2BCF45A512DE2DA058`. | ||
|
||
##### Downstream Debian packages | ||
|
||
We do not recommend using the packages from the default Debian `buster` | ||
repository at this time, as they are old and suffer from known security | ||
vulnerabilities. You can install the latest version of Synapse from | ||
[our repository](#matrixorg-packages) or from `buster-backports`. Please | ||
see the [Debian documentation](https://backports.debian.org/Instructions/) | ||
for information on how to use backports. | ||
|
||
If you are using Debian `sid` or testing, Synapse is available in the default | ||
repositories and it should be possible to install it simply with: | ||
|
||
```sh | ||
sudo apt install matrix-synapse | ||
``` | ||
|
||
##### Downstream Ubuntu packages | ||
|
||
We do not recommend using the packages in the default Ubuntu repository | ||
at this time, as they are old and suffer from known security vulnerabilities. | ||
The latest version of Synapse can be installed from [our repository](#matrixorg-packages). | ||
|
||
#### Fedora | ||
|
||
Synapse is in the Fedora repositories as `matrix-synapse`: | ||
|
||
```sh | ||
sudo dnf install matrix-synapse | ||
``` | ||
|
||
Oleg Girko provides Fedora RPMs at | ||
<https://obs.infoserver.lv/project/monitor/matrix-synapse> | ||
|
||
#### OpenSUSE | ||
|
||
Synapse is in the OpenSUSE repositories as `matrix-synapse`: | ||
|
||
```sh | ||
sudo zypper install matrix-synapse | ||
``` | ||
|
||
#### SUSE Linux Enterprise Server | ||
|
||
Unofficial package are built for SLES 15 in the openSUSE:Backports:SLE-15 repository at | ||
<https://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-15/standard/> | ||
|
||
#### ArchLinux | ||
|
||
The quickest way to get up and running with ArchLinux is probably with the community package | ||
<https://www.archlinux.org/packages/community/any/matrix-synapse/>, which should pull in most of | ||
the necessary dependencies. | ||
|
||
pip may be outdated (6.0.7-1 and needs to be upgraded to 6.0.8-1 ): | ||
|
||
```sh | ||
sudo pip install --upgrade pip | ||
``` | ||
|
||
If you encounter an error with lib bcrypt causing an Wrong ELF Class: | ||
ELFCLASS32 (x64 Systems), you may need to reinstall py-bcrypt to correctly | ||
compile it under the right architecture. (This should not be needed if | ||
installing under virtualenv): | ||
|
||
```sh | ||
sudo pip uninstall py-bcrypt | ||
sudo pip install py-bcrypt | ||
``` | ||
|
||
#### Void Linux | ||
|
||
Synapse can be found in the void repositories as 'synapse': | ||
|
||
```sh | ||
xbps-install -Su | ||
xbps-install -S synapse | ||
``` | ||
|
||
#### FreeBSD | ||
|
||
Synapse can be installed via FreeBSD Ports or Packages contributed by Brendan Molloy from: | ||
|
||
- Ports: `cd /usr/ports/net-im/py-matrix-synapse && make install clean` | ||
- Packages: `pkg install py37-matrix-synapse` | ||
|
||
#### OpenBSD | ||
|
||
As of OpenBSD 6.7 Synapse is available as a pre-compiled binary. The filesystem | ||
underlying the homeserver directory (defaults to `/var/synapse`) has to be | ||
mounted with `wxallowed` (cf. `mount(8)`), so creating a separate filesystem | ||
and mounting it to `/var/synapse` should be taken into consideration. | ||
|
||
Installing Synapse: | ||
|
||
```sh | ||
doas pkg_add synapse | ||
``` | ||
|
||
#### NixOS | ||
|
||
Robin Lambertz has packaged Synapse for NixOS at: | ||
<https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/matrix-synapse.nix> | ||
|
||
|
||
### Installing as a python module from PyPI | ||
richvdh marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
(Prebuilt packages are available for some platforms - see [Prebuilt packages](#prebuilt-packages).) | ||
It's also possible to install Synapse as a Python module from PyPI. | ||
|
||
When installing from source please make sure that the [Platform-specific prerequisites](#platform-specific-prerequisites) are already installed. | ||
When following this route please make sure that the [Platform-specific prerequisites](#platform-specific-prerequisites) are already installed. | ||
|
||
System requirements: | ||
|
||
- POSIX-compliant system (tested on Linux & OS X) | ||
- Python 3.5.2 or later, up to Python 3.9. | ||
- At least 1GB of free RAM if you want to join large public rooms like #matrix:matrix.org | ||
|
||
|
||
To install the Synapse homeserver run: | ||
|
||
```sh | ||
|
@@ -203,164 +361,6 @@ be found at <https://docs.microsoft.com/en-us/windows/wsl/install-win10> for | |
Windows 10 and <https://docs.microsoft.com/en-us/windows/wsl/install-on-server> | ||
for Windows Server. | ||
|
||
### Prebuilt packages | ||
|
||
As an alternative to installing from source, prebuilt packages are available | ||
for a number of platforms. | ||
|
||
#### Docker images and Ansible playbooks | ||
|
||
There is an official synapse image available at | ||
<https://hub.docker.com/r/matrixdotorg/synapse> which can be used with | ||
the docker-compose file available at | ||
[contrib/docker](https://github.com/matrix-org/synapse/tree/develop/contrib/docker). | ||
Further information on this including configuration options is available in the README | ||
on hub.docker.com. | ||
|
||
Alternatively, Andreas Peters (previously Silvio Fricke) has contributed a | ||
Dockerfile to automate a synapse server in a single Docker image, at | ||
<https://hub.docker.com/r/avhost/docker-matrix/tags/> | ||
|
||
Slavi Pantaleev has created an Ansible playbook, | ||
which installs the offical Docker image of Matrix Synapse | ||
along with many other Matrix-related services (Postgres database, Element, coturn, | ||
ma1sd, SSL support, etc.). | ||
For more details, see | ||
<https://github.com/spantaleev/matrix-docker-ansible-deploy> | ||
|
||
#### Debian/Ubuntu | ||
|
||
##### Matrix.org packages | ||
|
||
Matrix.org provides Debian/Ubuntu packages of Synapse via | ||
<https://packages.matrix.org/debian/>. To install the latest release: | ||
|
||
```sh | ||
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 | ||
``` | ||
|
||
Packages are also published for release candidates. To enable the prerelease | ||
channel, add `prerelease` to the `sources.list` line. For example: | ||
|
||
```sh | ||
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 prerelease" | | ||
sudo tee /etc/apt/sources.list.d/matrix-org.list | ||
sudo apt update | ||
sudo apt install matrix-synapse-py3 | ||
``` | ||
|
||
The fingerprint of the repository signing key (as shown by `gpg | ||
/usr/share/keyrings/matrix-org-archive-keyring.gpg`) is | ||
`AAF9AE843A7584B5A3E4CD2BCF45A512DE2DA058`. | ||
|
||
##### Downstream Debian packages | ||
|
||
We do not recommend using the packages from the default Debian `buster` | ||
repository at this time, as they are old and suffer from known security | ||
vulnerabilities. You can install the latest version of Synapse from | ||
[our repository](#matrixorg-packages) or from `buster-backports`. Please | ||
see the [Debian documentation](https://backports.debian.org/Instructions/) | ||
for information on how to use backports. | ||
|
||
If you are using Debian `sid` or testing, Synapse is available in the default | ||
repositories and it should be possible to install it simply with: | ||
|
||
```sh | ||
sudo apt install matrix-synapse | ||
``` | ||
|
||
##### Downstream Ubuntu packages | ||
|
||
We do not recommend using the packages in the default Ubuntu repository | ||
at this time, as they are old and suffer from known security vulnerabilities. | ||
The latest version of Synapse can be installed from [our repository](#matrixorg-packages). | ||
|
||
#### Fedora | ||
|
||
Synapse is in the Fedora repositories as `matrix-synapse`: | ||
|
||
```sh | ||
sudo dnf install matrix-synapse | ||
``` | ||
|
||
Oleg Girko provides Fedora RPMs at | ||
<https://obs.infoserver.lv/project/monitor/matrix-synapse> | ||
|
||
#### OpenSUSE | ||
|
||
Synapse is in the OpenSUSE repositories as `matrix-synapse`: | ||
|
||
```sh | ||
sudo zypper install matrix-synapse | ||
``` | ||
|
||
#### SUSE Linux Enterprise Server | ||
|
||
Unofficial package are built for SLES 15 in the openSUSE:Backports:SLE-15 repository at | ||
<https://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-15/standard/> | ||
|
||
#### ArchLinux | ||
|
||
The quickest way to get up and running with ArchLinux is probably with the community package | ||
<https://www.archlinux.org/packages/community/any/matrix-synapse/>, which should pull in most of | ||
the necessary dependencies. | ||
|
||
pip may be outdated (6.0.7-1 and needs to be upgraded to 6.0.8-1 ): | ||
|
||
```sh | ||
sudo pip install --upgrade pip | ||
``` | ||
|
||
If you encounter an error with lib bcrypt causing an Wrong ELF Class: | ||
ELFCLASS32 (x64 Systems), you may need to reinstall py-bcrypt to correctly | ||
compile it under the right architecture. (This should not be needed if | ||
installing under virtualenv): | ||
|
||
```sh | ||
sudo pip uninstall py-bcrypt | ||
sudo pip install py-bcrypt | ||
``` | ||
|
||
#### Void Linux | ||
|
||
Synapse can be found in the void repositories as 'synapse': | ||
|
||
```sh | ||
xbps-install -Su | ||
xbps-install -S synapse | ||
``` | ||
|
||
#### FreeBSD | ||
|
||
Synapse can be installed via FreeBSD Ports or Packages contributed by Brendan Molloy from: | ||
|
||
- Ports: `cd /usr/ports/net-im/py-matrix-synapse && make install clean` | ||
- Packages: `pkg install py37-matrix-synapse` | ||
|
||
#### OpenBSD | ||
|
||
As of OpenBSD 6.7 Synapse is available as a pre-compiled binary. The filesystem | ||
underlying the homeserver directory (defaults to `/var/synapse`) has to be | ||
mounted with `wxallowed` (cf. `mount(8)`), so creating a separate filesystem | ||
and mounting it to `/var/synapse` should be taken into consideration. | ||
|
||
Installing Synapse: | ||
|
||
```sh | ||
doas pkg_add synapse | ||
``` | ||
|
||
#### NixOS | ||
|
||
Robin Lambertz has packaged Synapse for NixOS at: | ||
<https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/matrix-synapse.nix> | ||
|
||
## Setting up Synapse | ||
|
||
Once you have installed synapse as above, you will need to configure it. | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hadn't seen this syntax before. I thought it'd make markdown sad because I think you can embed HTML in markdown? But apparently it's A Thing in GFM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FWIW: I don't think this is GFM-specific. (indeed, CommonMark seems to have it for example).
It's commonly used for e-mail addresses in my experience, probably because e-mail itself formats things like
From: Example <example@example.org>
; I would guess<..>
carried through as a plaintext convention that wound up in Markdown?