It can be difficultly installed with https://github.com/processone/ejabberd-contrib/tree/master/mod_pottymouth
Instructions
mkdir -p $EJABBERD_HOME/erlang-lib/bitarray
cd $EJABBERD_HOME/erlang-lib/bitarray
clone https://github.com/ferd/bitarray git repo
run: /usr/lib/erlang/bin/escript rebar get-deps
run: /usr/lib/erlang/bin/escript rebar compile
run: /usr/bin/install -c -d /usr/local/lib/bitarray-1.0.0/ebin
run: /usr/bin/install -c -d /usr/local/lib/bitarray-1.0.0/priv
run: /usr/bin/install -c -m 644 ./ebin/bitarray.app /usr/local/lib/bitarray-1.0.0/ebin/bitarray.app
run: /usr/bin/install -c -m 644 ./ebin/bitarray.beam /usr/local/lib/bitarray-1.0.0/ebin/bitarray.beam
run: /usr/bin/install -c -m 644 ./priv/bitarray.so /usr/local/lib/bitarray-1.0.0/priv/bitarray.so
What is $EJABBERD_HOME? default may be ~/ folder.
So, export EJABBERD_HOME=/user/yourhome
in bittarray/rebar.conf, change proper version 1.0 -> 1.2
And Let's get mod_pottymouth
mkdir -n ~/.ejabberd-modules/sources
cd ~/.ejabberd-modules/sources
git clone https://github.com/processone/ejabberd-contrib.git
cd mod_pottymouth
make sure ejabberd is running
run: ejabberdctl module_install mod_pottymouth
run: ejabberdctl restart
module will be installed in: ~/.ejabberd-modules/mod_pottymouth
May be you cannot module_install mod_pottymouth
1. remove -include("ejabberd.hrl"). line of mod_pottymouth.erl
2. add this. end of mod_pottymouth.erl
mod_options(_) ->
[{blacklists, []}, {charmaps, []}].
3. add this. end of mod_pottymouth.erl -export([ here])
mod_options/1
After this module_install mod_pottymouth will be work.
I created pull request about this.
https://github.com/processone/ejabberd-contrib/pull/253