Synapse App
About
Matrix is an open network for secure, decentralized communication.
- Questions? Ask in the Cloudron Forum - Matrix Synapse
- Matrix Synapse Website
- Matrix Synapse issue tracker
Post installation
Step 1: Select Matrix IDs
Just like email, users on matrix has a unique universal id. These ids are
of the form @username:domain.com
.
To give users a "memorable id", this app (also known as home server) is pre-setup to use the second level
domain for the domain part of the id (also known as the server_name
). For example,
if you installed the app at matrix-homeserver.example.com
, this app package will set the
server_name
to example.com
. This will generate user ids of the form @username:example.com
.
If you require a different server name, use a File Manager
to edit /app/data/configs/homeserver.yaml
and restart the app.
Step 2: Delegation
Matrix clients and other matrix servers discover the Matrix server for an ID using
Well-Known URIs.
The Well-Known URI is a document that is served up from the server_name
domain (i.e example.com
)
that delegates the handling
to another server (i.e matrix-homeserver.example.com
).
Step 2.1: Setup
If server_name
is hosted on Cloudron, all you have to do is to SSH into Cloudron and create the following file:
mkdir -p /home/yellowtent/boxdata/well-known/example.com/matrix
echo '{ "m.server": "matrix-homeserver.example.com:443" }' > /home/yellowtent/boxdata/well-known/example.com/matrix/server
Be sure to replace example.com
with your server_name
and matrix-homeserver.example.com
with the location
of this app.
Step 2.2: Re-configure
Go to the Location page of example.com
and click Save. This essentialy re-generates the nginx config. The new
nginx config serves up .well-known docs from the above server location
Step 2.3 Verify setup
To verify that the above changes worked, try this command from your laptop/PC:
$ curl https://example.com/.well-known/matrix/server
{ "m.server": "matrix-homeserver.example.com:443" }
If server_name
is not hosted on Cloudron, you have to arrange for the above file to be served based on
your setup.
.well-known
setup is required
The .well-known
setup is required for matrix clients to connect. This is the case even when server_name
matches the home
server location. This is because this app sets up federation on port 443 but the default is port 8448.
Step 3. Federation
Federation setup is automatic.
Use the Federation Tester to verify that everything is setup properly.
Note you must enter the server_name
(like example.com
) in the form field in the website and NOT the location
of your home server (despite what the form says).
Admin
To make an existing user an admin, open a Web terminal and run the following command:
# PGPASSWORD=${CLOUDRON_POSTGRESQL_PASSWORD} psql -h ${CLOUDRON_POSTGRESQL_HOST} -p ${CLOUDRON_POSTGRESQL_PORT} -U ${CLOUDRON_POSTGRESQL_USERNAME} -d ${CLOUDRON_POSTGRESQL_DATABASE} -c "UPDATE users SET admin=1 WHERE name='@user:example.com'"
UPDATE 1
Customizations
Synapse offers a variety of customizations.
To make changes, use a File Manager
to edit /app/data/configs/homeserver.yaml
and restart the app.
Home page
The index.html
can be customized by editing /app/data/index.html
. Note that any assets have to be embedded inline.