What is the RaspberryPi?
The Raspberry Pi is a small (credit card) sized computer which costs around the £25 mark. Originally envisioned to help bring back proper IT skills to schools (rather than just how to use Microsoft Office suite and alike), just like when children of the 70′s – 90′s were growing up (I just caught the tail end of it).
The ability to not only see the hardware but to mess around with the software running it without fear of breaking it. I learned many of my computer skills from continually breaking my father’s beloved PCs as a child and then hurriedly fixing them before he found out, I’m sure if I tried I could still even run off some MSCDEX lines :)
These little devices, since launch, have been near impossible to get hold of on a short timescale for they have been gobbled up by the developer community and those who remember playing with computers in the long distant past. There is a huge number of projects coming out using this little board and, more importantly, there’s even 8-year old kids generating their own programs (read: games) using it.
My first board is used to run a media server using xbian but one of the projects I was really looking forward to was running the software for an open source project I help out on (professionally and personally) and get my own open-federated social network running from the depths of my basement (more on that below).
For more information please see: Raspberry Pi – About Us
What is buddycloud?
buddycloud is designed as a completely new way to share online: your buddycloud channel connects you to the world’s realtime conversation. Follow topic channels and plug into a community of experts. Create your own topic channels, and share them with the world – or make it private and choose who can view it.
buddycloud is one of a new breed of social tools on the web. Unlike systems like Facebook and Twitter where your data is locked away with a single vendor and it’s hard, or impossible, to get your data out or migrate to another system buddycloud is built on open standards and its code is open-source. It’s your data, you control it, you own it.
buddycloud is also federated, this essentially means that your own network can talk to someone elses network and they all understand each other. The equivalent would be like having your facebook account look up a friend’s profile on bebo which linked to another profile on a google+ account. The internet is built in a federated way and so is buddycloud.
Built on top of the open-standards of XMPP famous for the chat system Jabber, but now implemented by Google Talk, Facebook Chat, Skype, MSN, and many more… Essentially, XMPP allows for real time conversations to take place across the internet using any number of server and clients all speaking the same ‘language’.
For more information please see: buddycloud
Installing buddycloud on a RaspberryPi
The installation of buddycloud on a RaspberryPi isn’t too difficult. Firstly I started with the Raspbian debian image. Next simply follow the buddycloud installation instructions on the buddycloud wiki to install the server and webclient noting the changes below.
- First thing, run: sudo aptitude update
- Install node from the repository using:
- apt-get install nodejs-dev npm
- buddycloud requires node version >0.8.0 but seeing as we aren’t building the webclient then we can get away with the version that comes with the debian wheezy image available from the Raspberry pi site (currently v0.6.19).
- We also need to install some additional prosody packages which didn’t seem get installed by default:
- apt-get install lua5.1-dbi-postgresql-dev lua-dbi-postgresql-dev
- Replace this line in the installation instructions with the one following:
- apt-get install postgresql libpq libexpat icu4 libssl1.0.0 libssl-dev python subversion git git-core libexpat1 libexpat1-dev openssl build-essential ntp curl unzip
- apt-get install postgresql libssl1.0.0 libssl-dev python subversion git git-core libexpat1 libexpat1-dev openssl build-essential ntp curl unzip
- Increase IQ timeout for buddycoud server
- sed -i s/10000/60000/g /opt/buddycloud-server/lib/xmpp/connection.js
- This simply aligns the timeout time with that of prosody
- Note: init.d scripts do not seem to kill processes so stopped then killed them manually when needing a restart
- sudo /etc/init.d/prosody stop && sudo /etc/init.d/buddycloud-server stop
- sudo killall lua5.1 && sudo killall node
Whilst idle the whole setup puts a tiny load on the device itself, whilst loading new channels (especially with loads of items) then the maximum load I have seen has not broken the 2 barrier. I run an micro-instance on Amazon EC2 and despite running on a low powered device and not having the data connectivity of a datacentre the whole setup is of comparable speed (slightly slower when loading large new channels for the first time). The device itself is not taxed too heavily either, I’m unsure you’d want to run much else at the same time, but there is capacity there to do so.
Raspberry pi is a low-power, low-cost credit card sized computer. buddycloud is an open-source/standards, real time, secure, federated social network (now repeat 3 times fast).
From a blank SD card through to fully working (and federating!) buddycloud instance takes approximately 30 minutes and is a nice evening or weekend project. So what are you waiting for, get installing, join the future of social networks, and start federating with people all over the world….!
Join us on topic channel firstname.lastname@example.org to continue the raspberry pi chat (or alternatively sign up using buddycloud’s instance).
One Response to “Running your own open federated social network from your home for just $25”
Leave a Reply
You must be logged in to post a comment.