Ce tutoriel permet d'installer un serveur jabber (ejabberd) disposant d'une interface web pour tchatter (jwchat)
Installer Ejabberd :
apt-get install ejabberd
Télécharger jwchat depuis http://blog.jwchat.org/jwchat/ et décompressez là dans le répertoire des pages html de votre serveur apache
cd /var/www/htdocs/ tar xzf jwchat-1.0.tar.gz mv jwchat-1.0 jwchat
Editer le fichier de configuration /var/www/htdocs/jwchat/config.js si nécessaire avec par exemple le contenu suivant :
/* * JWChat, a web based jabber client * Copyright (C) 2003-2008 Stefan Strigler <steve@zeank.in-berlin.de> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Please visit http://jwchat.sourceforge.net for more information! */ /* * This is the main configuration file for the chat client itself. * You have to edit this before you can use jwchat on your website! * * Have a look at the README for hints and troubleshooting! */ var SITENAME = "localhost"; /* BACKENDS * Array of objects each describing a backend. * * Required object fields: * name - human readable short identifier for this backend * httpbase - base address of http service [see README for details] * type - type of backend, must be 'polling' or 'binding' * * Optional object fields: * description - a human readable description for this backend * servers_allowed - array of jabber server addresses users can connect to * using this backend * * If BACKENDS contains more than one entry users may choose from a * select box which one to use when logging in. * * If 'servers_allowed' is empty or omitted user is presented an input * field to enter the jabber server to connect to by hand. * If 'servers_allowed' contains more than one element user is * presented a select box to choose a jabber server to connect to. * If 'servers_allowed' contains one single element no option is * presented to user. */ var BACKENDS = [ /* { name:"Native Binding", description:"Ejabberd's native HTTP Binding backend", httpbase:"/http-bind/", type:"binding", servers_allowed:[SITENAME] },*/ { name:"Native Polling", description:"Ejabberd's native HTTP Polling backend", httpbase:"/http-poll/", type:"polling", servers_allowed:[SITENAME] }, /* { name:"Open Relay", description:"HTTP Binding backend that allows connecting to any jabber server", httpbase:"/JHB/", type:"binding", default_server: SITENAME }, { name:"Restricted Relay", description:"This one let's you choose from a limited list of allowed servers", httpbase:"/JHB/", type:"binding", servers_allowed:[SITENAME,'jabber.org','jwchat.org'] }*/ ]; /*var DEFAULTRESOURCE = "jwchat";*/ var DEFAULTRESOURCE = ""; var DEFAULTPRIORITY = "10"; /* DEFAULTCONFERENCEGROUP + DEFAULTCONFERENCESERVER * default values for joingroupchat form */ var DEFAULTCONFERENCEROOM = "talks"; var DEFAULTCONFERENCESERVER = "conference."+SITENAME; /* debugging options */ var DEBUG = false; // turn debugging on var DEBUG_LVL = 2; // debug-level 0..4 (4 = very noisy) var USE_DEBUGJID = false; // if true only DEBUGJID gets the debugger var DEBUGJID = "admin@"+SITENAME; // which user get's debug messages // most probably you don't want to change anything below var timerval = 2000; // poll frequency in msec var stylesheet = "jwchat.css"; var THEMESDIR = "themes"; /* Auto-login options. Define parameters for guest user account and * when JWChat page is called with 'jid' parameter which is equal * to GUEST_ACC value then configuration below is used for autologin. * Sample configuration: * var GUEST_ACC = "guest_2"; * var GUEST_PWD = "guestpwd"; * Sample call: * http://jwchat.localhost/index.html?jid=guest_2 * will triger auto-login for the 'guest_2' account. * * As it is possible that many people try to login at the same time * the auto-login function will generate random resource based on * algorithm: DEFAULTRESOURCE + Math.round(Math.random()*1000) */ var GUEST_ACC = ""; var GUEST_PWD = "";
Editer et configurer votre fichier de configuration apache en ajoutant les lignes suivantes :
AddDefaultCharset UTF-8 Options +MultiViews <IfModule mod_rewrite.c> RewriteEngine On RewriteRule http-poll/ http://localhost:5280/http-poll/ [P] </IfModule>
Pour terminer, il suffit de se connecter sur votre serveur, par exemple sur l'adresse : http://server.exemple.com/jwchat/
Vous pouvez vous créer une compte ou vous identifier. Par défaut, utiliser le Native Polling.
Editer le fichier /etc/ejabberd/ejabberd.cfg puis commenter la ligne avec “%” :
%{access, register, [{allow, all}]}.
Et décommenter en retirant “%” sur la ligne :
{access, register, [{deny, all}]}.
Pour lister les utilisateurs enregistrés :
ejabberdctl vhost localhost registered-users
Pour lister les utilisateurs connectés :
ejabberdctl connected-users
Pour sauvegarder la configuration :
ejabberdctl dump backup.txt
le fichier se trouvera dans
/var/lib/ejabberd/backup.txt
Pour restaurer la configuration
ejabberdctl load backup.txt