Prosody

For XMPP clients, see XMPP Clients: Conversations, Dino.

Preamble

Note that after a year of using Snikket, I've installed Prosody (on which it is based) and find it to be more flexible, and more-or-less straightforward. Prosody is also super-easy to integrate with coturn for audio and video calls. Note that Movim and Jitsi Meet are two additional items that can be integrated as well, and at some point I may try these. For now, for my use case, a simple Prosody + coturn installation is quite suitable and consumes few resources.

Snikket is ok, but cannot make XMPP clients from a normal domain name, and needs to use a subdomain. Kinda lame. So, going with Prosody.

Prosody and Ejabberd are likely the most popular (along with Snikket) though there are a few others out there. For me, I found Ejabberd to be impenetrable, and Prosody to be pretty straightforward after you find a few bits of information out and about on the web (and an answered question in the public chatroom prosody@conference.prosody.im.

Install Prosody

sudo apt install lua-unbound
sudo apt install prosody
sudo systemctl status prosody
sudo ufw allow 5222,5269/tcp
sudo netstat -lnptu | grep lua  

Configure Prosody

sudo nano /etc/prosody/prosody.cfg.lua

Managing Prosody

DNS configuration in Prosody

Quite a few DNS entries need to be made.

Note: can use SRV DNS entries, or simply all A/AAA records, as I have done. Note that both IPv4 and IPv6 are needed, though perhaps IPv4 is no longer needed.

mcneill.info (I use the root server for addressing)
groups.mcneill.info (some use conference. instead)
pubsub.mcneill.info 
share.mcneill.info (for file sharing)
turn.mcneill.info (for video/audio calls)

Can also check DNS with the prosodyctl command:

prosodyctl check dns

SSL Certificates

Prosody needs certs. LetsEncrypt certbot is fine for this purpose:

prosodyctl cert request example.com

Check on certs with:

prosodyctl check certs

Creating accounts in Prosody

We use cookies only for WordPress functionality, and do not use third-party analytics or tracking.
Accept