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 githistory 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!