1
+ <!DOCTYPE HTML>
2
+ < html lang ="en " class ="sidebar-visible no-js light ">
3
+ < head >
4
+ <!-- Book generated using mdBook -->
5
+ < meta charset ="UTF-8 ">
6
+ < title > Welcome and Overview - Synapse</ title >
7
+
8
+
9
+
10
+
11
+ <!-- Custom HTML head -->
12
+
13
+
14
+
15
+ < meta content ="text/html; charset=utf-8 " http-equiv ="Content-Type ">
16
+ < meta name ="description " content ="">
17
+ < meta name ="viewport " content ="width=device-width, initial-scale=1 ">
18
+ < meta name ="theme-color " content ="#ffffff " />
19
+
20
+
21
+ < link rel ="icon " href ="favicon.svg ">
22
+
23
+
24
+ < link rel ="shortcut icon " href ="favicon.png ">
25
+
26
+ < link rel ="stylesheet " href ="css/variables.css ">
27
+ < link rel ="stylesheet " href ="css/general.css ">
28
+ < link rel ="stylesheet " href ="css/chrome.css ">
29
+
30
+ < link rel ="stylesheet " href ="css/print.css " media ="print ">
31
+
32
+
33
+ <!-- Fonts -->
34
+ < link rel ="stylesheet " href ="FontAwesome/css/font-awesome.css ">
35
+
36
+ < link rel ="stylesheet " href ="fonts/fonts.css ">
37
+
38
+
39
+ <!-- Highlight.js Stylesheets -->
40
+ < link rel ="stylesheet " href ="highlight.css ">
41
+ < link rel ="stylesheet " href ="tomorrow-night.css ">
42
+ < link rel ="stylesheet " href ="ayu-highlight.css ">
43
+
44
+ <!-- Custom theme stylesheets -->
45
+
46
+ < link rel ="stylesheet " href ="docs/website_files/table-of-contents.css ">
47
+
48
+ < link rel ="stylesheet " href ="docs/website_files/remove-nav-buttons.css ">
49
+
50
+ < link rel ="stylesheet " href ="docs/website_files/indent-section-headers.css ">
51
+
52
+
53
+
54
+ </ head >
55
+ < body >
56
+ <!-- Provide site root to javascript -->
57
+ < script type ="text/javascript ">
58
+ var path_to_root = "" ;
59
+ var default_theme = window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches ? "navy" : "light" ;
60
+ </ script >
61
+
62
+ <!-- Work around some values being stored in localStorage wrapped in quotes -->
63
+ < script type ="text/javascript ">
64
+ try {
65
+ var theme = localStorage . getItem ( 'mdbook-theme' ) ;
66
+ var sidebar = localStorage . getItem ( 'mdbook-sidebar' ) ;
67
+ if ( theme . startsWith ( '"' ) && theme . endsWith ( '"' ) ) {
68
+ localStorage . setItem ( 'mdbook-theme' , theme . slice ( 1 , theme . length - 1 ) ) ;
69
+ }
70
+ if ( sidebar . startsWith ( '"' ) && sidebar . endsWith ( '"' ) ) {
71
+ localStorage . setItem ( 'mdbook-sidebar' , sidebar . slice ( 1 , sidebar . length - 1 ) ) ;
72
+ }
73
+ } catch ( e ) { }
74
+ </ script >
75
+
76
+ <!-- Set the theme before any content is loaded, prevents flash -->
77
+ < script type ="text/javascript ">
78
+ var theme ;
79
+ try { theme = localStorage . getItem ( 'mdbook-theme' ) ; } catch ( e ) { }
80
+ if ( theme === null || theme === undefined ) { theme = default_theme ; }
81
+ var html = document . querySelector ( 'html' ) ;
82
+ html . classList . remove ( 'no-js' )
83
+ html . classList . remove ( 'light' )
84
+ html . classList . add ( theme ) ;
85
+ html . classList . add ( 'js' ) ;
86
+ </ script >
87
+
88
+ <!-- Hide / unhide sidebar before it is displayed -->
89
+ < script type ="text/javascript ">
90
+ var html = document . querySelector ( 'html' ) ;
91
+ var sidebar = 'hidden' ;
92
+ if ( document . body . clientWidth >= 1080 ) {
93
+ try { sidebar = localStorage . getItem ( 'mdbook-sidebar' ) ; } catch ( e ) { }
94
+ sidebar = sidebar || 'visible' ;
95
+ }
96
+ html . classList . remove ( 'sidebar-visible' ) ;
97
+ html . classList . add ( "sidebar-" + sidebar ) ;
98
+ </ script >
99
+
100
+ < nav id ="sidebar " class ="sidebar " aria-label ="Table of contents ">
101
+ < div class ="sidebar-scrollbox ">
102
+ < ol class ="chapter "> < li class ="chapter-item expanded affix "> < li class ="part-title "> Introduction</ li > < li class ="chapter-item expanded "> < a href ="welcome_and_overview.html " class ="active "> Welcome and Overview</ a > </ li > < li class ="chapter-item expanded affix "> < li class ="part-title "> Setup</ li > < li class ="chapter-item expanded "> < a href ="setup/installation.html "> Installation</ a > </ li > < li class ="chapter-item expanded "> < a href ="postgres.html "> Using Postgres</ a > </ li > < li class ="chapter-item expanded "> < a href ="reverse_proxy.html "> Configuring a Reverse Proxy</ a > </ li > < li class ="chapter-item expanded "> < a href ="turn-howto.html "> Configuring a Turn Server</ a > </ li > < li class ="chapter-item expanded "> < a href ="delegate.html "> Delegation</ a > </ li > < li class ="chapter-item expanded affix "> < li class ="part-title "> Upgrading</ li > < li class ="chapter-item expanded "> < a href ="upgrading/index.html "> Upgrading between Synapse Versions</ a > </ li > < li class ="chapter-item expanded "> < a href ="MSC1711_certificates_FAQ.html "> Upgrading from pre-Synapse 1.0</ a > </ li > < li class ="chapter-item expanded affix "> < li class ="part-title "> Usage</ li > < li class ="chapter-item expanded "> < a href ="federate.html "> Federation</ a > </ li > < li class ="chapter-item expanded "> < a href ="usage/configuration/index.html "> Configuration</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="usage/configuration/homeserver_sample_config.html "> Homeserver Sample Config File</ a > </ li > < li class ="chapter-item expanded "> < a href ="usage/configuration/logging_sample_config.html "> Logging Sample Config File</ a > </ li > < li class ="chapter-item expanded "> < a href ="structured_logging.html "> Structured Logging</ a > </ li > < li class ="chapter-item expanded "> < a href ="usage/configuration/user_authentication/index.html "> User Authentication</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < div > Single-Sign On</ div > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="openid.html "> OpenID Connect</ a > </ li > < li class ="chapter-item expanded "> < div > SAML</ div > </ li > < li class ="chapter-item expanded "> < div > CAS</ div > </ li > < li class ="chapter-item expanded "> < a href ="sso_mapping_providers.html "> SSO Mapping Providers</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="password_auth_providers.html "> Password Auth Providers</ a > </ li > < li class ="chapter-item expanded "> < a href ="jwt.html "> JSON Web Tokens</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="CAPTCHA_SETUP.html "> Registration Captcha</ a > </ li > < li class ="chapter-item expanded "> < a href ="application_services.html "> Application Services</ a > </ li > < li class ="chapter-item expanded "> < a href ="server_notices.html "> Server Notices</ a > </ li > < li class ="chapter-item expanded "> < a href ="consent_tracking.html "> Consent Tracking</ a > </ li > < li class ="chapter-item expanded "> < a href ="url_previews.html "> URL Previews</ a > </ li > < li class ="chapter-item expanded "> < a href ="user_directory.html "> User Directory</ a > </ li > < li class ="chapter-item expanded "> < a href ="message_retention_policies.html "> Message Retention Policies</ a > </ li > < li class ="chapter-item expanded "> < a href ="modules.html "> Pluggable Modules</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < div > Third Party Rules</ div > </ li > < li class ="chapter-item expanded "> < a href ="spam_checker.html "> Spam Checker</ a > </ li > < li class ="chapter-item expanded "> < a href ="presence_router_module.html "> Presence Router</ a > </ li > < li class ="chapter-item expanded "> < div > Media Storage Providers</ div > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="workers.html "> Workers</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="synctl_workers.html "> Using synctl with Workers</ a > </ li > < li class ="chapter-item expanded "> < a href ="systemd-with-workers/index.html "> Systemd</ a > </ li > </ ol > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="usage/administration/index.html "> Administration</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="usage/administration/admin_api/index.html "> Admin API</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="admin_api/account_validity.html "> Account Validity</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/delete_group.html "> Delete Group</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/event_reports.html "> Event Reports</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/media_admin_api.html "> Media</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/purge_history_api.html "> Purge History</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/purge_room.html "> Purge Rooms</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/register_api.html "> Register Users</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/room_membership.html "> Manipulate Room Membership</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/rooms.html "> Rooms</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/server_notices.html "> Server Notices</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/shutdown_room.html "> Shutdown Room</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/statistics.html "> Statistics</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/user_admin_api.html "> Users</ a > </ li > < li class ="chapter-item expanded "> < a href ="admin_api/version_api.html "> Server Version</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="manhole.html "> Manhole</ a > </ li > < li class ="chapter-item expanded "> < a href ="metrics-howto.html "> Monitoring</ a > </ li > < li class ="chapter-item expanded "> < a href ="usage/administration/request_log.html "> Request log format</ a > </ li > < li class ="chapter-item expanded "> < div > Scripts</ div > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < li class ="part-title "> Development</ li > < li class ="chapter-item expanded "> < a href ="development/contributing_guide.html "> Contributing Guide</ a > </ li > < li class ="chapter-item expanded "> < a href ="code_style.html "> Code Style</ a > </ li > < li class ="chapter-item expanded "> < a href ="dev/git.html "> Git Usage</ a > </ li > < li class ="chapter-item expanded "> < div > Testing</ div > </ li > < li class ="chapter-item expanded "> < a href ="opentracing.html "> OpenTracing</ a > </ li > < li class ="chapter-item expanded "> < a href ="development/database_schema.html "> Database Schemas</ a > </ li > < li class ="chapter-item expanded "> < div > Synapse Architecture</ div > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="log_contexts.html "> Log Contexts</ a > </ li > < li class ="chapter-item expanded "> < a href ="replication.html "> Replication</ a > </ li > < li class ="chapter-item expanded "> < a href ="tcp_replication.html "> TCP Replication</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="development/internal_documentation/index.html "> Internal Documentation</ a > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < div > Single Sign-On</ div > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="dev/saml.html "> SAML</ a > </ li > < li class ="chapter-item expanded "> < a href ="dev/cas.html "> CAS</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < div > State Resolution</ div > </ li > < li > < ol class ="section "> < li class ="chapter-item expanded "> < a href ="auth_chain_difference_algorithm.html "> The Auth Chain Difference Algorithm</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < a href ="media_repository.html "> Media Repository</ a > </ li > < li class ="chapter-item expanded "> < a href ="room_and_user_statistics.html "> Room and User Statistics</ a > </ li > </ ol > </ li > < li class ="chapter-item expanded "> < div > Scripts</ div > </ li > < li class ="chapter-item expanded affix "> < li class ="part-title "> Other</ li > < li class ="chapter-item expanded "> < a href ="deprecation_policy.html "> Dependency Deprecation Policy</ a > </ li > </ ol >
103
+ </ div >
104
+ < div id ="sidebar-resize-handle " class ="sidebar-resize-handle "> </ div >
105
+ </ nav >
106
+
107
+ < div id ="page-wrapper " class ="page-wrapper ">
108
+
109
+ < div class ="page ">
110
+
111
+ < div id ="menu-bar-hover-placeholder "> </ div >
112
+ < div id ="menu-bar " class ="menu-bar sticky bordered ">
113
+ < div class ="left-buttons ">
114
+ < button id ="sidebar-toggle " class ="icon-button " type ="button " title ="Toggle Table of Contents " aria-label ="Toggle Table of Contents " aria-controls ="sidebar ">
115
+ < i class ="fa fa-bars "> </ i >
116
+ </ button >
117
+ < button id ="theme-toggle " class ="icon-button " type ="button " title ="Change theme " aria-label ="Change theme " aria-haspopup ="true " aria-expanded ="false " aria-controls ="theme-list ">
118
+ < i class ="fa fa-paint-brush "> </ i >
119
+ </ button >
120
+ < ul id ="theme-list " class ="theme-popup " aria-label ="Themes " role ="menu ">
121
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="light "> Light (default)</ button > </ li >
122
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="rust "> Rust</ button > </ li >
123
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="coal "> Coal</ button > </ li >
124
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="navy "> Navy</ button > </ li >
125
+ < li role ="none "> < button role ="menuitem " class ="theme " id ="ayu "> Ayu</ button > </ li >
126
+ </ ul >
127
+
128
+ < button id ="search-toggle " class ="icon-button " type ="button " title ="Search. (Shortkey: s) " aria-label ="Toggle Searchbar " aria-expanded ="false " aria-keyshortcuts ="S " aria-controls ="searchbar ">
129
+ < i class ="fa fa-search "> </ i >
130
+ </ button >
131
+
132
+ </ div >
133
+
134
+ < h1 class ="menu-title "> Synapse</ h1 >
135
+
136
+ < div class ="right-buttons ">
137
+
138
+ < a href ="print.html " title ="Print this book " aria-label ="Print this book ">
139
+ < i id ="print-button " class ="fa fa-print "> </ i >
140
+ </ a >
141
+
142
+
143
+ < a href ="https://github.com/matrix-org/synapse " title ="Git repository " aria-label ="Git repository ">
144
+ < i id ="git-repository-button " class ="fa fa-github "> </ i >
145
+ </ a >
146
+
147
+
148
+ < a href ="https://github.com/matrix-org/synapse/edit/develop/docs/welcome_and_overview.md " title ="Suggest an edit " aria-label ="Suggest an edit ">
149
+ < i id ="git-edit-button " class ="fa fa-edit "> </ i >
150
+ </ a >
151
+
152
+
153
+ </ div >
154
+ </ div >
155
+
156
+
157
+ < div id ="search-wrapper " class ="hidden ">
158
+ < form id ="searchbar-outer " class ="searchbar-outer ">
159
+ < input type ="search " id ="searchbar " name ="searchbar " placeholder ="Search this book ... " aria-controls ="searchresults-outer " aria-describedby ="searchresults-header ">
160
+ </ form >
161
+ < div id ="searchresults-outer " class ="searchresults-outer hidden ">
162
+ < div id ="searchresults-header " class ="searchresults-header "> </ div >
163
+ < ul id ="searchresults ">
164
+ </ ul >
165
+ </ div >
166
+ </ div >
167
+
168
+
169
+ <!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
170
+ < script type ="text/javascript ">
171
+ document . getElementById ( 'sidebar-toggle' ) . setAttribute ( 'aria-expanded' , sidebar === 'visible' ) ;
172
+ document . getElementById ( 'sidebar' ) . setAttribute ( 'aria-hidden' , sidebar !== 'visible' ) ;
173
+ Array . from ( document . querySelectorAll ( '#sidebar a' ) ) . forEach ( function ( link ) {
174
+ link . setAttribute ( 'tabIndex' , sidebar === 'visible' ? 0 : - 1 ) ;
175
+ } ) ;
176
+ </ script >
177
+
178
+ < div id ="content " class ="content ">
179
+ < main >
180
+ <!-- Page table of contents -->
181
+ < div class ="sidetoc ">
182
+ < nav class ="pagetoc "> </ nav >
183
+ </ div >
184
+
185
+ < h1 id ="introduction "> < a class ="header " href ="#introduction "> Introduction</ a > </ h1 >
186
+ < p > Welcome to the documentation repository for Synapse, the reference
187
+ < a href ="https://matrix.org "> Matrix</ a > homeserver implementation.</ p >
188
+
189
+ </ main >
190
+
191
+ < nav class ="nav-wrapper " aria-label ="Page navigation ">
192
+ <!-- Mobile navigation buttons -->
193
+
194
+
195
+
196
+ < a rel ="next " href ="setup/installation.html " class ="mobile-nav-chapters next " title ="Next chapter " aria-label ="Next chapter " aria-keyshortcuts ="Right ">
197
+ < i class ="fa fa-angle-right "> </ i >
198
+ </ a >
199
+
200
+
201
+ < div style ="clear: both "> </ div >
202
+ </ nav >
203
+ </ div >
204
+ </ div >
205
+
206
+ < nav class ="nav-wide-wrapper " aria-label ="Page navigation ">
207
+
208
+
209
+
210
+ < a rel ="next " href ="setup/installation.html " class ="nav-chapters next " title ="Next chapter " aria-label ="Next chapter " aria-keyshortcuts ="Right ">
211
+ < i class ="fa fa-angle-right "> </ i >
212
+ </ a >
213
+
214
+ </ nav >
215
+
216
+ </ div >
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+ < script type ="text/javascript ">
226
+ window . playground_copyable = true ;
227
+ </ script >
228
+
229
+
230
+
231
+
232
+
233
+ < script src ="elasticlunr.min.js " type ="text/javascript " charset ="utf-8 "> </ script >
234
+ < script src ="mark.min.js " type ="text/javascript " charset ="utf-8 "> </ script >
235
+ < script src ="searcher.js " type ="text/javascript " charset ="utf-8 "> </ script >
236
+
237
+
238
+ < script src ="clipboard.min.js " type ="text/javascript " charset ="utf-8 "> </ script >
239
+ < script src ="highlight.js " type ="text/javascript " charset ="utf-8 "> </ script >
240
+ < script src ="book.js " type ="text/javascript " charset ="utf-8 "> </ script >
241
+
242
+ <!-- Custom JS scripts -->
243
+
244
+ < script type ="text/javascript " src ="docs/website_files/table-of-contents.js "> </ script >
245
+
246
+
247
+
248
+
249
+ </ body >
250
+ </ html >
0 commit comments