Introduction
Welcome to the documentation repository for Synapse, a Matrix homeserver implementation developed by Element.
Installing and using Synapse
This documentation covers topics for installation, configuration and maintenance of your Synapse process:
-
Learn how to install and configure your own instance, perhaps with Single Sign-On.
-
See how to upgrade between Synapse versions.
-
Administer your instance using the Admin API, installing pluggable modules, or by accessing the manhole.
-
Learn how to read log lines, configure logging or set up structured logging.
-
Scale Synapse through additional worker processes.
-
Set up monitoring and metrics to keep an eye on your Synapse instance's performance.
Developing on Synapse
Contributions are welcome! Synapse is primarily written in Python. As a developer, you may be interested in the following documentation:
-
Read the Contributing Guide. It is meant to walk new contributors through the process of developing and submitting a change to the Synapse codebase (which is hosted on GitHub).
-
Set up your development environment, then learn how to lint and test your code.
-
Look at the issue tracker for bugs to fix or features to add. If you're new, it may be best to start with those labeled good first issue.
-
Understand how Synapse is built, how to migrate database schemas, learn about federation and how to set up a local federation for development.
-
We like to keep our
git
history clean. Learn how to do so! -
And finally, contribute to this documentation! The source for which is located here.
Reporting a security vulnerability
If you've found a security issue in Synapse or any other Element project, please report it to us in accordance with our Security Disclosure Policy. Thank you!