Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
Michael Ansel e2a85ef9ad Fixed enough to join/send/receive/topic in groupchats 2015-09-23 21:21:26 -07:00
atom_pubsub Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
ejabberd_auth_http Provide an example configuration 2015-09-10 11:40:00 +02:00
extra Remove obsolete file 2015-04-29 12:59:44 +02:00
ircd Fixed enough to join/send/receive/topic in groupchats 2015-09-23 21:21:26 -07:00
mod_archive Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_cron Fix mod_log_chat and mod_cron compilation (thanks to Mathias Ertl)(#103) 2015-05-12 16:39:02 +02:00
mod_http_upload mod_http_upload: Handle HEAD and OPTIONS requests 2015-09-14 21:58:38 +02:00
mod_log_chat Add mod_opt_type function (#121) 2015-09-16 10:32:42 +02:00
mod_logsession Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_logxml Update mod_logxml to work with ejabberd 15.06 2015-06-25 21:34:12 +02:00
mod_mam_mnesia mod_mam_mnesia: Never store error messages 2015-09-02 20:45:04 +02:00
mod_message_log Update mod_message_log to work with ejabberd 15.06 2015-06-25 21:24:37 +02:00
mod_muc_log_http Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_openid Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
mod_post_log Update mod_post_log to work with ejabberd 15.06 2015-06-25 21:31:04 +02:00
mod_profile binarize mod_profile 2015-03-13 11:13:21 +01:00
mod_rest Add missing licence file 2015-04-22 11:31:46 +02:00
mod_s2s_log Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_shcommands Merge remote-tracking branch 'origin/master' into packaging 2015-03-13 12:08:30 +01:00
mod_statsdx mod_statsdx: Recognize Monal and irssi-xmpp 2015-07-13 15:48:43 +02:00
mod_webpresence Fix bug in mod_webpresence config which mentioned mod_presence (#119) 2015-09-02 17:09:13 +02:00
.gitignore Ignore .beam files 2014-03-14 11:47:54 -05:00
README-broken.md Cleanup for module packaging support in ejabberd 2015-03-11 14:19:35 +01:00
README.md README.md: Apply cosmetic changes 2015-04-22 23:48:31 +02:00

README.md

ejabberd-contrib

This is a collaborative development area for ejabberd module developers and users.

For users

To use an ejabberd module coming from this repository:

  • You need to have ejabberd installed.

  • Run ejabberdctl module_install <module> to get the source code and to compile and install the beam file into ejabberd's module search path. This path is either ~/.ejabberd-modules or defined by the CONTRIB_MODULES_PATH setting in ejabberdctl.cfg.

  • Edit the configuration file provided in the conf directory of the installed module and update it to your needs. Then apply the changes to your main ejabberd configuration. In a future release, ejabberd will automatically add this file to its runtime configuration without changes.

  • Run ejabberdctl module_uninstall <module> to remove a module from ejabberd.

For developers

The following organization has been set up for the development:

  • Development and compilation of modules is done by ejabberd. You need ejabberd installed. Use ejabberdctl module_check <module> to ensure it compiles correctly before committing your work. The sources of your module must be located in $CONTRIB_MODULES_PATH/sources/<module>.

  • Compilation can by done manually (if you know what you are doing) so you don't need ejabberd running:

    cd /path/of/module
    mkdir ebin
    /path/of/ejabberd's/erlc \
       -o ebin \
       -I include -I /path/of/ejabberd/lib/ejabberd-XX.YY/include \
       -DLAGER -DNO_EXT_LIB \
       src/*erl
    
  • The module directory structure is usually the following:

    • README.txt: Module description.
    • COPYING: License for the module.
    • doc/: Documentation directory.
    • src/: Erlang source directory.
    • lib/: Elixir source directory.
    • priv/msgs/: Directory with translation files (pot, po and msg).
    • conf/<module>.yml: Configuration for your module.
    • <module>.spec: Yaml description file for your module.
  • Module developers should note in the README.txt file whether the module has requirements or known incompatibilities with other modules.