ejabberd - XMPP and Web Chat http://www.turnkeylinux.org/ejabberd
  • Erlang 58.9%
  • Python 20.8%
  • Shell 17.1%
  • JavaScript 1.9%
  • Makefile 1.3%
Find a file
2026-10-14 19:38:18 -03:00
.art mv images .art (images is ambiguous) 2014-07-13 15:01:50 +03:00
.forgejo/workflows ci: Forgejo workflows for git.pop.coop 2026-10-14 22:23:57 +00:00
.github ci: security scanning, with the findings read and justified 2026-10-07 18:19:23 +00:00
conf.d change default a2dissite 2015-05-18 22:27:47 +10:00
overlay replace depreciated apache directives 2015-05-19 01:06:42 +10:00
plan removed postfix related, included in common base 2015-07-29 12:32:08 +03:00
.gitignore ported appliance spec to new fab 2012-05-03 16:19:12 +03:00
changelog updated changelog for 13.0 release 2013-10-11 10:24:42 +03:00
Makefile removed postfix related, included in common base 2015-07-29 12:32:08 +03:00
README.rst README TurnKey links: http => https 2015-09-14 20:08:11 +03:00

ejabberd - XMPP and Web Chat
============================

An instant messaging server that combines `ejabberd`_ with `Speeqe`_ to
create a live chat server that supports strong encryption and works with
any web browser or dedicated XMPP client (e.g., Pidgin). ejabberd is a
powerful XMPP server that supports clustering, live upgrades, shared
roster groups and provides support for virtual hosts.

This appliance includes all the standard features in `TurnKey Core`_,
and on top of that:

- ejabberd (chat server) configurations:
   
   - Installed from package management.
   - Includes custom ejabberd-config script to change domain and set
     admin password (configured on first boot).
   - Enabled in-band user registration (usability, convenience).
   - Enabled legacy SSL connection method (still required by some
     clients).
   - Set erlang node: ejabberd@localhost (workaround mnesia hostname
     changes).
   - Binded admin console to port 12322 - uses SSL.

- Speeqe (web chat application) configurations:
   
   - Installed from upstream source code to /var/www/django/speeqeweb
   - Installed and configured to provide web chat interface.
   - Configured ejabberd with anonymous access for speeqe to connect.
   - Created ejabberd robot XMPP user for speeqe to list active rooms.
   - Includes local JQuery library (internal deployment).

- SSL support out of the box.
- Postfix MTA (bound to localhost) to allow sending of email from
  speeqe.
- Webmin modules for configuring Apache2 and Postfix.

- Includes custom ejabberd-config script to change domain,
  administrative password and regenerate related secrets::

    /usr/lib/inithooks/bin/ejabberd.sh XMPP_DOMAIN ADMIN_PASS
    # ejabberd admin interface user will be: admin@XMPP_DOMAIN

- XMPP DNS records example::

    _jabber._tcp.example.com.      0 5269 example.com.    SRV
    _xmpp-client._tcp.example.com. 0 5222 example.com.    SRV
    _xmpp-server._tcp.example.com. 0 5269 example.com.    SRV

- Example hosts file when testing in demo mode::

    /etc/hosts : appliance_ip example.com

- Recommended XMPP chat clients:
   
   - `Gajim`_ - a full featured and easy to use Jabber client
   - `Pidgin`_ - the universal chat client
      
      - Add XMPP account
         
         - username: newuser
         - domain: example.com
         - resource: Pidgin
         - password: \*\*\*\*\*\*\*
         - [v] create this account on server


Credentials *(passwords set at first boot)*
-------------------------------------------

-  Webmin, Webshell, SSH: username **root**
-  ejabberd:
   
   - Admin interface: username **admin@example.com**
   - Regular login: username **admin**
   - robot user is configured with a random password and regenerated as
     part of secrets regeneration.


.. _ejabberd: http://www.ejabberd.im
.. _Speeqe: https://github.com/thepug/speeqe/wiki
.. _TurnKey Core: https://www.turnkeylinux.org/core
.. _Gajim: http://www.gajim.org/
.. _Pidgin: http://www.pidgin.im/