pump.io and microblogging

I returned to pump.io in Oct 2016 and again in May 2017 when I rebuilt the page deprecating aged content . The page had remained unchanged since I had to stop my 2015 experiments. In 2015 I’d got the server software working but had not made a usable solution for either micro blogging, nor for messaging. I hope that the pre-reqs remain  node.js, npm, a database server and ‘gm’. I assume that node.js forever remains desirable.


Here are some links

I decided to install on a brand new U16 image and there have been some npm install problems. I have worked out how to run mongodb in a docker container.

On my 1st U16 build I was getting errors on the npm installs but after loads of sudo ( apt-get update ; apt-get upgrade ), the npm calls work, although with warnings in the case of forever. Now onto mongodb.


This page describes how to install and start mongodb. Use apt-get to install, I amended the .conf file to invoke smallFiles, implemented the recommended service file mongod.service and used the service command to start and stop as tests.

In May 2017, a moved the smallfiles command from the conf file to the command line in the services file.

It is recommended to run mongod in a non-root user, and that is what the systemd service file mandates and the post install triggers set up the mongo users. The first time mongod is run it performs a db initialisation, if this is done as root, you will need to remove all the files from the database sub-directory before it will run as a non root user because the daemon cannot manipulate the files previously created as root. Doh! I need to check about smallFiles as the alternate way to do this is from the command line.

mongodb file systems require support for fsync. It will not work with vbox shared folders. There are also performance reasons for not using NFS. There may be some problems in using data volumes in Docker. I used this page to guide me in building the volume structures/regime.

I built an image, using the instructions here, I pushed it to my repo and start the image first time using the following code,

$ docker run -p 27017:27017 --name mongodb-1 -d dfl1955/mongodb --smallfiles

npm & pump.io

Install via apt-get install nodejs npm using apt-get, for ubuntu symbolically link /usr/bin/nodejs to /usr/bin/node.

$ ln /usr/bin/nodejs /usr/bin/node

Install graphicksmagaick using apt-get, I originally did this using npm.

I have used the manual install route, so mkdir or

$ cd /opt/local/
$ git clone https://github.com/e14n/pump.io.git
$ cd pump.io 
$ npm install -g
$ npm test -g

and then

$ npm install -g databank-mongodb

make the jason config file, include the “serverUser” parameter and then make the user, this lives by default in /etc/pumpio.conf.json, then if you use the dafault loging location, you need to make /var/log/pump but first you need the user

$ useradd pump


sudo mkdir /var/log/pump
sudo chown pump:pump pump

Because of vbox, I installed and started samba & mongod obviously.

I made the pumpio config file

    "driver":  "mongodb",
    "params":  {"hostname": "localhost"},
    "hostname": "davevbu16c",
    "secret":  "ruislip",
    "noweb":  false,
    "site":  "Awesome Sauce",
    "owner":  "Dave Levy",
    "ownerURL":  "http://davelevy.info/",
    "port":  80,
    "address":  "",
    "nologger":  false,
    "logfile": "/var/log/pump/pumpio.log",
    "serverUser":  "pump",
# don't want uploaddir anymore
    "uploaddir": "/var/local/pump.io/uploads",
    "debugClient": false,
    "firehose": "ofirehose.example"

Using the default port caused errors, so I transformed the listener port to 80.


I have decided to give pump.io a whirl given the constraints of using other’s micro blogging services products. I last used this when it was laconica. The database server must have a databank client interface which they say means mongodb, couchdb or redis. They recommend mongo as the best default, should be fun.


On Ubuntu, one needs to make a link command to provide the alias of node to /usr/bin/nodejs. See more from Stackoverflow.

Installing forever, this is another node.js package and needs to be installed using npm. See also this article at exratione.com, and this article at Github. forever is needed to set some of the environment, and the use of the -a & -l flags are significant, or more accurately, the -l flag takes an argument, which is the first string after the flag. i.e. -l -a ${filename} doesn’t work. This has been bugged here…


Important commands include, forever start application and forever –help. NB Global installations using npm make links in /usr/local/bin

My notes on packages and parameters have been moved to a comment, dated 2nd May 2017.

I have written a start/stop script. Wonder if anyone else will find it useful. (Probably not, its LSB compliant.)

To solve the problems related to pump.io itself I need to set the logging on. This will need prettyprint, see this and this. Looks like python will be helpful.

This might be best encapsulated using Docker.


Some more links to help with mongo,

  1. http://docs.mongodb.org/manual/reference/configuration-options/#systemLog.component.storage.verbosity
  2. http://stackoverflow.com/questions/17708897/how-to-get-pump-io-oauth-consumer-key
  3. http://stackoverflow.com/questions/14181047/how-to-set-permernent-dbpath-for-mongodb
  4. http://stackoverflow.com/questions/10805782/how-to-run-mongo-db-as-service-using-non-default-dbpath
  5. http://info.mongodb.com/rs/mongodb/images/10gen-MongoDB_Operations_Best_Practices.pdf
  6. http://docs.mongodb.org/manual/reference/command/copydb/

Maybe I need a separate snip for mongo.


Instant Messaging and Chat

This article has not matured well. I had been planning to write a blog, which discussed the current attempts led by Google to re-enclose the chat communities.  The landscape had changed, with Google, in the spring of 2013 shit-canning Google Reader and crippling XMPP in Google Talk. I meant to write something on the modern enclosure movement, the closest I got was my blog article, “A bad week for RSS”. My thoughts on the impact of the NSA/GCHQ monitoring scandal and personal behaviour with respect to chat was posted in a article called “Stable Doors and Missing Horses…”, on my blog. The rest of this article is how to use multi-protocol chat. Continue reading “Instant Messaging and Chat”

Google Talk

I first attempted this in August 2008. I have successfully configured Pidgin 2.0.1 to act as a client although in one case I have two channels between me and my correspondent. One of the reasons was to have a second XMPP chat service to test my problems with Pidgin and my work’s XMPP server. See Pidgin on this site, and I have written this up on my old Sun blog, at an article called google talk and pidgin, published on 10th October 2008. Continue reading “Google Talk”



I have been using Pidgin as a multi-protocol client for my instant messenger services since about 2008. The contents of this page originally relate to problems I was having with pidgin on a windows system. It was written in the Autumn of 2008 and both windows and pidgin have had many new releases or updates since then. I can’t imagine that it remains of much use. i.e. this page is out of date and not very useful now. I recognised on copying the page from its source that the page required amendment so in Dec 2014, I needed to document the installation of themes I moved the 2008 content to the comments section.


In 2014, as we had moved on from Windows XP, the theme management features of Pidgin became attractive to allow it to fit in more easily.

One approach is to edit the GTK preferences, document on this page,

and/or to install new bubbles and smilies from

One needs to be careful how one unpacks these, the themes need to have the correct name hierarchy, i.e. %appdata%\.purple\themes\${Theme Name}\purple\*, some installation techniques may leave one with the theme name reepated twice.

Protocol Helpers

Lync & TRM need SIPE, available at http://sourceforge.net/projects/sipe/, when installing this using the NSIS installer, this worked fine, as you’d expect since there’s little google evidence that it doesn’t.

Skype needs its own plugin