diff --git a/org/articles/20260716_xmpp.org b/org/articles/20260716_xmpp.org new file mode 100644 index 0000000..e375322 --- /dev/null +++ b/org/articles/20260716_xmpp.org @@ -0,0 +1,90 @@ +#+LANGUAGE: it +#+OPTIONS: num:nil +#+HTML_HEAD: + +#+INCLUDE: "../header.html" export html + +* Gestire un server XMPP รจ molto facile + +Ovvero breve guida alla messaggistica istantanea libera /for dummies/. + +[[https://it.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol][XMPP]], che poi una volta era Jabber, e` un protocollo open source di +messaggistica basato su XML, esiste dal 2000 ed e` alla base di alcuni +dei moderni software di messaggistica commerciali. Per questo esistono +moltissime implementazioni di server e client desktop e mobile. Ha il grande pregio +di essere decentralizzato: ognun puo` gestire il proprio server e comunicare con altri utenti su server +diversi, con lo stesso principio della email: ogni utente e` identificato da *nome@dominio* + +Questo articolo si concentra sulla gestione di [[https://prosody.im/][Prosody IM]] come server XMPP +e la configurazione del client [[https://conversations.im][Conversations]] per Android. Perche` +l'obbiettivo in fondo e` rimpiazzare quell'app col simbolo verde e +quell'altra con l'aereoplanino, almeno per parlare dei fatti nostri. + +*** E Matrix? + +Un grande dibattito e` l'utilizzo di Matrix: un'alternativa sempre +decentralizzata e open source a XMPP. Esistono tantissimi articoli che +sostengono l'uno o l'altro protocollo ed elencano le +differenze. Di base Matrix ha piu` features ma anche piu` codice. Considerato che molto di quanto offre +Matrix si puo` ottenere configurando XMPP con molto meno dispendio di +risorse fisiche. Hasta il minimalismo siempre! + +Ps: Matrix puo` usare dei ponti o /bridge/ per comunicare con XMPP, come [[https://github.com/matrix-org/matrix-bifrost][questo]]. + +** Prerequisiti + +- Un server raggiungibile con IP pubblico e un dominio associato (come fragal.eu). +- Una distribuzione Linux installata sul server di cui sopra, come Debian o Gentoo. Non + tratteremo l'installazione di server XMPP per Windows, ma [[https://xmpp.org/software/?category=servers][esistono altre implementazioni]] + che supportano tutte le piattaforme. +- Un editor di testo per file di configurazione (vim, emacs, gedit...) +- Familiarita` con i firewall di sistema su Linux (ufw) +- Voglia di smanettare con la command line + +** Prosody + +*** Installazione + +Vedi [[https://prosody.im/download/][la guida di Prosody, in inglese]]. + +- Debian: + +#+BEGIN_SRC sh + sudo apt install prosody +#+END_SRC + +- Gentoo: + +#+BEGIN_SRC sh + sudo emerge --ask net-im/prosody +#+END_SRC + +*** Prima /run/ + +A seconda della distribuzione scelta, esiste un servizio /systemd/ o /openrc/ chiamato `prosody` da abilitare ed eseguire. + +Prosody utilizza la porta 5222 per le connessioni client-server e 5269 +per le connessioni server-server. E` necessario aggiungere le regole +al firewall di sistema perche` sia possibile connettersi al server +dall'esterno. Queste due regole aprono le porte in questione a tutti gli indirizzi IP: + +#+BEGIN_SRC sh + sudo ufw allow 5222 + sudo ufw allow 5269 +#+END_SRC + +*** Configurazione + +Prosody utilizza un solo file di configurazione: + +#+BEGIN_SRC sh +/etc/prosody/prosody.cfg.lua +#+END_SRC + +Il file e` commentato a tal punto da aver bisogno di ben poche +spiegazioni, ma alcuni dettagli non sono lampanti soprattutto +quando si cerca di andare oltre la configurazione di default. + + + +#+INCLUDE: "../footer.html" export html