Upgrading My Prosody Server for Advanced Mobile Messaging Features

I've been running Prosdody, an XMPP messaging server on one of my Raspberry Pi's for ages now, mostly for desktop instant messaging and testing mobile messaging clients every now and then. Yes, I could use a public XMPP server but why should I if I can host it myself, too? It's easy to install from the Debian package archive and easy to configure. Now that I've found 'Conversations' a fantastic mobile messaging app, I wanted to upgrade Prosody to take advantage off a number of new features such as for example handling of temporary absence of clients due to network coverage holes which are not part of the version contained in the Debian archive. It turned out that the upgrade process is rather simple.

Instead of first de-installing the Debian archive version (0.8) and using Prosody's package repository to install the latest Prosody version (currently 0.9.8) from scratch one can go ahead and directly configure to use the external repository and install the latest version over the existing one. It only takes a few commands which are described here generically. For Debian on a Raspberry Pi they look like this:

sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository "deb http://packages.prosody.im/debian wheezy main"

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

Before doing so, I saved the configuration file from /etc/prosody to be able to restore it later. There are only few changes between the old and new configuration file so once the upgrade process was finished I renamed the new configuration file, put my old one back in place, added the new parameters to my own configuration file and restarted the server with 'sudo service prosody restart'. The whole process takes 10 minutes at most so it's not much trouble at all.

If you are installing Prosody for the first time you can of course skip copying the configuration file and instead configure it from scratch. Only a few parameters need to be filled in and the configuration file is well documented. Once done, the only other thing that needs to be done for a new installation is to create user accounts as documented here.