Install dan config xmpp server ejabber dengan mysql

Diantara xmpp server yang ada, ejabber salah satu yang terlengkap fitur nya termasuk webservice untuk backend web chat dll, langsung saja dunlut di sini
https://www.process-one.net/en/ejabberd/downloads/
saya pilih DEB package karena saya memakai debian 8 adapun paketpendukung yag dibutuhkan adalah glibc minimal 2.13

install package
dpkg -i ejabberd_17.09-0_amd64.deb

buka file config /opt/ejabberd/conf/ejabberd.yml

tambahkan virtualhost di bagian host:
hosts:
  - "xmpp.domain.com"
  - "chat.domain.com"

tambahkan user di bagian user:
admin:
    user:
      - "[email protected]"

Register an admin :
/opt/ejabberd-17.09/bin/ejabberdctl register admin xmpp.domain.com passwdadmin

Stop and start ejabberd
/opt/ejabberd-17.09/bin/stop
/opt/ejabberd-17.09/bin/start




buka web admin
http://xmpp.domain.com:5280/admin


 

Untuk menggunakan database mysql, harus membuat tables

mysql -uroot -p ...
create database ejabberd;
use ejabberd;
source /opt/ejabberd-17.09/lib/ejabberd-17.04/priv/sql/mysql.sql

Config privileges :
grant all privileges on ejabberd.* to ejabberd@'localhost' identified by 'ejabberd';
flush priviliges;

buka file config /opt/ejabberd/conf/ejabberd.yml dan cari bagian ini

auth_method: sql

## MySQL server: default
##
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "ejabberd"
##
## If you want to specify the port:
## sql_port: 1234
sql_port: 3306

untuk memisahkan database tiap virtual host harus bikin database yang berbeda untuk domain chat.domain.com karena default seting sudahd di pake untuk virtual host xmpp.domain.com silahkan cari bagian host_config:

#### virtual host config ####
host_config:
   "chat.domain.com":
     auth_method: sql
     sql_type: mysql
     sql_server: "localhost"
     sql_database: "dua"
     sql_username: "ejabberd"
     sql_password: "ejabberd"
     acl:
       admin:
         user:
           - "[email protected]"

Stop and start ejabberd
/opt/ejabberd-17.09/bin/stop
/opt/ejabberd-17.09/bin/start

Register  admin tiap domain karena database nya sudaha di pindah dari internal ke mysql
/opt/ejabberd-17.09/bin/ejabberdctl register admin xmpp.domain.com passwdadmin
/opt/ejabberd-17.09/bin/ejabberdctl register admin chat.domain.com passwdadmin

setelah itu bisa tambahkan user via web admin


konfig web service api, bisa cek dengan rest client dengan url http://xmpp.cardtech.co.id:5280/api/
http://xmpp.cardtech.co.id:5280/ws/

buka file config /opt/ejabberd/conf/ejabberd.yml rubah permitions nya cari bagian api_permissions: bagian "public commands": jd sperti ini

"public commands":
    who:
      - ip: "127.0.0.1"
      - all
    what:
      - "*"
      - "!stop"
      - "!start"
      - "!compile"

untuk api documentations nya ada di sini
https://docs.ejabberd.im/developer/ejabberd-api/
ini hasil testing untuk konek api

test add user via api

view table user di mysql via heidisql


Semoga bermanfaat

Komentar

Postingan populer dari blog ini

Cloudflared argo tunnel zero trust service on Mikrotik

Migrasi zimbra ke zimbra dengan rsync

Squid Proxy ssl bump untuk transparent HTTPS #2