Install Matrix Synapse Home Server on Debian Linux
i12bretro
#Matrix #Synapse #Element #SecureCommunication
Full steps can be found at https://i12bretro.github.io/tutorials/0640.html
What is Matrix?
Matrix is an open source project that publishes the Matrix open standard for secure, decentralised, real-time communication, and its Apache licensed reference implementations. -https://matrix.org
What is Synapse?
Synapse is a Matrix "homeserver" implementation developed by the matrix.org core team, written in Python 3/Twisted. -https://github.com/matrix-org/synapse/
Installing Synapse
- Log into the Linux device
- Run the following commands in terminal
# update software repositories
sudo apt update
# install available software updates
sudo apt upgrade
# install prerequisites
sudo apt install lsb‐release wget openssl apt‐transport‐https ‐y
# add matrix gpg key
sudo wget ‐O /usr/share/keyrings/matrix‐org‐archive‐keyring.gpg https://packages.matrix.org/debian/matrix‐org‐archive‐keyring.gpg
# add matrix apt repository
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
# update software repositories
sudo apt update
# install synapse
sudo apt install matrix‐synapse‐py3 ‐y
# when prompted, enter localhost as the name of the matrix server
# choose whether to share statistics with matrix
# install postgresql
sudo apt install libpq5 postgresql ‐y
# enable the postgresql service and start it
sudo systemctl enable postgresql ‐‐now
# connect to postgresql
sudo ‐u postgres psql postgres
# create synapse database user
create user matrix_synapse_rw with password 'm@trix!';
# create matrix_synapse database
create database matrix_synapse with encoding='UTF8' lc_collate='C' lc_ctype='C' template='template0' owner='matrix_synapse_rw';
# close postgresql connection
exit
# edit the homeserver.yaml file
sudo nano /etc/matrix‐synapse/homeserver.yaml
- Press CTRL+W and search for name: sqlite3
- Comment out the sqlite database parameters by adding a # to the beginning of each of the lines
- Paste the following psycopg2 (Postgres) database connection and update it as needed:
database:
name: psycopg2
txn_limit: 10000
args:
user: matrix_synapse_rw
password: m@trix!
database: matrix_synapse
host: localhost
port: 5432
cp_min: 5
cp_max: 10
- Press CTRL+W and search for name: bind_addresses: [
- Edit the bind addresses value to add either the host servers IP address or set the value to '0.0.0.0' to listen on all interfaces
- Add the following line at the bottom of the file
suppress_key_server_warning: true
- Press CTRL+O, Enter, CTRL+X to write the changes
- Continue with the following commands
# generate a randoml string
RANDOMSTRING=$(openssl rand ‐base64 30)
# write the random string as registration_shared_secret
echo "registration_shared_secret: $RANDOMSTRING" | sudo tee ‐a /etc/matrix‐synapse/homeserver.yaml > /dev/null
# restart the synapse service
sudo systemctl restart matrix‐synapse
# create a new synapse user
register_new_matrix_user ‐c /etc/matrix‐synapse/homeserver.yaml http://localhost:8008
- Enter a username, enter and confirm the password and choose if the user is an admin
- At this point the Matrix Synapse server is running, but only over http
- Open a web browser and navigate to the http://DNSorIP:8008
- A message stating It works! Synapse is running should be displayed
Testing with Element Desktop Application (Optional)
- To test the Synapse server with a matrix client, continue with the following commands
# add the element.io gpg key
sudo wget ‐O /usr/share/keyrings/element‐io‐archive‐keyring.gpg https://packages.element.io/debian/element‐io‐archive‐keyring.gpg
# add the element.io apt repository
echo "deb [signed‐by=/usr/share/keyrings/element‐io‐archive‐keyring.gpg] https://packages.element.io/debian/ default main" | sudo tee /etc/apt/sources.list.d/element‐io.list
# update software repositories
sudo apt update
# install element desktop
sudo apt install element‐desktop ‐y
- Launch the Element application
- Click Sign In
- Click the Edit link next to matrix.org
- Select Other homeserver > type http://DNSorIP:8008 > Click Continue
- Login using the Synapse username and password created earlier
....Full steps can be found on GitHub [link at the top]
### Connect with me and others ###
★ Discord: https://discord.com/invite/EzenvmSHW8
★ Reddit: https://reddit.com/r/i12bretro
★ Twitter: https://twitter.com/i12bretro
...
https://www.youtube.com/watch?v=KIBg6Ai-xRg
69550330 Bytes