How to get push notifications on Mutter, using ZNC and Ubuntu 16.10

https://xkcd.com/1782/

ZNC is an IRC bouncer server software. Mutter is the iOS client of my choice (was a Colloquy fan for years, but it’s not being actively updated anymore). This is a quick guide on how to receive push notifications each time you get a private message or a keyword (username) is mentioned.

 

Start by updating your system and install build prerequisites.

sudo apt-get update

sudo apt-get install build-essential libssl-dev libperl-dev pkg-config

Download and unzip the latest ZNC release.

cd /usr/local/src; sudo wget http://znc.in/releases/znc-latest.tar.gz

sudo tar -xzvf znc-latest.tar.gz; cd znc*

You’ll need to compile ZNC with modpython enabled, since Mutter’s module is written in python:

./configure --enable-python

sudo make; sudo make install

ZNC will complain if ran under root (and with good reason). It’s best to create a separate user for it:

adduser znc-admin

Login as znc-admin:

su znc-admin; cd ~

/usr/local/bin/znc --makeconf

You will be prompted to enter a few details for configuration. Take a note of which port you’re going to choose, because you’ll need it to connect from your IRC client.

What port would you like ZNC to listen on? (1025 to 65535): 5000

Enable the web interface to configure channels and users. Make sure to enable Mutter’s plugin under Global Settings.

Once you’ve created a user, connect to the IRC server of your choice in the user’s settings panel. You can connect to channels from here.

Open up Mutter’s settings and connect to your server at the port you’ve chosen earlier. Use the username and password you have created.

Starting at boot

If everything’s working, you can configure ZNC to start automatically during boot using cron. While still logged in as znc-admin, run:

crontab -e

*/10 * * * * /usr/local/bin/znc >/dev/null 2>&1

This will check every 10 minutes if znc is running, and if not, start it.

Using multiple networks

ZNC now supports multiple networks per user. You’ll need to specify the name of the server along with the user name.

When you supply your username to ZNC in your client, you can include the network as username/network. If you send your username in the server password field you can use username/network:password.

Congratulations!

You should be up an running. ZNC offers a multitude of features, buffering being the most prominent. With buffering, you can store messages while you’re offline and “stream” them once you reconnect to your server.