We're all pretty used to running networked services in our homes or small businesses: Mail servers, file servers, Web servers and the like are common, easily configured and generally easy to run. One service that you might not see as much is instant messaging, mostly because people are content to use the many free public services. Lately, though, it's just as easy to run an instant messaging service as any of the others we've mentioned.
You might be wondering what the point would be. I'll offer you several:
With your own server, you're more secure because you can control how the people using it interact with the outside world. With the server we'll be looking at, Wildfire, you can control which IM networks your server can communicate with, which cuts out a lot of potential security issues at the cost of some flexibility.
You can set up useful services, like online chat rooms, Web presence information, and a connection with your existing directory service (if you have one).
You can control your namespace. If you own the domain "widgetco.com," all your IM users can get a name unique to that domain, and one that will project a more professional image, perhaps, than what they were stuck with by a public service, where they might be "fluffykittenz192."
Some services work better over a private server, such as file transfers.
Thanks to Google introducing Google Talk, the Jabber protocol has received a windfall of public awareness. The burst in awareness, though, hasn't been matched by a jump in price. Jabber is still free of charge and generally open source. The problem with setting up a Jabber server is picking which one to use and getting it to work. Once it is working, though, you and your users can talk to Google Talk, AIM, Yahoo, ICQ or MSN users, all from one IM client.
Like a lot of complex software, jabberd, the server offered by the Jabber project, has its share of issues when it comes to ease of use and installation. They aren't problems you can't overcome, especially if you're the sort who can cope with configuring and running a Linux server with a simple text editor. For a small business or weekend network warrior who just wants to set up a secure personal IM service, however, jabberd is a bit fussy.
I've set up a few Jabber servers over the years, and while they've been stable for the modest loads I've placed on them, there's always been the sense that they aren't exactly burned in. The transport system, which allows a Jabber server to talk to commercial IM services like AIM and Yahoo!, has seemed especially finicky and fragile. That isn't to say they're no good, or unreliable ... I just didn't like staying on top of their logs to note when a transport service died.
There are Jabber implementations that aren't as fussy as the raw product shipped by the Jabber project. Many of them, however, are commercial and they can be a bit pricey for something that's only going to support a small organization. What the world has been wanting, whether it realized it or not, is a Jabber server that's simple to set up and maintain, scalable, and with support options for business.
Jive Software, a company here in Portland, Oregon, produces Wildfire, which fits that bill and remains, despite its slick management tools and support options, open source.
For someone who wants to install an IM server that "just works," Wildfire offers a few key advantages over jabberd:
It has a very clean, modern Web management interface with slick AJAX touches that make it possible to manage every aspect of the server from a browser.
It provides a revamped transport architecture that makes connecting with public IM networks like AOL and Yahoo! a snap.
It offers a plug-in architecture that makes adding or removing functionality point-and-click simple.
Given a few basic simple steps to configure your network for Wildfire, you can have a running IM server in less than ten minutes.
As with any installment of Networking Notes, when we talk about setting a new network service up, we're going to be using a Debian GNU/Linux server, just as was covered by Carla Schroder in her series on building a Linux appliance. Wildfire also, however, runs on Windows and Mac, and the very simplest Linux installation takes the form of an RPM package for Red Hat.
We're splitting this tutorial into two parts, too. We'll do all the basic steps we need to do to get up and running this week, and we'll stop just short of flipping the switch and turning the service on. We'll do that next week, when we have time to take some basic configuration steps before opening the server to the world.
We're going to assume that you want a pretty simple setup to experiment with, so we're going to leave a few bells and whistles, such as external database support, out.
All that said, here are the basics to get Wildfire ready to run:
Download the Wildfire RPM package from igniterealtime.org, which is Jive Software's open source community site.
Install the package "alien" on your Debian system. As the root user, or if you have sudo configured, open a terminal and issue the command apt-get install alien. Alien handles the process of turning RPM packages into Debian-compatible deb packages.
Find where you put the Wildfire RPM and issue this command in the same directory: alien wildfire31_1.rpm
Install the resulting deb package: dpkg -i wildfire_3.1.1-2_i386.deb
Change your working directory to /opt/wildfire/bin/extra with cd /opt/wildfire/bin/extra
With your favorite text editor, such as emacs or nano, edit the file called redhat-postinstall.sh. Look for lines 31 and 32, which read: