Newer
Older
website / org / articles / 20260716_xmpp.org
@lagfra lagfra 17 days ago 3 KB xmpp article
#+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