Unnikked - Esperienze personali in campo informatico

Prosody – un server XMPP scritto in Lua

Prosody è un server XMPP/Jabber scritto in Lua con lo scopo di essere semplice e leggero. Prosody usa meno risorse rispetto ad altri progetti simili ed è progettato per essere semplice da configurare ed usare. Ejabberd o OpenFire potrebbero essere progetti più mirati per applicazioni più grandi, ma per la maggior parte degli utilizzi su piccola scala Prosody è la soluzione più efficiente in termini di risorse.

Installazione

L’installazione di Prosody su Ubuntu e Debian è facilitata dalla messa a disposizione di una repository dedicata per Ubuntu lucid, precise, trusty, utopic, vivid e Debian sid, squeeze, wheezy, jessie.

E’ addirittura compatibile con il sistema operativo Raspbian, basterà usare il nome in codice wheezy.

Per aggiungere la repository basta digitare il seguente comando nella console dei comandi.

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list

Dove il comando lsb_release -sc ritornerà il nome in codice della distribuzione utilizzata.

Assicurati di cambiare tale stringa con wheezy nel caso in cui lo vuoi installare su una RaspberryPi.

Una volta aggiunta la definizione bisogna scaricare la relativa chiave pubblica con il comando

wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -

Aggiorniamo le definizioni e procediamo con l’installazione di Prosody.

sudo apt-get update && sudo apt-get install -y prosody

Un minimo di configurazione

Il file di configurazione di Prosody si trova in /etc/prosody/prosody.cfg.lua ed utilizza la sintassi Lua; nulla di particolare, le direttive saranno intuitive da scrivere.

Per specificare a quali host il server fa riferimento bisogna utilizzare la direttiva VirtualHost, io per esempio ho aggiunto

VirtualHost "prosody.local"

ovviamente dopo aver configurato una box vagrant e aggiunto un record statico nel file <a href="/guida-file-hosts-in-linux/" target="_blank">/etc/hosts</a>.

Impostando invece la direttiva allow_registration a true si abilita la creazione di nuovi account.

allow_registration = true;

Infine è possibile specificare gli account amministratori tramite la tabella admins, per esempio

admins = { "user1@example.com", "user2@example.net" }

L’aggiunta di nuovi utenti avviene tramite il comando prosodyctl:

sudo prosodyctl adduser unnikked@prosody.local

Una volta applicata questa configurazione elementare è necessario riavviare il server.

sudo service prosody restart

Connessione tramite Pidgin

Per testare la corretta installazione di Prosody faremo uso di Pidgin, un client di messaggistica istantanea che supporta il protocollo XMPP.

sudo apt-get install pidgin

Per aggiungere un nuovo account basta andare nella sezione apposita dalla barra degli strumenti e configurare il client come nella seguente immagine.

prosody-account

Per questa installazione basica è necessario disabilitare la connessione SSL dalla sezione Avanzate

prosody-account-avanzate

Una volta aggiunti un paio di account di prova è possibile testare il corretto funzionamento del server.

pidgin-chat

Conclusioni

Abbiamo appena completato una installazione elementare di Prosody, non adatta ad essere utilizzata sulla rete Internet pubblica, questo articolo serve come trampolino per la configurazione finale di un client XMPP che funziona tramite browser web, ovvero Kaiwa.