I’m trying to install DJabberd on FreeBSD. I followed:

http://osterman.com/wordpress/2007/08/11/djabberd-debian-howto</a>

and adjusted for FreeBSD layout.

cd /usr/ports/net-im/p5-DJabberd
make install clean

then:

mkdir /usr/local/etc/djabberd/

and saved this as djabberd.conf:

OldSSL  enable
# health checks from this IP (directive can be repeated) won't log and
# won't allocate a connection id
DeclareMonitor 127.0.0.1
AdminPort 5200
ClientPort 5222
ServerPort 5269
SSLCertificateFile    /usr/local/etc/djabberd/server-cert.pem
SSLCertificateKeyFile /usr/local/etc/djabberd/server-key.pem
<vhost alliance.com="">
  S2S enable
  RequireSSL yes
  <plugin djabberd::authen::htdigest="">
    Realm djabberd
    HtDigest /usr/local/etc/djabberd/djabberd.users
  </plugin>
  <plugin djabberd::rosterstorage::sqlite="">
    Database /usr/local/etc/djabberd/djabberd.sqlite
  </plugin>
  <plugin djabberd::authen::mysql="">
    DBName               djabberd
    DBHost               127.0.0.1
    DBPort               6723
    DBUsername           dbusername
    DBPassword           dbpassword
    DBTable              user
    DBUsernameColumn     username
    DBPasswordColumn     password
    DBEncryptedPasswords 1    DBWhere              canjabber = 1
  </plugin>
</vhost>
openssl req -x509 -newkey rsa:1024 -keyout /usr/local/etc/djabberd/server-key.pem -out \ /usr/local/etc/djabberd/server-cert.pem -days 365 -nodes
djabberd --conf=/usr/local/etc/djabberd/server.conf --daemon

The command htdigest didn’t work for me because I didn’t have it installed, so I used an htpass file from another machine and changed the realm to “djabberd”.

OK, to use HTDigest and SQLite, I needed to get the latest subversion code. Also had to copy over the libs:

cp -R DJabberd-Authen-HTDigest/ /usr/local/lib/perl5/5.8.8/
cp -R DJabberd-RosterStorage-SQLite/lib/DJabberd/ /usr/local/lib/perl5/5.8.8/DJabberd/

and install DBI and DBD::SQLite, and DBD::MySQL. In the end, I couldn’t get any of that to work, but I did get the very basics to work by using static settings:

  <plugin djabberd::authen::allowedusers="">
     Policy accept     AllowedUsers albertlash
  </plugin>
  <plugin djabberd::authen::staticpassword="">
      Password password
  </plugin>

This looks like a great alternative to ejabberd! Ouch, I just noticed that offline messages aren’t working. Doh!

danga.com/…/djabberd/2007-January/000271.html

I am still very excited about djabberd as I can actually understand the code! :-) I need to figure out how the configuration file is formatted better.

I just posted to Erik’s blog a note about the HTDigest, you don’t need the “@” sign or the domain when creating the htdigest file. Also, I just commented on Brad’s blog (the author of DJAbberd), and am posting here in case it gets filtered out:

Hi Brad, Great work. I've been using ejabberd for awhile on debian, but am trying to make an ~8-16MB jabber appliance on top of m0n0wall, sort of like askoziapbx, but for jabber. While ejabberd on debian has its niceties (like registration and offline messages), running erlang on freebsd (minibsd) on an embedded device is much harder than perl. FYI - found out about your work via the news that MT4 will be GPL. That's great news! - Docunext

WAIT! DJabberd DOES have offline storage! :-) :-) :-)

cpan.org/…/OfflineStorage.pm

cpan.org/…/PrivateStorage/SpoolDirectory.pm

¥