c291c20a3b
The problem appeared when there are several vhosts, the first vhost uses SQL for persistent data (and RAM for volatile), and another vhost wants to use Mnesia Example config to trigger the problem: hosts: - mysql.localhost - localhost host_config: mysql.localhost: default_db: sql In that case, ejabberd crashed at start with an error like: [critical] Internal error of module mod_muc has occurred during start: ... ** exception exit: {aborted, {no_exists, [muc_room, [{{muc_room,{'_',<<"conference.localhost">>},'_'}, [], ['$_']}]]}} |
||
---|---|---|
_checkouts/configure_deps | ||
.devcontainer | ||
.github | ||
.vscode | ||
config | ||
include | ||
lib | ||
m4 | ||
man | ||
plugins | ||
priv | ||
rel | ||
sql | ||
src | ||
test | ||
tools | ||
.dockerignore | ||
.gitignore | ||
.shellcheckrc | ||
autogen.sh | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
COMPILE.md | ||
configure.ac | ||
configure.bat | ||
CONTAINER.md | ||
CONTRIBUTING.md | ||
CONTRIBUTORS.md | ||
COPYING | ||
cover.spec | ||
ejabberd.doap | ||
ejabberd.init.template | ||
ejabberd.service.template | ||
ejabberd.yml.example | ||
ejabberdctl.cfg.example | ||
ejabberdctl.template | ||
elvis.config | ||
erlang_ls.config | ||
inetrc | ||
install-sh | ||
Makefile.in | ||
mix.exs | ||
mix.lock | ||
README.md | ||
rebar | ||
rebar3 | ||
rebar.config | ||
rebar.config.script | ||
rebar.lock | ||
vars.config.in |
ejabberd is an open-source, robust, scalable and extensible realtime platform built using Erlang/OTP, that includes XMPP Server, MQTT Broker and SIP Service.
Check the features in ejabberd.im, ejabberd Docs, ejabberd at ProcessOne, and the list of supported protocols in ProcessOne and XMPP.org.
Installation
There are several ways to install ejabberd:
- Source code: compile yourself, see COMPILE
- Installers:
- ProcessOne Download Page or GitHub Releases for releases.
- GitHub Actions for master branch (
run
/deb
/rpm
forx64
andarm64
)
- Docker Containers:
ecs
container image: Docker Hub and Github Packages, see ecs README (forx64
)ejabberd
container image: Github Packages for releases and master branch, see CONTAINER (forx64
andarm64
)
- Using your Operating System package
- Using the Homebrew package manager
More info can be found in the Installation
part of ejabberd Docs.
Documentation
Please check the ejabberd Docs website.
When compiling from source code, you can get some help with:
./configure --help
make help
Once ejabberd is installed, try:
ejabberdctl help
man ejabberd.yml
Development
Bug reports and features are tracked using GitHub Issues, please check CONTRIBUTING for details.
Translations can be improved online using Weblate or in your local machine as explained in Localization.
Documentation for developers is available in ejabberd docs: Developers.
There are nightly builds of ejabberd, both for master
branch and for Pull Requests:
- Installers: go to GitHub Actions: Installers, open the most recent commit, on the bottom of that commit page, download the
ejabberd-packages.zip
artifact. ejabberd
container image: go to ejabberd Github Packages
Security reports or concerns should preferably be reported privately, please send an email to the address: contact at process-one dot net or some other method from ProcessOne Contact.
For commercial offering and support, including ejabberd Business Edition and Fluux (ejabberd in the Cloud), please check ProcessOne ejabberd page.
Community
There are several places to get in touch with other ejabberd developers and administrators:
- ejabberd XMPP chatroom: ejabberd@conference.process-one.net
- GitHub Discussions
- Stack Overflow
License
ejabberd
is released under the GNU General Public License v2 (see COPYING)- ejabberd translations under MIT License.