Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
badlop 8c1df80794 Merge pull request #156 from who/master
Adding a default config for mod_rest
2016-03-07 16:39:57 +01: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 change refer url for MOD_ARCHIVE_ODBC 2015-12-13 13:07:26 +03:30
mod_cron Fix mod_log_chat and mod_cron compilation (thanks to Mathias Ertl)(#103) 2015-05-12 16:39:02 +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 Adding a default config for mod_rest 2016-03-04 11:59:49 -08: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 Use homogeneous s2s connections stats (processone/ejabberd#761) 2015-10-21 12:51:52 +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 [doc] Mention to run modules_update_specs first 2015-12-23 13:32:09 +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.