LowEndBox - Cheap VPS, Hosting and Dedicated Server Deals

How to Install & Configure Jabber on your VPS

lowendtutorial

There’s a variety of reasons as to why you may want to turn your VPS into a private instant messaging server. Regardless of your motivations, we’ve compiled a guide that will help you understand the basics of installing, operating and managing a VPS running Jabber, a popular instant messaging platform.

The Background of Jabber

Before we dive head first into Jabber, let’s spend a few moments on the background of the Jabber project. Jabber is an initiative to produce an open source, XML-based instant messaging platform.

Jabber was started in 1998 by Jeremie Miller. The Jabber standards and architecture help create a distributed IM system. Systems administrators may notice that Jabber is similar to an email server, with users connecting to these systems locally.

Jabber vs. Other IM Platforms

This approach is diametrically opposed to the monolithic system architecture provided by other service providers as AIM, ICQ, MSN and Yahoo, where a single central server or group of centralized servers provide the messaging service.

Jabber’s similarities to email architecture doesn’t stop there. Jabber addresses its users with an addressing scheme almost identical to the basic SMTP scheme. For example, myname@myserver.com is a valid Jabber address.

The XMPP Protocol Explained

Jabber was the original name for the XMPP protocol: Extensible Messaging and Presence Protocol that is based on XML. Unlike most instant messaging protocols, XMPP is defined in an open standard and uses an open systems approach of development and application, by which anyone may implement an XMPP service and inter-operate with other organizations’ implementations.

Although many server and client implementations are distributed as free and open-source software, numerous freeware and commercial software implementations of the XMPP protocol also exist.

Getting Started with Installing Jabber

Let’s get started and see how to install one of the available versions on our server. We chose to use “eJabberd” which has also a nice web interface that allows you to easily administer it once installed.

The installation is pretty simple. Just connect on you VPS and type the following command:

> sudo apt-get install ejabberd (Ubuntu/Debian)

> yum install ejabberd (CentOS/Fedora)

After it is installed, you will need to edit the configuration file found at /etc/ejabberd/ejabberd.cfg in order to change the listening address. Find and change the following line (unless you only want to run on localhost):

{hosts, ["localhost"]}.

And change it to:

{hosts, ["localhost","servername.com"]}.

or

{hosts, ["localhost","PUBLIC-IP-ADDRESS"]}.

Once this is done, we will now need to create the admin user ad give the user administrative rights on this server. Find the following line in the configuration file:

{acl, admin, {user, "", "localhost"}}.

And change it to:

{acl, admin, {user, "admin ", "servername.com"}}.

Or, depending what address you chose earlier:

{hosts, ["localhost","PUBLIC-IP-ADDRESS"]}.

Save and exit and restart the service with the following command:

> /etc/init.d/ejabberd restart

We will just have to set the password for your admin user in order to connect to the web interface. Do this using the following command:

> ejabberdctl register admin servername.com password

or this if you used the public ip address in the configuration file:

> ejabberdctl register admin PUBLIC-IP-ADDRESS password

We are now ready to connect to the web interface and add more users. Open your browser and connect to the following address:

http://servername.com:5280/admin

or

http://PUBLIC-IP-ADDRESS:5280/admin

You will be asked for the admin credential we just created, so type them in and welcome to your web interface.

In order to add more users just click on “Virtual Hosts” on the left menu, then select the server’s address (should be servername.com or PUBLIC-IP-ADDRESS) and then select “Users”.

You can now choose a username and a password for each one of your users. You can of course do the same from the command line using the following command:

> ejabberdctl register user servername.com password

or this if you used the public ip address in the configuration file:

> ejabberdctl register user PUBLIC-IP-ADDRESS password

Connecting to Your Jabber Server

Once this step will is complete, you will just have to connect to your new private instant messaging server using one of the various available clients. Adium is popular for OSX while Pidgin is a popular choice for Linux and Windows.

Once your preferred IM app is downloaded and installed, you will be asked to add an account.

Select the XMPP protocol and add the username and password you had just created in previous steps.

Conclusion

Once you are connected, you will be able to add and message all the other users created on your Jabber VPS.

Congratulations, You are now the new owner of a private instant messaging server!

Jon Biloh

7 Comments

  1. foobar-333:

    I guess it should be mentioned that you probably want to create SRV records for your XMPP server (similar to MX records for SMTP), so you can have XMPP addresses @domain.tld, even if the A or AAAA records for domain.tld don’t point to the machine hosting your XMPP server.

    See, for example, here:

    http://prosody.im/doc/dns

    October 11, 2016 @ 1:02 am | Reply
  2. foobar-333:

    Oh, and also: You should be able to add and message anyone on any XMPP server out there, not just your own, just as with email, that’s kindof the point.

    October 11, 2016 @ 1:08 am | Reply
  3. joepie91:

    “Jabber is based on the XMPP protocol: Extensible Messaging and Presence Protocol that is based on XML.”

    No, it isn’t. XMPP is a continuation of the Jabber protocol, and “Jabber” isn’t really in use anymore, even if it is still being used in some areas for legacy reasons.

    October 11, 2016 @ 5:11 am | Reply
    • Mokong:

      What is good alternative

      October 12, 2016 @ 2:33 pm | Reply
  4. Shawn:

    Nice one

    October 11, 2016 @ 6:43 pm | Reply
  5. asimplenation:

    Why not use Prosody instead of ejabberd? Is there an advantage to one over the other?

    October 26, 2016 @ 6:18 am | Reply
  6. April 8, 2017 @ 9:41 am | Reply

Leave a Reply

Some notes on commenting on LowEndBox:

  • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
  • Akismet is used for spam detection. Some comments may be held temporarily for manual approval.
  • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

Your email address will not be published. Required fields are marked *