- 
Install RustC:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh - 
Install apt dependencies:
 
sudo apt install build-essential python3-dev libffi-dev \
  python3-pip python3-setuptools sqlite3 \
  libssl-dev virtualenv libjpeg-dev libxslt1-dev libicu-dev- Go to where you want to install the application. For me this is just making a folder where I am currently:
 
mkdir synapse
cd synapse- Create a python venv: 
python -m venv . - Enter the virtual environment (venv): 
source bin/activate - Upgrade 
pipandsetuptools: 
pip install --upgrade pip
pip install --upgrade setuptools- 
Install synapse:
pip install matrix-synapse - 
Generate the
homeserver.yamlfile using the generator command (make sure to change<server name>to the domain you are hosting on): 
python3 -m synapse.app.homeserver -c homeserver.yaml --generate-config --server-name=<server name> --report-stats=no- That's it. Now run it using 
synctl start 
If you need to restart the server, just run synctl restart while your python virtual environment (venv) is active.