Ejabberd

From SME Server
Revision as of 09:46, 4 April 2013 by RequestedDeletion (talk | contribs) (→‎Status Advisory: correct path)
Jump to navigation Jump to search

Status Advisory

At 4th April 2013 - From http://forums.contribs.org/index.php/topic,49481.msg248983.html#msg248983 "The currently available ejabberd contrib through the sme7contribs repo will not work on SME8. It installs, but the config files and the issues above will make it fail to function properly. The original author (JP-LC) has indicated that he has no time to update the contrib in the foreseeable future due to other priorities. Any takers to update the contrib? Especially when we are full throttle on SME9"

Things to do: (very high level)

  • Adjust user/permissions (see above forum thread)
  • Adjust startup script (/sbin/e-smith/ejabberdctl) for sanity check 32 or 64 bit (/lib/ or /lib64)
  • Adjust templates that create /etc/ejabberd.cfg
  • Double check ejabberdctl in both /usr/bin and /sbin/e-smith (/usr/bin is default ejabberd install, /sbin/e-smith is used by server-manager)

Maintainer

Jean-Paul Leclère
mailto:jean-paul@leclere.org

Description

Ejabberd is a (GNU GPL) robust full-featered Jabber XMPP server. It can support thousands of simultaneous users.

smeserver-ejabberd provides ejabberd services for SME, with dedicated configuration panel in the server-manager, and also specific embedded administration web pages via https.

Installation

Installation needs following steps.

  • smeserver-ejabberd package installation :
yum install --enablerepo=smecontribs smeserver-ejabberd

ejabberd and all required packages are installed by yum.

(For sme8, as far as smeserver-ejabberd is not available in sme8 contribs repo, you must get smeserver-ejabberd rpm from sme7 contribs repository, put it in a local dir, and use "yum localinstall --enablerepo=smecontribs smeserver-ejabberd")

  • sme configuration database update :
/etc/e-smith/events/actions/initialize-default-databases
  • server-manager panels navigation update :
/etc/e-smith/events/actions/navigation-conf
  • creation of your ejabberd admin account

For security reasons you need to create the admin@yourdomain Jabber account as soon as you enable your ejabberd service because this account will have administration rigths for your ejabberd administration. Jabber services are disabled after package installation, so there is no risk before you enable ejabberd with the server-manager panel and create this account.

  1. In your ejabberd panel, enable your ejabberd server, verify or change your Jabber domain and set registration parameter to "Allowed for everybody"
  2. With a Jabber client, register the account "admin@yourdomain" with a (secure) password, and remember this password. This "admin@yourdomain" account and associated password wil be needed to access the administration web page of your ejabberd server at https://yourserver.yourdomain:5280/admin (if enabled in your ejabberd panel).
  3. After setting admin account, you can return to your ejabberd panel and change registration setting for your requirements

Use

Jabber services panel

  • Jabber services access

No access --> ejabberd service disabled
Allow access only from local networks --> ejabberd enabled for all your local networks on LAN port
Allow public access --> ejabberd enabled on LAN and WAN ports

  • Jabber domain

You can choose which of your server domains is used by ejabberd for JID accounts.

  • Type of access

non secured access available --> non encryted access on port 5222, TLS access on port 5223
secured TLS access only --> TLS access on ports 5222 and 5223

  • Jabber client registering

Registering with a Jabber client is disabled --> Jabber clients cannot register accounts
Allowed for enabled user accounts of your server --> Jabber clients can only register accounts for users already registered in your SME server (but not for admin account)
Allowed for everybody --> Jabber clients can register accounts without restriction

  • Welcome message

Set the subject and text of the message sent to your new Jabber users. If subject is left blank, no welcome message will be sent.

  • Jabber admin web page

smeserver-ejabberd provides a web interface at https://yourserver.yourdomain:5280/admin/ to monitor and manage your ejabberd accounts and services. A full account JID with ejabberd admin rigths (default is admin) is needed to access ejabberd admin web pages.
This account is not set by the rpm package installation and must be created with a Jabber client, as specified in installation instructions. enabled --> access to admin web pages is enabled
disabled --> access to admin web pages is disabled

Ejabberd administration and monitoring web pages

When enabled, you can connect via https to your Jaber server administration and monitoring web pages at https://yourserver.yourdomain:5280/admin/
You must provide a full Jabber account (user@yourdomain) with admin rigths on ejabberd services (by default this account should be set to admin@yourdomain).
See documentation about the web interface at http://www.process-one.net/docs/ejabberd/guide_en.html#htoc72

Ejabberd command line administration

For specific needs you can use (with care) the ejabberd command line program : /opt/ejabberd/bin/ejabberdctl
But you must execute this program with :

sudo -u ejabberd -H /opt/ejabberd/bin/ejabberdctl options

To see available options, just type :

sudo -u ejabberd -H /opt/ejabberd/bin/ejabberdctl


  Warning:
You must not try to start or stop your ejabberd server with ejabberdctl. ejabberd service is supervised by runit and must only be controled by runit commands or by the Jabber services panel in the server-manager.


Backup and restore

ejabberd has an internal specific Mnesia datatabase for users data.
When you backup your server with core backup program, ejabberd database is saved and backuped in file /home/e-smith/db/ejabberd/ejabberd.backup.
But restoring your ejabberd backuped data on a new fresh installation of SME server needs four steps :

  • restore old server backup or copy /home/e-smith/db/ejabberd/ejabberd.backup from old server
  • reinstall smeserver-ejabberd
  • start ejabberd services
  • launch ejabberd database restore action :
/etc/e-smith/events/actions/ejabberd-load-tables

Bugs

Please raise bugs under the SME-Contribs section in bugzilla and select the smeserver-ejabberd component or use this link .