
Synapse: homeserver Matrix scritto in Python/Twisted.
element-hq/synapse <https://github.com/element-hq/synapse>_Synapse è un homeserver open-source di Matrix <https://matrix.org/>_ sviluppato
dal 2019 al 2023 come parte della Matrix.org Foundation. La Matrix.org
Foundation non è in grado di sostenere la manutenzione di Synapse e
continua ad essere sviluppato da Element <https://github.com/element-hq/synapse>;
inoltre hai la possibilità di scegliere altri homeserver Matrix <https://matrix.org/ecosystem/servers/>.
Vedi il post sul blog Il futuro di Synapse e Dendrite <https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/>_
per maggiori informazioni.
=========================================================================
In breve, Matrix è uno standard aperto per le comunicazioni su internet, che supporta
federazione, crittografia e VoIP. Matrix.org ha altro da dire sugli obiettivi del progetto Matrix <https://matrix.org/docs/guides/introduction>, e la specifica formale <https://spec.matrix.org/> descrive i dettagli tecnici.
.. contents::
La documentazione di Synapse descrive come installare Synapse <https://matrix-org.github.io/synapse/latest/setup/installation.html>. Raccomandiamo di utilizzare
immagini Docker <https://matrix-org.github.io/synapse/latest/setup/installation.html#docker-images-and-ansible-playbooks> o pacchetti Debian da Matrix.org <https://matrix-org.github.io/synapse/latest/setup/installation.html#matrixorg-packages>_.
.. _federation:
Synapse ha una varietà di opzioni di configurazione <https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html>_
che possono essere utilizzate per personalizzare il suo comportamento dopo l'installazione.
Ci sono ulteriori dettagli su come configurare Synapse per la federazione qui <https://matrix-org.github.io/synapse/latest/federate.html>_.
.. _reverse-proxy:
Si consiglia di mettere un reverse proxy come
nginx <https://nginx.org/en/docs/http/ngx_http_proxy_module.html>,
Apache <https://httpd.apache.org/docs/current/mod/mod_proxy_http.html>,
Caddy <https://caddyserver.com/docs/quick-starts/reverse-proxy>,
HAProxy <https://www.haproxy.org/> o
relayd <https://man.openbsd.org/relayd.8>_ davanti a Synapse. Un vantaggio di
farlo è che significa che puoi esporre la porta https predefinita (443) ai
client Matrix senza dover eseguire Synapse con privilegi di root.
Per informazioni sulla configurazione, vedi la documentazione del reverse proxy <https://matrix-org.github.io/synapse/latest/reverse_proxy.html>_.
Le istruzioni per aggiornare Synapse sono nelle note di aggiornamento_.
Si prega di controllare queste istruzioni poiché l'aggiornamento potrebbe richiedere passaggi aggiuntivi per alcune
versioni di Synapse.
.. _the upgrade notes: https://matrix-org.github.io/synapse/develop/upgrade.html
Synapse utilizza una serie di dipendenze di piattaforma come Python e PostgreSQL,
e mira a seguire le versioni upstream supportate. Vedi la
politica di obsolescenza <https://matrix-org.github.io/synapse/latest/deprecation_policy.html>_
per maggiori dettagli.
Matrix serve dati grezzi forniti dall'utente in alcune API -- in particolare gli endpoint del repository di contenuti_.
.. _content repository endpoints: https://matrix.org/docs/spec/client_server/latest.html#get-matrix-media-r0-download-servername-mediaid
Sebbene facciamo uno sforzo ragionevole per mitigare gli attacchi XSS (ad
esempio, utilizzando CSP_), un homeserver Matrix non dovrebbe essere ospitato su un
dominio che ospita altre applicazioni web. Questo si applica soprattutto alla condivisione
del dominio con client web Matrix e altre applicazioni sensibili come
webmail. Vedi
https://developer.github.com/changes/2014-04-25-user-content-security per maggiori
informazioni.
.. _CSP: https://github.com/matrix-org/synapse/pull/1021
Idealmente, l'homeserver non dovrebbe essere semplicemente su un sottodominio diverso, ma su
un dominio registrato_ completamente diverso (noto anche come sito di primo livello o
eTLD+1). Questo perché alcuni attacchi_ sono ancora possibili finché le due
applicazioni condividono lo stesso dominio registrato.
.. _registered domain: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-2.3
.. _some attacks: https://en.wikipedia.org/wiki/Session_fixation#Attacks_using_cross-subdomain_cookie
Per illustrare questo con un esempio, se il tuo Element Web o un'altra applicazione web sensibile
è ospitata su A.example1.com, dovresti idealmente ospitare Synapse su
example2.com. Un certo livello di protezione è offerto ospitandolo su
B.example1.com invece, quindi anche questo è accettabile in alcuni scenari.
Tuttavia, non dovresti mai ospitare il tuo Synapse su A.example1.com.
Nota che tutto quanto sopra si riferisce esclusivamente al dominio utilizzato nell'impostazione
public_baseurl di Synapse. In particolare, non ha alcuna influenza sul dominio
menzionato negli MXID ospitati su quel server.
Seguire questo consiglio garantisce che anche se viene trovato un XSS in Synapse, l'impatto su altre applicazioni sarà minimo.
Il modo più semplice per provare la tua nuova installazione di Synapse è connettersi ad essa da un client web.
A meno che tu non stia eseguendo un'istanza di test di Synapse sulla tua macchina locale, in
generale, dovrai abilitare il supporto TLS prima di poter connetterti con successo
da un client: vedi
certificati TLS <https://matrix-org.github.io/synapse/latest/setup/installation.html#tls-certificates>_.
Un modo semplice per iniziare è accedere o registrarsi tramite Element su
https://app.element.io/#/login o https://app.element.io/#/register rispettivamente.
Dovrai cambiare il server a cui ti stai connettendo da matrix.org
e invece specificare un URL Homeserver di https://<server_name>:8448
(o semplicemente https://<server_name> se stai utilizzando un reverse proxy).
Se preferisci utilizzare un altro client, consulta la nostra
suddivisione dei client <https://matrix.org/ecosystem/clients/>_.
Se tutto va bene, dovresti almeno essere in grado di accedere, creare una stanza e iniziare a inviare messaggi.
.. _client-user-reg:
Per impostazione predefinita, la registrazione di nuovi utenti tramite client Matrix è disabilitata. Per abilitarla:
Nella
sezione di configurazione della registrazione <https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#registration>_
imposta enable_registration: true in homeserver.yaml.
Poi o:
a. configura un CAPTCHA <https://matrix-org.github.io/synapse/latest/CAPTCHA_SETUP.html>_, oppure
b. imposta enable_registration_without_verification: true in homeserver.yaml.
Raccomandiamo vivamente di utilizzare un CAPTCHA, specialmente se il tuo homeserver è esposto a internet pubblico. Senza di esso, chiunque può registrare liberamente account sul tuo homeserver. Questo può essere sfruttato dagli attaccanti per creare spambot che prendono di mira il resto della federazione Matrix.
Il tuo nuovo nome utente sarà formato in parte dal server_name, e in parte
da un localpart che specifichi quando crei l'account. Il tuo nome assumerà la
forma di::
@localpart:my.domain.name
(pronunciato "at localpart on my dot domain dot name").
Come quando accedi, dovrai specificare un "Server personalizzato". Specifica il tuo
localpart desiderato nel campo 'Nome utente'.
La FAQ per amministratori <https://matrix-org.github.io/synapse/latest/usage/administration/admin_faq.html>_
include suggerimenti per affrontare alcuni problemi comuni. Per maggiori dettagli, vedi
la documentazione più ampia di Synapse <https://matrix-org.github.io/synapse/latest/>_.
Per supporto aggiuntivo nell'installazione o gestione di Synapse, chiedi nella stanza di supporto della comunità |room|_ (se necessario, da un account matrix.org). Non utilizziamo le issue di GitHub per richieste di supporto, ma solo per segnalazioni di bug e richieste di funzionalità.
.. |room| replace:: #synapse:matrix.org
.. _room: https://matrix.to/#/#synapse:matrix.org
.. |docs| replace:: docs
.. _docs: docs
I server di identità hanno il compito di mappare gli indirizzi email e altri ID di terze parti (3PID) agli ID utente Matrix, oltre a verificare la proprietà dei 3PID prima di creare tale mappatura.
Non sono dove vengono memorizzati account o credenziali - questi risiedono sugli home server. I server di identità servono solo per mappare ID di terze parti a ID Matrix.
Questo processo è molto sensibile alla sicurezza, poiché c'è un ovvio rischio di spam se
è troppo facile registrarsi per account Matrix o raccogliere dati 3PID. Nel lungo
termine, speriamo di creare un sistema decentralizzato per gestirlo (matrix-doc #712 <https://github.com/matrix-org/matrix-doc/issues/712>), ma nel frattempo,
il ruolo di gestione dell'identità di fiducia nell'ecosistema Matrix è affidato a
un cluster di partner di ecosistema noti e fidati, che eseguono 'Matrix Identity
Servers' come Sydent <https://github.com/matrix-org/sydent>, il cui ruolo
è puramente quello di autenticare e tracciare i login tramite 3PID e pubblicare chiavi pubbliche degli utenti finali.
Puoi ospitare la tua copia di Sydent, ma questo ti impedirà di raggiungere altri
utenti nell'ecosistema Matrix tramite il loro indirizzo email e impedirà loro di trovarti.
Pertanto, raccomandiamo per ora di utilizzare uno dei server di identità centralizzati
su https://matrix.org o https://vector.im.
Per ribadire: il server di identità verrà utilizzato solo se scegli di associare un indirizzo email al tuo account, o di inviare un invito a un altro utente tramite il suo indirizzo email.
Accogliamo con favore i contributi a Synapse dalla comunità!
Il posto migliore per iniziare è la nostra
guida per i contributori <https://matrix-org.github.io/synapse/latest/development/contributing_guide.html>.
Questa fa parte della nostra documentazione più ampia <https://matrix-org.github.io/synapse/latest>, che include
informazioni per gli sviluppatori di Synapse così come per gli amministratori di Synapse. Gli sviluppatori potrebbero essere particolarmente interessati a:
Lo schema del database di Synapse <https://matrix-org.github.io/synapse/latest/development/database_schema.html>_,appunti sui dettagli implementativi di Synapse <https://matrix-org.github.io/synapse/latest/development/internal_documentation/index.html>_, ecome usiamo git <https://matrix-org.github.io/synapse/latest/development/git.html>_.Oltre a tutto ciò, unisciti alla nostra comunità di sviluppatori su Matrix:
#synapse-dev:matrix.org <https://matrix.to/#/#synapse-dev:matrix.org>_, con esseri umani reali!
.. |support| image:: https://img.shields.io/matrix/synapse:matrix.org?label=support&logo=matrix :alt: (ottieni supporto su #synapse:matrix.org) :target: https://matrix.to/#/#synapse:matrix.org
.. |development| image:: https://img.shields.io/matrix/synapse-dev:matrix.org?label=development&logo=matrix :alt: (discuti sviluppo su #synapse-dev:matrix.org) :target: https://matrix.to/#/#synapse-dev:matrix.org
.. |documentation| image:: https://img.shields.io/badge/documentation-%E2%9C%93-success :alt: (Documentazione renderizzata su GitHub Pages) :target: https://matrix-org.github.io/synapse/latest/
.. |license| image:: https://img.shields.io/github/license/matrix-org/synapse :alt: (controlla la licenza nel file LICENSE) :target: LICENSE
.. |pypi| image:: https://img.shields.io/pypi/v/matrix-synapse :alt: (ultima versione rilasciata su PyPi) :target: https://pypi.org/project/matrix-synapse
.. |python| image:: https://img.shields.io/pypi/pyversions/matrix-synapse :alt: (versioni Python supportate) :target: https://pypi.org/project/matrix-synapse