Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
Badlop eac6bb36de Add default configuration to mod_shcommands 2021-05-21 13:12:20 +02:00
atom_pubsub Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
ejabberd_auth_http ejabberd_auth_http: add troubleshooting section 2020-09-01 19:40:57 +02:00
extra Remove obsolete file 2015-04-29 12:59:44 +02:00
ircd Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_archive Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_cron Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_default_contacts Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_default_rooms Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_deny_omemo Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_filter Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_grafite Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_irc Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_isolation Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_log_chat Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_logsession Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_logxml Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_mam_mnesia Remove mod_mam_mnesia 2016-03-08 00:14:25 +01:00
mod_message_log Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_muc_log_http Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_openid Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_post_log Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_pottymouth Use banword instead of bloom + etbloom + bitarray (thanks to ytkang) 2021-04-16 16:37:11 +02:00
mod_profile Show more prominently notice that some modules don't work with new ejabberd 2016-09-12 12:06:13 +02:00
mod_rest Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_s2s_log Update copyright to 2020 (processone/ejabberd#3149) 2020-01-29 11:38:28 +01:00
mod_shcommands Add default configuration to mod_shcommands 2021-05-21 13:12:20 +02:00
mod_spam_filter Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01:00
mod_statsdx Fix table sorting: URLs now end with /, even the queries 2021-05-21 13:09:39 +02:00
mod_webpresence Update xmpp.hrl path to support compilation when copied to ejabberd/src/ 2021-02-08 00:15:27 +01: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 Document and example of pre_uninstall/0 (processone/ejabberd#3548) 2021-03-16 16:32:36 +01: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.

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

  • If your module project contains several erlang modules, you should export a function pre_uninstall/0 in the main one listing the other ones. See mod_statsdx as an example.