Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

47 lines (32 sloc) 2.41 KB

Campfirer: A Jabber / Campfire Gateway

Campfirer gives campfire users a way to connect to rooms using any Jabber (XMPP) client. It does this by implementing (a portion) of the multi-user chat extension. Note that you must first have an account at and have created a room there before you can use campfirer to connect.

There are two ways you can use the campfirer gateway:

  1. You can use the gateway running at to connect to any campfire room. See the instructions at for more information.
  2. You can run a Jabber server at your own domain and run campfirer as an XMPP component. This process is described below.

The first option is the easiest to try things out - but there is no guarantee of service quality or uptime.


  1. First, edit your jabber server config file to allow for a new component connection. If you are using ejabberd, this can be done by adding the following lines to the services section of your ejabberd.cfg file. Make sure to change the password to something actually secret, and then restart your jabber server.
    {listen, [
    {5554, ejabberd_service, [
                            {ip, {127, 0, 0, 1}},
                            {access, all},
                            {shaper_rule, fast},
                            {host, "", [{password, "secretpassword"}]}
  2. Install Twisted.
  3. Make sure your jabber server is running and that you can connect to it.
  4. Edit your DNS to add a record for and make sure it resolves before continuing.


First, get the source:

git clone git://

Then, within the campfirer directory:

sudo python install

Copy to and edit it for your configuration. Minimally, you should set and xmpp.muc.password.

You can then copy your and the campfirer.tac file anywhere you'd like and can start the server with:

twistd -noy campfirer.tac

See for more information.

Jump to Line
Something went wrong with that request. Please try again.