Growing and curated ejabberd contributions repository - PR or ask to join !
Go to file
jacob.eva 2d2ea29a20
Applied deadlop patch
2023-06-06 08:49:19 +01:00
.github/workflows Test with Erlang versions known to work, 26 does not work yet 2023-05-04 18:14:45 +02:00
atom_pubsub Rename spec of broken modules, so ext_mod doesn't list them as available 2021-07-07 21:31:05 +02:00
ejabberd_auth_http Add support for handling redirection HTTP Response Codes 2023-04-06 16:20:46 +02:00
ejabberd_observer_cli Convert modules README.txt to markdown syntax 2022-08-12 10:45:09 +02:00
extra Mark ejabberd_mod_mam as broken too 2022-07-27 18:14:24 +02:00
ircd Rename spec of broken modules, so ext_mod doesn't list them as available 2021-07-07 21:31:05 +02:00
mod_archive Rename spec of broken modules, so ext_mod doesn't list them as available 2021-07-07 21:31:05 +02:00
mod_captcha_rust Fix minor typos 2023-05-16 14:17:00 +02:00
mod_cron Reword modules documentation to reflect the usage of local configuration files 2022-08-12 10:52:20 +02:00
mod_default_contacts Update mod_default_contacts option parsing to use econf 2022-09-06 18:02:18 +02:00
mod_default_rooms Applied deadlop patch 2023-06-06 08:49:19 +01:00
mod_deny_omemo Fix specs and other errores detected by Dialyzer 2022-09-06 18:02:28 +02:00
mod_ecaptcha Document how to install mod_ecaptcha in GHCR container, fix minor bug 2023-01-25 17:18:09 +01:00
mod_filter Tell Dialyzer to not report this warning, as it requires an ejabberd patch 2022-09-06 18:02:21 +02:00
mod_grafite Try to fix some warnings detected by Dialyzer about unused cases 2022-09-06 18:02:22 +02:00
mod_http_redirect New small module to redirect HTTP path to another location 2023-05-16 14:17:13 +02:00
mod_irc Add simple mod_doc/0 to prevent warnings; they won't be used anyway 2021-07-06 21:02:29 +02:00
mod_isolation Fix minor typos 2023-05-16 14:17:00 +02:00
mod_log_chat Convert modules README.txt to markdown syntax 2022-08-12 10:45:09 +02:00
mod_logsession Convert modules README.txt to markdown syntax 2022-08-12 10:45:09 +02:00
mod_logxml Fix minor typos 2023-05-16 14:17:00 +02:00
mod_mam_mnesia Remove mod_mam_mnesia 2016-03-08 00:14:25 +01:00
mod_message_log Fix specs and other errores detected by Dialyzer 2022-09-06 18:02:28 +02:00
mod_muc_log_http Make mod_muc_log_http redirect to page that end with / (processone/ejabberd#3177) 2023-04-27 17:35:01 +02:00
mod_openid Rename spec of broken modules, so ext_mod doesn't list them as available 2021-07-07 21:31:05 +02:00
mod_post_log Reword modules documentation to reflect the usage of local configuration files 2022-08-12 10:52:20 +02:00
mod_pottymouth This doesn't stop banword, but at least satisfies Dialyzer 2022-09-06 18:02:16 +02:00
mod_profile Rename spec of broken modules, so ext_mod doesn't list them as available 2021-07-07 21:31:05 +02:00
mod_push_offline Fixed error detected by Dialyzer 2022-10-12 14:27:52 +05:00
mod_rest Reword modules documentation to reflect the usage of local configuration files 2022-08-12 10:52:20 +02:00
mod_s2s_log Fix path conversion in mod_s2s_log 2023-04-27 13:28:56 +02:00
mod_s3_upload YAML parser is probably converting 1234 to number, not binary 2022-12-29 09:55:57 -08:00
mod_shcommands Reword modules documentation to reflect the usage of local configuration files 2022-08-12 10:52:20 +02:00
mod_spam_filter Reword modules documentation to reflect the usage of local configuration files 2022-08-12 10:52:20 +02:00
mod_statsdx When iq:version returns timeout, store unknown information 2023-05-04 16:56:41 +02:00
mod_webadmin_config Reword modules documentation to reflect the usage of local configuration files 2022-08-12 10:52:20 +02:00
mod_webpresence Configuring features is not possible since 721ca125 2022-09-06 18:02:26 +02:00
.gitignore Ignore .beam files 2014-03-14 11:47:54 -05:00
README.md Update README.md 2021-11-25 16:59:14 +01:00

README.md

ejabberd-contrib

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

Those modules are not officially supported by ProcessOne.

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. Or, if you prefer so, configure it in your main ejabberd configuration file.

  • 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_irc: "IRC transport."
  • mod_mam_mnesia: This feature got included in ejabberd 15.06
  • mod_openid: "Transform the Jabber Server in an openid provider."
  • mod_profile: "User Profile (XEP-0154) in Mnesia table."