ejabberd [XMPP chat server]

Uputstva, saveti i trikovi

Moderator: Urednik

Post Reply

Elitni član
Elitni član
offline
User avatar

Posts: 204
Joined: 07 Mar 2007, 13:34

Post Napisano: 14 Nov 2013, 20:27


ejabberd


ejabberd je XMPP (nekadašnji Jabber protokol) chat server napisan u Erlang-u, a radi na unix-like i windows platformama i besplatan je.
Poseduje svoj web interfejs, mogućnost konfiguracije virtualnih hostova; podržava MySQL, PostgreSQL, ODBC; LDAP autorizaciju i login preko SSL/TLS, SASL i STARTTLS protokola. Proširiv je uz pomoć različitih modula, npr. za snimanje offline poruka, povezivanje sa IRC kanalima, proksija za slanje fajlova, itd.

A kao klijent program možete korstiti Pidgin.

Ako nekog zanimaju druge server/client varijante ceo spisak dostupnog softvera za XMPP protokol možete naći ovde.


Za download imate instalere na ovom linku.


Kao root napravite installer izvršnim i pokrenite ga.
Vodiće vas kroz sledeće korake:
1. izabor jezika,
2. prihvatanje licence,
3. izbor instalacionog direktorijuma; default ponuđeni je /opt/ejabberd-13.10/ (za trenutnu verziju),
4. izbor ejabberd server domena. Par napomena, ovde možete upisati šta hoćete, ali imajte u vidu da vaši klijenti moraju da resolve-uju IP vašeg servera. Ako vam je server samo u lokalnoj mreži postarajte se da lokalni DNS može da uputi klijente na odgovarajući IP, a ako pravite server koji će biti dostupan spolja onda unesite ime vašeg domena, npr. primer.com ili primer.no-ip.info ako koristite no-ip.info za dinamički IP. Ja ću u ovom tutorijalu koristiti slackware-srbija.org. Kasnije možete dodati više domena (pomenuti vhost-ovi), uz mogućnost podešavanja da korisnički nalozi sa različitih domena komuniciraju između sebe ili ne.
5. izbor administratorskog korisničkog imena; default admin, a ja ću u primeru koristiti abraxas,
6. postavljanje administratorske šifre,
7. deo klastera ili ne; default je ne, tako i ostavite za sad.
8. potvrđivanje unetih parametara i instalacija.


Pre pokretanja servera napravite ejabberd grupu i korisnika sa komandama kao root:

Code: Select all

groupadd ejabberd
useradd -g ejabberd -d /home/ejabberd -s /bin/bash -m ejabberd
Na ovaj nalog nećete moći da se uloguje na klasičan način jer blokiran, nego sa su (obrišite ! u polju za šifru u /etc/shadow fajlu ako želite standardan login).



Da bi ste ejabberd pokrenuli pri startup-u sistema u /etc/rc.d/ napravite fajl sa nazivom rc.ejabberd koji treba da izgleda ovako:

Code: Select all

#! /bin/sh
set -o errexit
set -o nounset

DIR=/opt/ejabberd-13.10
CTL="$DIR"/bin/ejabberdctl
USER=ejabberd

test -d "$DIR" || {
        echo "ERROR: ejabberd not found: $DIR"
        exit 1
}
grep ^"$USER": /etc/passwd >/dev/null || {
        echo "ERROR: System user not found: $USER"
        exit 2
}

export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"

case "$1" in
  start)
    test -x "$CTL" || exit 0
    echo "Starting ejabberd..."
#    $CTL start
    su - $USER -c "$CTL start"
    su - $USER -c "$CTL started"
    echo "done."
    ;;
  stop)
    test -x "$CTL" || exit 0
    echo "Stopping ejabberd..."
#    $CTL stop
    su - $USER -c "$CTL stop"
    su - $USER -c "$CTL stopped"
    echo "done."
    ;;

  force-reload|restart)
    "$0" stop
    "$0" start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart|force-reload}"
    exit 1
esac

exit 0
U /etc/rc.d/rc.local dodatje liniju:

Code: Select all

/etc/rc.d/rc.ejabberd start
a u /etc/rc.d/rc.local_shutdown:

Code: Select all

/etc/rc.d/rc.ejabberd stop
Pošto ova skripta pokreće ejabberd kao korisnik ejabberd instalacioni direktorijum mora biti njegovo vlasništvo, drugim rečima:

Code: Select all

chown ejabberd:ejabberd /opt/ejabberd-13.10/ -R
Konfiguracioni fajl ejabberd-a se nalazi na lokaciji /opt/ejabberd-13.10/conf/ejabberd.cfg i osnove su lepo objašnjene u komentarima pa vam neće biti teško da se snađete, a za naprednija podešavanja guglajte po potrebi. Inicijalno nema potrebe da išta menjate u uvom fajlu. Podešavanja možete raditi preko ejabberdctl ili preko web interfejsa.


Pokrenite server komandom:

Code: Select all

/etc/rc.d/rc.ejabberd start
Web interfejsu pristupate na adresi server:port/admin, tj. localhost:5280/admin ili IP-adresa-servera:5280/admin, a u našem primeru slackware-srbija.org:5280/admin. Za login koristite puno ime, tj. abraxas@slackware-srbija.org. Web interfejs je intuitivan, pa će te se lako snaći.


Novog korisnika možete dodati preko web interfejsa ili komandom:

Code: Select all

/opt/ejabberd-13.10/bin/ejabberdctl register imekorisnika slackware-srbija.org sifra
Ukoliko koristite ejabberdctl morate ga pokretati kao korisnik ejabberd, a ne kao root, inače će vam prijavljivati grešku!


Ako želite da ovog korisnika unapredite u administratora otvorite /opt/ejabberd-13.10/conf/ejabberd.cfg u tekst editoru i ispod linije (u ovom slučaju):

Code: Select all

{acl, admin, {user, "abraxas", " slackware-srbija.org "}}.
dodajte liniju:

Code: Select all

{acl, admin, {user, "imekorisnika", " slackware-srbija.org "}}.
Što se tiče portova za ovu default varijantu potrebni su vam 5222, 5269 i 5280, pa shodno tome adekvatno konfigurišite firewall i rutere.


Konfiguracija Pidgin-a je jednostavna: Accounts -> Manage Accounts -> Add..., za protokol izaberite XMPP i polja popunite prema slici.
pidgin.jpg

Detaljan guide za ejabberd imate ovde.



Happy chating! :beer:


Post Reply

Who is online

Users browsing this forum: No registered users and 28 guests