Posted
by
kdawson
on Friday April 10, 2009 @10:48AM
from the take-aim-first dept.

palegray.net writes "Inspired by a recent Ask Slashdot, I've written a step-by-step tutorial for setting up an Openfire server on Debian Linux, for those interested in running their own open source collaboration server. Aimed at those just getting started with collaboration software, the tutorial shows precisely how to get Openfire up and running quickly on a base Debian install, and offers a basic feature tour of the software's plugin and IM gateway functionality."

I LOVE Virtualbox. I upgraded it just yesterday when I (clean) upgraded my system from Ubuntu Intrepid to Jaunty Beta. I installed virtualbox, copied the old config directory, it said "virtualbox has detected some old images blah blah blah, do you want to upgrade the files", I clicked yes, in less than a second I was running the image. Job done.

So as you can see, Virtualbox seems to be very good at ensuring that the images will still work even after an upgrade.

I love Virtual Appliances. But HOWTOS are still necessary because I, for one, always question the security/authenticity of 3rd party VMware images. I use them to eval software and, if I like it, create my own appliance so I have full control and know there are no rootkits/backdoors installed...

You hit the nail right on the head. I do create VMware and Virtualbox images for various appliance setups, and I share them with friends who know me personally. However, I completely understand admins who wouldn't run something I created in their enterprise, as they have no real assurance that I haven't put something nasty in there (of course I haven't, but they're doing their job by asking questions like that).

That's fine for a demo. I wouldn't want to run a chat server with hundreds of users that way.

Do you mean you wouldn't run a production server as a VM image or you wouldn't run it using a VM image you did not create yourself? If the former, you should know a lot of servers are moving to running VMs for ease of: scaling, hardware sharing, backups, hardware migration, and cheaper "in the cloud" hosting. Why wouldn't you want to run your production server in a VMWare VM?

Do you mean you wouldn't run a production server as a VM image or you wouldn't run it using a VM image you did not create yourself?

The latter. Recall that TPP thought that VM appliances made installation how-tos obsolete. That was the idea I was pooh-poohing.

As it happens, I'm the documentation lead for a server [sun.com] for which virtualization is very important. A very common use case for this system is "consolidation": you take a rack full of low-end servers each handling a separate application, and convert them all into a single machine running each application in a separate VM. Savings in power and real-estate cost can be enormous. VMware

If you're running 30 different services on 30 different machines, wouldn't it make as much sense to consolidate them to 15 services on each of two modern machines, instead of needing to maintain 30 different virtual machines? That way, you're also getting native performance without the overhead of virtualization.

On the other hand, in cases where someone is hosting thousands of the same application on individual servers, it makes a lot mo

If you're running 30 different services on 30 different machines, wouldn't it make as much sense to consolidate them to 15 services on each of two modern machines, instead of needing to maintain 30 different virtual machines?

That's something I've always wondered as well. With a virtualised environment, you'd have to keep up the security patches for 30 different environments (among other tasks you'd need to replicate 30 times). Modern OSes *are* capable of running more than one process - stick em all on the

If you're running 30 different services on 30 different machines, wouldn't it make as much sense to consolidate them to 15 services on each of two modern machines, instead of needing to maintain 30 different virtual machines?

I asked pretty much the same question when I started working with this hardware.

In many cases, you could put all 30 in one machine. The machine I described is advertised as supporting 80 virtual machines at once. (This number will go up drastically when the Istanbul [youtube.com]/Hypertransport 3 version is available.) If it can support 80 VMs, it can certainly support 30 services!

Thing is, IT people don't like to put 30 services on one system. They don't even like to put 2. When a system goes down, they don't want more

Something this basic requires a posting on the front of Slashdot? Great choice, kdawson!

I'll be sure to try and get my article about setting Openfire up on FreeBSD here soon..........

Ah, feel free to excuse yourself at anytime if you feel the rest of us are not worthy of your all-knowing power.

He was merely posting as a response to several queries he had received for the information, and since it's not quite as simple as apt-get to do this, along with the fact that FOSS collaboration tools are gaining popularity in this economy of ever-shrinking budgets, I find it rather relevant.

I don't like to add a "me too" but not just 5 days ago I added an "ejabberd" service. Found it to be fairly complicated and problematic. The documentation presumes one would be all knowing on the subject. Transports were complicated, modules assumed I would read the source code to make them work, the included readme files were a little bit circular and devoid of actual configuration information. And the init script that was provided completely failed to do anything at all. It took a few days messing about t

This was a direct response to an Ask Slashdot article a few days ago. The community seemed more than interested to offer tips for what software they advised using, but nobody seemed to offer any concrete installation instructions. The Openfire community documentation is great, but kinda hard to wrap your brain around for Debian installs (mostly because it doesn't cover prerequisites and some other points).

I think that that was grandparent's point: To see somebody write an article on setting up a jabber server, then casually note, near the end, that XMPP seems to work OK for him, as though it were some sort of esoteric peripheral configuration option, tends to cause one's eyebrow to start migrating up the forehead.

I wonder if, perhaps, that is an artefact of the fact that XMPP is, strictly speaking, derived from jabber, rather than just another name for it. Possibly there are some differences between earlier "jabber" implementations and later "XMPP, informally know as jabber" implementations.

Either that, or it could just mean that Openfire is more focussed on the c2s part of XMPP and what is experimental is the s2s functionality. i.e. the "XMPP" they are calling experimental is under "Experimental Gateways" in the configuration.

Try the Google Talk client (Google Talk is Jabber/XMPP), I don't know if you can connect to non-google servers, but with federation you should be able to talk to people on other servers anyway.
Disclaimer: I don't actually have a BlackBerry, but I've heard the client is good.

I get really worried about how much the author actually knows about the server...

Hi, I'm the guy that wrote the article. You'll note in the screenshots that under the gateway settings section XMPP is lited as "experimental." I thought it was pretty odd, too. That's why I specifically mentioned the fact that it worked great for me.

I work at a small business with 10 or so employees. Recently, people have been getting more and more used to Instant Messaging as a way to provide non-intrusive information that is more instant than email. Lately we've even taken to setting up chat rooms to bring together three or four stakeholders to have a short conversation about something.

Now, I know XMPP and OpenFire support Multi-User chats, but what about more robust conferencing? The other day, I wanted to send a screenshot of an application I was working on to everyone in the MU chat. From what I could tell, this is not possible in OpenFire, and perhaps not supported in XMPP. Also, it would be great to collaborate on or point to a file that exists in our shared filesystem, which I would think is a fairly common use case, but I could not find a way to do that either.

So, I suppose what I'm wondering is, are there any solutions similar to Openfire but provide more robust conferencing? It'd be killer to be able to toss revisions around and maybe do some whiteboarding or something...

And if not, who wants to help me write an XEP that will address these use cases?;)

"The other day, I wanted to send a screenshot of an application I was working on to everyone in the MU chat"

The Spark client that the same company offers has the ability to send screen-shots, actually you grab any part of the screen you want and send it. That is the one feature that is used a lot where I work.

Right, but unless I'm mistaken, there is no way to send a screenshot to all of the people in a multi-user chat without initiating individual file transfers. Collaboration between two people seems fairly well supported, especially when you include the above-mentioned whiteboard application, but nothing I've found works when you want to collaborate among three or more people.

someone who knows how to document a procedure. I don't use linux but even I could follow the instructions.

This is one of the key reasons for a slow adoption rate among interested users. Instead of getting the usual, "RTFM newb!", if there was more explicit documentation such as this that people could be pointed to, people would not be so readily turned off.

And no, MAN pages do not count as documentation. Some people (dare I say most?) need step-by-step instructions on how to do something the first time so they are sure they are doing things correctly. Afterwards, they're free to tinker til their hearts delight.

And no, MAN pages do not count as documentation. Some people (dare I say most?) need step-by-step instructions on how to do something the first time so they are sure they are doing things correctly. Afterwards, they're free to tinker til their hearts delight.

*gives a mold-friendly thumbs up*

Damn straight about the Man Pages! Man pages are for reference for experienced users. In other words, for those who are wondering, "What are the parameters again?" Why?

You see, when you read the man pages, parameters have all these "[]" and "-" and other things. I've occasionally come across programs that had "optional" parameters in their man pages that ended being required.

I appreciate the general sentiments in your post, but the above is simply not correct. Putting aside issues of writing style, quality, completeness, etc., along with the abomination called info pages, manpages ARE documentation.

What you are looking for or expecting is a Tutorial. And most likely one written in a friendly style that includes a breadth of related topics (like "How do I install this thing?" or "What's a protocol?" or "How does XMMP work?". For that, I'd suggest a Google search. Programmers are expected to document their work, but it's unreasonable to expect them to write Tutorials.

To put things in a reverse perspective, the frustrating thing for non-Windows users is that on Windows, almost nothing is documented. Lots recursive clicky links that pop up HowTo's with explanatory or descriptive verbage, but no real documentation.

the above is simply not correct. Putting aside issues of writing style, quality, completeness, etc., along with the abomination called info pages, manpages ARE documentation

You are putting aside things that cannot be put aside. Far too may Linux man pages are brief pointers to the info info, and far too often the info pages merely rehash the inadequate content of the man pages.

To qualify as documentation, a man page must include sufficient detail to act as a reference, not merely a command line summary.

This is one of the issues that pisses me off as a former open source programmer who gave up on it because of user whining.

When you're willing to spare the time to help a project write it or pay someone in that project to write it, then you can complain about lack of documentation. A programmer is a busy person - they usually have a full-time job to pay the bills (assuming their full-time job isn't to work on the project, in which case, you are completely justified in castigating them for a lack of document

I'm talking about the manual pages, not the comments in the code. If a programmer waits to document the code that they are writing, then you are correct, they are bad programmers.

However, waiting to write a manpage, tutorial, or quickstart is something that can be done after the program works properly. Otherwise you've got a manpage, tutorial, or quickstart that will have to be constantly updated as you make changes to the program.

I've written Perl scripts that were well commented and became the backbone

Although I understand that point of view, I actually find it harder to keep track of where I am in a procedure if it's all on one very long page. I frequently scroll around a bit to double-check things, and it's a lot of easier to avoid getting lost with pages only about 2-3 screens high:).

Man pages are (or are meant to be) reference documentation. Reference docs are important, but yeah, so are procedural docs.

Thing is, they're really hard to write well. I earn an absurd amount of money because I'm good at writing them. Most developers are not. Even the ones who are good writers (a distinct minority) tend to be good at academic-style writing, where you assume a lot of sophistication on the part of your reader. Such writers have no patience for the nit-picky detail good procedural docs need.

(I once wrote software release notes which included an explanation of how to unzip an archive. The developers, who happened to be pretty brilliant computer scientists doing cutting-edge work, thought their audience was "smarter" than that and made me take it out. Wackiness ensued.)

If you want good procedural documentation, you have to put a lot of work into creating it. Most open source projects don't have the extra bandwidth, and even if they do, they don't have people with the right skill set. That boils down to fluency with language and and stubborn patience when describing boring details. Not a big skill set, but one very few people seem to have.

Your company hiring? Part of my job is doing exactly what the author of this posting does (and apparently you). Document, step-by-step, how to do something. I'm writing for people who are supposed to know this stuff already yet I still provide screenshots and exact steps (Click Next, Click Next, Click Next, Click OK) so there is no misunderstanding or confusion as to what needs to be done.

I hate those documents, where someone rambles on for 10 pages, about things like "to move your mouse, put your hand on the mouse... you know, that thing on the side of your keyboard. you have to push it. then look at the flat surface in front of you. do you see that little arrow on it. no not that on the right border. that is the scroll bar..." and so on.

The point that apparently not a single writer of documentation (or software for that matter) gets, is that you can't write in one level of detail, for all

I hate those documents, where someone rambles on for 10 pages, about things like "to move your mouse, put your hand on the mouse... you know, that thing on the side of your keyboard. you have to push it. then look at the flat surface in front of you. do you see that little arrow on it. no not that on the right border. that is the scroll bar..." and so on.

So do I. Unfortunately, the writing style you describe is all too common. I don't use it.

I mostly write for really for fairly technical users, so I can get away with assuming that my readers know how to use a mouse and interact with a GUI. But even if I couldn't, I have techniques for conveying the trivia to naive users without driving the advanced users insane.

It's not that hard to write newbie instructions in such a way that the advanced users can easily skip over it. You put in a separate part of the doc

I think you traverse the wrong corners of internet, cause my impression is that most people are very helpful, especially to newbies. I've written lots of question on a number of different forums on the net and have never been brushed off.

OTOH, if you try to ask a question to a mailing list, you really need to take some time to understand the tone of the conversation there before posting anything. Try asking how to setup your webcam on the linux kernel mailing list....

Man pages are the reference.Every Software has (or should have) a reference documentation, and a guide.The short are called "HOWTO"s in linux. And the guides are located at tldp.org.When they mean RTFM, they usually mean that you should read the guide at this site, or something similar (like the KDE help for KDE), and if that isn't enough, read the reference.

If this does not solve it, you still can write a mail to the developers, or if this is not possible, ask in a forum or irc chat.

Whats wrong with debian? Yes, CentOS and the likes are great but Debian is still a very good OS and its really just opinion of whether you prefer the APT or RPM system. Personally I use both. I have a dedicated server currently running a small number of Source-based Game servers and my home server is running CentOS 5.2.
Debian Lenny is a great OS, its not really a complete re-write, but thats the point. Its a good, mature system which can only get better.
And what operating system were you referring to? W

I don't even know where to begin on this one, so I'll just jump right in. Debian's community is far from broken. It's extremely active, as anyone who bothers to subscribe to the mailing lists knows. Your note about Ubuntu is beyond laughable; you are aware that Ubuntu is based on Debian, aren't you? Wow.

Advising your employer to use Debian stable is a great move. Shit doesn't randomly change and/or break, the base install has a small footprint (great for building appliances), and their security team is t

The article is referring to the connector that allows your server to talk to the Google Talk server to pass messages.
My guess is that it's unstable because Google Talk uses some non-standard options when talking XMPP.

GoogleTalk server uses XMPP standards to communicate. Only time I've seen Server to Server messages not function properly with GoogleTalk is when you do not have proper SRV records set for your domain.

Since we are talking XMPP/Jabber, I would be interested to see the User Gaming [xmpp.org] specification implemented by XMPP messengers. This would make a nice open cross-platform alternative to XFire and the likes.

I noticed someone elsewhere suggested implementing this and then grafting a XFire compatibility layer around it, so that people could migrate to the open platform.

Greatly. Although I think steam has already made most of the features of xfire entirely obsolete. If it implemented something like a ventrilo style server based chat system it would be fantastic and an instant win.

TFA states, "[openfire is] an extremely capable collaboration system [...] able to do much more than simple chat". I use Openfire, and am not aware of it's collaboration system. Can anyone explain? SInce TFA doesn't seem to...

Jive software has 'collaboration' tools. They all suck, but they have them.

"Jive Software has always envisioned one world, in which everyoneâ"employees, customers, partners, prospectsâ"has a voice. We've strived to eliminate the top-down, outbound, one-way communication that dominates most enterprises and makes work harder than it needs to be."

Sadly, Openfire did have some issues when I used with icedtea6. The best example I can think of is the MSN transport. MSN simply wont connect because of the security algorithm it uses. This is caused by icedtea6 missing that algorithm which Sun's JDK has.

Sadly, Openfire did have some issues when I used with icedtea6. The best example I can think of is the MSN transport. MSN simply wont connect because of the security algorithm it uses. This is caused by icedtea6 missing that algorithm which Sun's JDK has.

Hmm, have you tried it with Debian's openjdk-6-jre package? I think the Sun security provider was opened quite some time ago.

Do you remember which algorithm causes the trouble? This is really a bit odd because even the Sun-derived JDKs (like those from IB

As other posters have noted, I encountered issues with OpenJDK while I was writing the first draft of the tutorial. I'll probably go back and try it again, communicating the precise issues I ran across to the Openfire project. Hopefully they (or me, if I can find the time) can get the issues resolved, as I would have greatly preferred using a JVM in the "free" repositories.

I was surprised not to find it when I did an "aptitude search openfire" after seeing a few people mention it in response to the ask slashdot. (My jabberd2 setup works well enough for my company anyway - I was just curious.)
This howto says it is GPL, then says to install prerequisites such as sun java from "non-free" and then download a.deb file to install. Why wouldn't it simply be added to the debian repo so installation is as simple as "aptitude install openfire"? Any idea if the company behind it ha

And shouldn't this howto be put on tldp.org? or are people more interested in making ad revenue these days than helping contribute back to the linux community?

Wow, dude. Way to be appreciative of others' work. As a point of fact, I have every intention of contributing this documentation to TLDP. I guess it's a crime to post it to my own site first, for own community to enjoy. When you write your own documentation, you'll be more than free to determine where it goes and when. Until then, how about losing the attitude?