Warning: Trying to access array offset on value of type bool in /home/www/blog/wp-content/themes/catch-box/functions.php on line 1079

Wave in a Box (GTUG BootCamp)

Basic Installation

Two days before the Google Developer Day 2010 I attended the Munich GTUG BootCamp (Steph and Nils took some nice photos. See here, here and here).

On day one, we (Daniel, Sascha and me) really had no idea what to do, till Stephan Linzner said that he wants to install Wave in a Box (Wave is a discontinued Google service, unfortunately). It turned out that this was really simple (we followed mainly this description).

1. install Mercurial source control management (if you do not have it already)

2. open a shell, cd to a directory of your choice and type:

$ hg clone https://wave-protocol.googlecode.com/hg/ wave-protocol
$ cd wave-protocol
$ ant
$ cp run-nofed-config.sh run-config.sh
$ vi run-config.sh #configure your setup
$ ./run-server.sh

3. What should I say, that’s it. The most effort we spent, was to wait for the ant task to finish (was enough time to drink a bottle of this very strange Leetmate stuff. The first bottle is really disgusting, the second is better and the third is awesome). The result is a very simple working Wave installation with a simple user management. But the basic functionality, kind of real-time collaborative forum, is there.

Some remarks: The main configuration file is run-config.sh where you have to setup your hostname and domain. Obviously Wave in a Box supports Memory or MongoDB for storage of Users, Attachments and Accounts. So if you want to use a “real” persistence, install MongoDB.


Wave in a Box supports the federation between Wave servers in sense of a multi server synchronisation. For detailed information refer to this. We had the idea to install on every laptop one Wave server and let them federate. This was much much more complex (4 hours more complex ;-))

Referring to the federation description it is normally necessary to change the Nameserver settings (unfortunately we did not have this possibility).

But first we installed OpenFire (I used the linux version on OSX) for the required XMPP protocol. We followed the instructions here including the chapter of the External Component Settings. Next Step was to create Certificates, see here. Do not forget, while running make_cert.sh to type in the correct DNS name for the Common Name question (!this is important!).

Next was to dirty hack /etc/hosts. We had to insert some entries for hostnames (whoever needed them). The two other laptop hostnames where backblech and namelessapple2, the domain student.muc.     backblech.student.muc wave.backblech.student.muc proxy.backblech.student.muc pubsub.backblech.student.muc conference.backblech.student.muc     namelessapple2.student.muc wave.namelessapple2.student.muc proxy.namelessapple2.student.muc pubsub.namelessapple2.student.muc conference.namelessapple2.student.muc

At this point we where able to invite user from one of the other laptops to a new Wave. Very nice. (Although we have to admit that we did not dig deeply into the used concepts. But what we understood was interesting)

I am very much looking forward how the Wave group is making progress.