Summary Introduction Welcome and Overview Setup Installation Using Postgres Configuring a Reverse Proxy Configuring a Forward/Outbound Proxy Configuring a Turn Server Delegation Upgrading Upgrading between Synapse Versions Upgrading from pre-Synapse 1.0 Usage Federation Configuration Homeserver Sample Config File Logging Sample Config File Structured Logging Templates User Authentication Single-Sign On OpenID Connect SAML CAS SSO Mapping Providers Password Auth Providers JSON Web Tokens Registration Captcha Application Services Server Notices Consent Tracking URL Previews User Directory Message Retention Policies Pluggable Modules Writing a module Spam checker callbacks Third-party rules callbacks Presence router callbacks Account validity callbacks Password auth provider callbacks Porting a legacy module to the new interface Workers Using synctl with Workers Systemd Administration Admin API Account Validity Background Updates Delete Group Event Reports Media Purge History Register Users Registration Tokens Manipulate Room Membership Rooms Server Notices Statistics Users Server Version Manhole Monitoring Request log format Scripts Development Contributing Guide Code Style Git Usage Testing OpenTracing Database Schemas Experimental features Synapse Architecture Log Contexts Replication TCP Replication Internal Documentation Single Sign-On SAML CAS Room DAG concepts State Resolution The Auth Chain Difference Algorithm Media Repository Room and User Statistics Scripts Other Dependency Deprecation Policy