1This is the README file for DJabberd, a scalable, extensible Jabber/XMPP server. 2 3Please refer to 'perldoc DJabberd' after installation for details. 4 5##################################################################### 6 7* Description 8 9DJabberd was the answer to LiveJournal's Jabber (XMPP) server needs. 10We needed: 11 12* good performance for tons of connected users 13* ability to scale to multiple nodes 14* ability to hook into LiveJournal at all places, not just auth 15 16Basically we wanted the swiss army knife of Jabber servers (think 17qpsmtpd or mod_perl), but none existed in any language. While some 18popular Jabber servers let us do pluggable auth, none let us get our 19hands into roster storage, vcards, avatars, presence, etc. 20 21So we made DJabberd. It's a Jabber server where almost everything 22defers to hooks to be implemented by plugins. It does the core spec 23itself (including SSL, StartTLS, server-to-server, etc), but it doesn't 24come with any way to do authentication or storage or rosters, etc. 25You'll need to go pick up a plugin to do those. 26 27You should be able to plop DJabberd into your existing systems / user- 28base with minimal pain. Just find a plugin that's close (if a perfect 29match doesn't already exist!) and tweak. 30 31##################################################################### 32 33* Installation 34 35DJabberd follows the standard perl module install process 36 37perl Makefile.PL 38make 39make test 40make install 41 42The module uses no C or XS parts, so no c-compiler is required. 43 44###################################################################### 45 46* Documentation 47 48The documentation for DJabberd is somewhat lacking. Although 'perldoc 49DJabberd' will give you the basics, and pointers for hackers, the best 50way to get started is by delving into a demo application. 51 52In the demo/ directory, you'll find a fully functional demo application, 53which consists of: 54 55 * A running server 56 * 2 pre-configured clients 57 * An echo bot that is on all clients' roster 58 59The demo application is heavily commented, and it's suggested you read 60through the source code & comments to understand how it works. 61 62Start by reading the demo/demo.conf file, and follow the classnames 63from there. 64 65To start the server, type the following commands from the same directory 66as this README: 67 68 perl -Ilib -Idemo/lib djabberd --conffile demo/demo.conf 69 70You can now connect to it using the standard jabber ports on your localhost. 71Read the demo/demo.conf file for additional notes. 72 73For extra diagnostics from the server, you can increase the debuglevel 74by setting the following environment variable: 75 76 set LOGLEVEL=DEBUG 77 78 79In the examples/ directory there's an example djabberd.conf 80configuration file and the 'sixatalk' program. 'sixatalk' is an 81example djabberd based server integrating with an LDAP directory. 82 83