Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
Badlop 664531f1ef Move broken modules list to the main README.md to gain visibility 2021-07-06 21:02:15 +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 Hooks, Xref and Dialyzer warnings 2021-05-21 21:31:18 +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.md Move broken modules list to the main README.md to gain visibility 2021-07-06 21:02:15 +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.

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

Broken modules

This is the list of modules that are known to be broken with latest ejabberd master branch.

If you feel they are worth it, your help to fix them is welcome:

  • atom_pubsub: "Provides access to all PEP nodes via an AtomPub interface."
  • ircd: "This is an IRC server frontend to ejabberd."
  • mod_archive: "Message Archiving (XEP-0136)."
  • mod_openid: "Transform the Jabber Server in an openid provider."
  • mod_profile: "User Profile (XEP-0154) in Mnesia table."