Synapse is your personal gateway to the Matrix federation. With it, you can communicate with anyone, anywhere, without restriction, without permission, independently, and in total, trustless privacy.
Warning! Synapse is an incredibly powerful and complex piece of software. Please read these instructions carefully. If you find yourself in trouble, the best thing to do is stop clicking and contact support.
- Federation: Enabling Federation allows you to discover and join rooms on other Tor-enabled servers and vice versa. If you want a totally private chat server, you should disable Federation. Either way, you will not be able to interact with rooms and people on clearnet servers, such as matrix.org.
- Email Notifications: If you wish to receive email notification from your Synapse server, you must provide your own SMTP credentials.
- Advanced - Enable Registration: If you enable registration, anyone will be able to create an account on your Synapse server. It is highly recommended that you disable registrations whenever possible. The only time we recommend turning it on is if you quickly want multiple people to create accounts on your server, then you should turn it back off.
With registrations disabled, the only way to create an account on your Server is through the Admin Portal.
- In your Synapse dashboard, click "Launch UI"
- Log in with your Admin Username and Password (located in Properties). For "Homeserver URL", do not enter your Homeserver address. Instead, enter your Admin Portal URL. Hint: this is the URL currently showing in your browser URL bar, minus the path. e.g. https://exampleaddress.local or http://exampleaddress.onion.
- In the "Users" tab, you will notice the admin user already created.
- In the "Users" tab, click "+ Create"
- Choose a User-ID, Displayname, and Password for your account. Optionally enter an email address under the 3PIDs section. It is not recommended to make this user a Server Administrator, as it is best to limit admin access.
In order to use your new Synapse server, you will need to select a client app. We recommend:
These instructions are written for Element, but they are identical for SchildiChat.-
- Visit https://app.element.io from a Tor-enabled browser (Tor Browser or Firefox, but not Brave)
- Click
Sign In
orCreate Account
, depending on whether or not you have already created your account - Beneath "Host Account On" (following Create Account), or "Homeserver" (following Sign In), click
Edit
and change "matrix.org" tohttp://your_synapse_address_from_interfaces.onion
- Complete sign in or account creation
Note: Element Web is not mobile responsive, meaning it does not adapt well to smaller screen sizes. You should only use it from desktop/laptop browsers, not from your mobile device
-
- Configure your macOS device to run Tor following these instructions
- Download Element for macOS
- Click
Sign In
orCreate Account
, depending on whether or not you have already created your account - Beneath "Host Account On" (following Create Account), or "Homeserver" (following Sign In), click
Edit
and change "matrix.org" tohttp://your_synapse_address_from_interfaces.onion
- Complete sign in or account creation
-
- Configure your Linux device to run Tor following these instructions
- Download Element for Linux
- Because Element app is not Tor-enabled by default, you must launch it from the command line using the
following command:
element-desktop --proxy-server=socks5://127.0.0.1:9050
- Click
Sign In
orCreate Account
, depending on whether or not you have already created your account - Beneath "Host Account On" (following Create Account), or "Homeserver" (following Sign In), click
Edit
and change "matrix.org" tohttp://your_synapse_address_from_interfaces.onion
- Complete sign in or account creation
-
- Configure your Windows device to run Tor following these instructions
- Download Element for Windows
- Right click on Element app icon
- Click "Properties"
- On the "Shortcut" tab, add
--proxy-server=socks5://127.0.0.1:9050
to the end of the "Target" field. Please note, there must be a space between...Element.exe
and--proxy...
- Click
Sign In
orCreate Account
, depending on whether or not you have already created your account - Beneath "Host Account On" (following Create Account), or "Homeserver" (following Sign In), click
Edit
and change "matrix.org" tohttp://your_synapse_address_from_interfaces.onion
- Complete sign in or account creation
-
- Configure your Android device to run Tor following these instructions
- Download Element for Android
- Add Element to the list of VPN apps inside Orbot
- In the Element app, you will be asked to "Select a Server." Choose "Other," and enter
http://your_synapse_address_from_interfaces.onion
- Complete sign in or account creation. If you are asked to 'Trust' a certificate, go ahead and do so. This is safe to do as you are the server operator and traffic is already over Tor
-
- Configure your iOS device to run Tor following these instructions
- Download Element app for iOS
- In the Element app, you will be asked to "Select a Server." Choose "Other," and enter
http://your_synapse_address_from_interfaces.onion
- Complete sign in or account creation. If you are asked to 'Trust' a certificate, go ahead and do so. This is safe to do as you are the server operator and traffic is already over Tor
- Go to Settings --> Security & Privacy --> Cross-signing
- If you see a green checkmark with
Cross-signing is ready for use
, then you are good to go - If you see
Cross-signing has not been set up
, then clickSet Up
, then follow the instructions to complete setup - Alternatively, if you see
Cross-signing is ready but keys are not backed up
, follow the backup instructions in Step 4
Explanation: The Matrix protocol uses advanced cryptography to ensure that you are, in fact, communicating with the people you think you are, and not impostors. To make this as simple as possible, Matrix offers something called Cross Signing, which allows users to verify each other, and then for each user to verify their own various devices. The alternative is that every user would need to verify every device of everyone they interact with, which is simply annoying. You can read more about Cross Signing here.
- On the main dashboard, select
Explore Public Rooms
. - In the search field, paste in the alias of the room you want to join. Room aliases start with #. For example, if you want to join a room on a friend's server, you would need their .onion address and the room name. It would look something like this:
#room-name:yxtgpdjhafirrf3jskstue3bcs5wrrj47u4ljbmcgrubq46uxwpz7fad.onion
. Then click↲ Join
. - Joining a room can take a while, depending on how many users are currently in the room. If it fails, simply try again.
- Please note that to join a room on a remote server over federation, you need to know the .onion address of that server. This is like sharing secrets between each other, but the secret is one party's V3 .onion homeserver address with the room name.
Encryption Keys: Matrix uses end-to-end (E2E) encryption, meaning all encryption/decryption is performed locally on your phone/computer using keys stored on the device. To further complicate things, these keys are frequently changed to ensure maximum security. And to even further complicate things, when you log out of Element, these keys are purged from memory. Meaning, if you log out of all your Element client apps, you will lose your keys and be unable to decrypt your own message history!
Message History: Additionally, your entire (encrypted) message history is stored on your personal Synapse server, which is running on your physical Start9 server. So there are two, separate types of backups that are needed: (1) the encryption keys on your device and (2) the message history on your Start9 server.
-
There are two methods of backing up encryption keys: Manual and Automatic
-
Because your encryption keys are rotated frequently, it is almost impossible to perform manual backups and guarantee that all messages can be recovered. However, performing periodic backups can at least ensure the recovery of messages up until that point in time.
- In your Element app, go to Settings --> Security & Privacy --> Cryptography --> "Export E2E room keys"
- Optionally enter a passphrase to protect the backup and save the file somewhere safe
- Remember, the keys involved in this backup will only be capable of decrypting messages up until the time of backup. New messages will likely be unrecoverable
-
This option will automatically store encrypted backups of your keys on your Start9 server whenever they are rotated and is the recommended way of doing key backup
- In your Element app, go to Settings --> Security & Privacy --> Secure Backup --> "Set up".
-
You will be prompted to select either
Generate a Security Key
orEnter a Security Phrase
. This is a misleading choice. Either way, Element will generate a security key. If you selectGenerate a Security Key
(recommended), Element will display the Security Key for you to store on your own. If you selectEnter a Security Phrase
, Element will encrypt the Security Key with your Security Phrase, then store it on your Start9 server. In the former case, you will need to keep and protect a private key. In the latter case, you will need to keep and protect a chosen passphrase. Either way, you will need to store something. The reason it is recommended to selectGenerate a Security Key
is because, if someone gets access to your Synapse server, it is far more likely they will guess your chosen passphrase than be able to brute force a private key. - Regardless of which option you choose, you must store the value somewhere safe. Do not lose it!. It is recommended to store it in your self-hosted Bitwarden.
-
-
All of your (encrypted) messages are securely stored on your dedicated Start9 server. Given the importance of preserving your data, it is crucial to regularly create backups of Synapse on StartOS to ensure its protection and availability.