IRC (Internet Relay Chat) is a protocol that lets you communicate in text based chat rooms over the internet, and is basically what we all used to use in the 90’s before Twitter or WhatsApp. Think of it like multi-player notepad.

Most folk don’t even know it exists, but many technical people (especially those in the free software community) use IRC to facilitate discussion and development with people around the world.

I quite often use my Known site to share links with people over twitter and facebook, but to do the same with folk in IRC I’d have to paste the link by hand, and, well… I’m lazy. So I wrote a plugin!

One particularly handy thing you can do, combined with my command line API tools, is that you have a quick way to post from system services or internet connected (IoT) devices… but I’ll leave that as an exercise for the reader.

Known IRC

The Known IRC plugin adds the ability to syndicate short messages and share links to one or more IRC channels.

Once activated and configured, you will be able to syndicate out to IRC straight from your site.


There are a couple of limitations of course…

  • IRC only lets you have one nickname per network (freenode, efnet etc), so if you sit on IRC as well, use a different nickname. Also consider registering this name with nickserv (the plugin supports nickserv passwords)
  • The plugin doesn’t perform a persistent login (for various reasons), therefore it’ll join, post and then leave the channel.

» Visit the project on Github...


Like with other free software / indieweb projects, lot of development discussion regarding Known takes place on the IRC channel #Knownchat.

I lurk there, but I kept missing stuff, and besides it’s useful to have a log of some of the conversations. I think the founders were going to set something up, but since I know they’re very busy, I thought it’d be useful to hack something together until something better comes along.

So, I hacked together a quick bot IRC logging bot.

This bot outputs logs in Markdown, and I’ve set up a quick cronjob that will take those logs once a day and push them to a github repository for everyone to see.

Pending something better, I thought this might be useful. Standard caveat; these logs should in no way be considered “official” or endorsed by the project, I made them for my own use with hopes that they’ll be handy for other folk as well.

» View #Knownchat logs...


I recently upgrade this (and several client servers) over to the latest release of Debian (Debian Jessie). This process went relatively smoothly apart from a couple of gotchas that came when Apache got upgraded.

One of the problems I had is that mod_python and WSGI no longer sit happily together (unless you go through some complicated rebuilding of Python, which I was unwilling to do). I needed WSGI for various things on the server, and seeing as mod_python is viewed as deprecated these days, and I only used it for trac, it made sense to migrate this.

Thankfully, this is relatively straightforward to accomplish.

Create your WSGI script

The first step is to create a python executable called trac.wsgi in your trac home directory, which you then make executable touch trac.wsgi; chown www-data:www-data trac.wsgi; chmod 700 trac.wsgi

The script will look something like:

I use one domain to host all the various trac installs, therefore this one wsgi script needs to power them all. This is what the TRAC_ENV_PARENT_DIR does. Both TRAC_ENV_PARENT_DIR and PYTHON_EGG_CACHE can take their values from the existing ones you’ve presumably already set in the apache conf (assuming you’ve already got this working with mod_python).

Updating your Apache configuration

Edit your Apache configuration and comment out or remove all the mod_python entries, e.g.

You now need to add a WSGIScriptAlias directive for whatever your TracUriRoot currently is, and modify your Directory statement to add a WSGIApplicationGroup directive, as follows:


Finally, activate your module: apt-get install libapache2-mod-wsgi; a2enmod wsgi