May 14th, 2006

belize

My new JID, or how to run DJabberd on Debian

Now that s2s is secure and memory leaks are fixed, I'm now running djabberd on my personal server/domain.

My new canonical instant messaging JID is now brad@fitzpat.com . Chat me up. (if you're using something which uses Jabber for IM interop, which includes Google Talk and I think Gizmo too....)

If you want to run this yourself on Debian, here's a short guide:
$ wget http://danga.com/debs/libdanga-socket-perl_1.51-1_all.deb
$ wget http://danga.com/debs/libsys-syscall-perl_0.1-1_all.deb
$ sudo dpkg -i libsys*.deb libdanga*.deb
$ sudo apt-get install openssl libdbd-sqlite3-perl \
 libnet-ssleay-perl libnet-dns-perl libdigest-sha1-perl \
 libxml-sax-perl libxml-libxml-perl liblog-log4perl-perl 
 subversion libdigest-hmac-perl

$ svn co http://code.sixapart.com/svn/djabberd/trunk/ djabberd
$ cd djabberd
$ openssl req -x509 -newkey rsa:1024 -keyout server-key.pem \
         -out server-cert.pem -days 365 -nodes
$ htdigest -c djabberd.users djabberd [your-username-without-at-sign]
(enter password twice)

Make a conf file. mine is:
$ cat fitzpat.conf
OldSSL  enable
<VHost fitzpat.com>
  S2S enable
  RequireSSL yes
  <Plugin DJabberd::Authen::HTDigest>
     Realm djabberd
     HtDigest /home/bradfitz/djabberd/djabberd.users
  </Plugin>
  <Plugin DJabberd::RosterStorage::SQLite>
     Database /home/bradfitz/djabberd/fitzjabber.sqlite
  </Plugin>
</VHost>
Then run it:

$ ./djabberd --conf=fitzpat.conf

Or daemonize it with --daemon|-d.

Enjoy.