Growing and curated ejabberd contributions repository - PR or ask to join !
Erlang Other
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
atom_pubsub Show more prominently notice that some modules don't work with new ej… Sep 12, 2016
ejabberd_auth_http Update to the updated ejabberd_auth API May 12, 2017
extra Remove obsolete file Apr 29, 2015
ircd Show more prominently notice that some modules don't work with new ej… Sep 12, 2016
mod_archive Show more prominently notice that some modules don't work with new ej… Sep 12, 2016
mod_cron Replace now() which is deprecated (processone/ejabberd#1264) Aug 23, 2016
mod_grafite Remove Global Hooks upon module stop Jul 22, 2016
mod_log_chat Update mod_log_chat to work with ejabberd 16.02 Mar 7, 2016
mod_logsession Update mod_logsession to work with ejabberd 17.01 (#201) Mar 10, 2017
mod_logxml Update mod_logxml to work with ejabberd 17 (#209) Apr 10, 2017
mod_mam_mnesia Remove mod_mam_mnesia Mar 7, 2016
mod_message_log mod_message_log: Add mod_opt_type/1 callback May 1, 2016
mod_muc_log_http Merge remote-tracking branch 'origin/master' into packaging Mar 13, 2015
mod_openid Show more prominently notice that some modules don't work with new ej… Sep 12, 2016
mod_post_log Make mod_post_log working with ejabberd 16.12+ Feb 9, 2017
mod_pottymouth Explain that mod_pottymouth may require an alternative library (#198) Mar 10, 2017
mod_profile Show more prominently notice that some modules don't work with new ej… Sep 12, 2016
mod_rest Update to work with 17.03+ Feb 23, 2017
mod_s2s_log Merge remote-tracking branch 'origin/master' into packaging Mar 13, 2015
mod_shcommands Merge remote-tracking branch 'origin/master' into packaging Mar 13, 2015
mod_statsdx Fix mod_statsdx to start correctly with ejabberd 17.03 Mar 2, 2017
mod_webpresence Update mod_webpresence to work with ejabberd 16.02 Mar 7, 2016
.gitignore Ignore .beam files Mar 14, 2014
README-broken.md Cleanup for module packaging support in ejabberd Mar 11, 2015
README.md re-add repo README.md Aug 2, 2016

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.

  • If you have not already done it, run ejabberdctl modules_update_specs to retrieve the list of available modules.

  • 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.