#+LANGUAGE: it #+OPTIONS: num:nil #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/stylesheet.css" /> #+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