Skip to content

Host your own baboon server

SeyZ edited this page Feb 12, 2013 · 17 revisions

If you want to replace the default baboon-project.org server, you can host your own XMPP server and Baboon server.

Two main reasons to do that:

  • You don't want to share your code in realtime with baboon-project.org
  • You want to use Baboon with a private code repository

Install your XMPP server

baboon-project.org uses the Ejabberd XMPP server. It should works with other XMPP servers. The only requirements are having these XEP implemented (and enabled):

  • XEP 0004 (Data Forms)
  • XEP 0060 (PubSub)
  • XEP 0065 (Socks5 Bytestreams)
  • XEP 0077 (In-Band Registration)

Configure Ejabberd

Refer to the Ejabberd documentation to configure it.

The default configuration file of Ejabberd (/etc/ejabberd/ejabberd.cfg) should works pretty well. You can adjust the SERVED HOSTNAMES to match your needs. For example:

{hosts, ["localhost", "<domain_name>"]}.

Configure XEP 0065 (Socks5 Bytestreams)

ACL

{acl, proxy_users, {server, "<domain_name>"}}.
{access, proxy65_access, [{allow, proxy_users}, {deny, all}]}.

mod_proxy65

{modules,
 [
  %% ...
  {mod_proxy65,  [{host, "streamer.<domain_name>"},
                 {name, "File Transfer Proxy"},
                 {hostname, "<domain_name>"},
                 {ip, {0,0,0,0}},
                 {port, 7777},
                 {access, proxy65_access}
                 ]},
  %% ...
 ]}.

Configure the XEP 0077 (In-band registration)

To authorize In-band registration, check register ACL (replace deny by allow if necessary):

{access, register, [{allow, all}]}.

Install your Baboon server

Installation

$ pip install baboon

Configuration

The configuration file needs to be placed in /etc/baboon/baboondrc or ~/.baboondrc.

[server]
pubsub=pubsub.<domain_name>
working_dir=<working_dir>

[user]
jid=admin@<domain_name>/baboond
passwd=<password>
  • Replace <domain_name> by the real domain name to use (by default, baboon-project.org)
  • Replace <working_dir> by the full path of the directory you want to store git repositories
  • Replace by the password of the admin@<domain_name> JID account. (by default, ********** :-D). The admin account will be created in the next section.

Create the admin JID account

Baboon server is just a XMPP client. You need to register the Baboon server account (admin@<domain_name>). To do that, you have multiple possibilities:

  • Use the Baboon client on your computer: $ baboon --host <domain_name> register admin --nosave
  • Use ejabberdctl if you are using the Ejabberd XMPP server: $ ejabberdctl register admin <domain_name> <password>

Start the Baboon server

$ baboond

Baboon client

$ baboon --hostname <domain_name> register <username>
$ baboon create <project_name> <git_url_of_the_project>
$ baboon start
  • Replace <git_url_of_the_project> by the git url of the project (e.g. git://github.com/SeyZ/crazy-baboon)

That's it! Congratulation! If you have any problem, don't hesitate to post an issue or to contact me at [email protected]