EJABBERDCTL(8)
π ejabberdctl(8) β bestie's guide to the ejabberd control interface π
okay so. you know how ejabberd is this whole β¨serverβ¨ just vibing in the background? ejabberdctl is the little remote control for it. it's the control interface for the ejabberd server, and it's genuinely the main character of this whole manpage. no cap.
πΈ SYNOPSIS πΈ
ejabberdctl [--no-timeout] [--node nodename] [--version api_version]
command [options]
that's it. that's the shape of it. flags first, then the command, then whatever options that command wants. slay.
π¦ DESCRIPTION π¦
ejabberdctl is a front end to the ejabberd server. think of it like the group chat between you and the daemon π¬ β it exists to help the administrator control the functioning of the running ejabberd daemon. that's the whole job. that's the assignment.
now for the part that actually matters, bestie, so listen up π
This command must be run either by a superuser or by the userejabberd, otherwise it will fail to start or to connect to the ejabberd instance. Usingsudoalso works.
so like. if you're some random third user, it's giving nothing. it will simply not work. periodt. π ββοΈ
β¨ COMMANDS β¨
wanna know what commands you can actually run on a given ejabberd node? literally just run ejabberdctl with no command at all. it'll tell you the list of available commands. it's that easy, i'm obsessed π
of course β and this is the important bit β the given ejabberd node needs to be up and running for this to succeed. no node, no list. a sleeping server gives you nothing, fr fr.
π NOTES π
okay so here's the tea, and it's lowkey important:
ejabberdctl does not do anything by itself except for connecting to the running ejabberd instance and telling it about the action requested by the user. it's literally just the messenger π«Ά. that's the vibe.
which meansβ¦ all of the ejabberdctl's operations involving writing or reading files or directories are actually performed by the server process, and that server process runs with the uid and gid of the user and group ejabberd. so when you ask for file stuff to happen, it's not you doing it, it's the server doing it as ejabberd. this must be taken into account when requesting such operations to be done. don't forget it, bestie, or you'll be confused later and nobody wants that π₯²
π OPTIONS FILE π
these live in the options file, and they go hard:
ERLANG_NODEβ use this specified string as the Erlang node of the ejabberd server to connect to. it overrides the default ejabberd node name. the string may take one of the following forms:nodename,nodename@hostnameornodename@hostname.domainname. pick your fighter β¨FIREWALL_WINDOWβ use the specified range of ports to communicate with the other Erlang nodes (namely, with the target Erlang node running ejabberd). this can be useful when the system running the target node has a restricted firewall setup allowing only a certain range of ports to be used by the Erlang nodes for communication. in that case, you should specify that range of ports in theFIREWALL_WINDOWsetting. firewall said "only these ports", and this is how you respect that π
π FILES π
the sacred texts, the locations, the whole map:
/etc/default/ejabberdβ default settings forejabberdctlwhich is also run bysystemd/ the init script/etc/ejabberdβ configuration directory/etc/ejabberd/ejabberd.ymlβ main configuration file/var/log/ejabberdβ logfile directory/var/lib/ejabberdβ database spool directory
go visit them sometime. they're iconic. ποΈ
π SEE ALSO π
the program documentation is available at http://www.process-one.net/en/projects/ejabberd/ β go read it, it ate π
π§ AUTHORS π§
this manual page was adapted by Sergei Golovan <sgolovan@nes.ru> for the Debian system (but may be used by others) from the ejabberd documentation written by Alexey Shchepin <alexey@sevcom.net>. updated by Konstantin Khomoutov <flatworm@users.sourceforge.net> and Philipp Huebner <debalance@debian.org>.
permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation. so like, share it, remix it, it's giving open source π
on Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL-2.
okay that's the whole thing!! π«Ά this page is from the ejabberd manual, dated September 2016, and honestly? timeless. now go run your server, bestie. mwah πβ¨πΈ
π¦ where this page comes from
- debian bookworm: ejabberd 23.01-1 Β· GPL-2.0-or-later WITH OpenSSL exception
- debian trixie: ejabberd 24.12-3+deb13u2 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu jammy: ejabberd 21.12-1 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu noble: ejabberd 23.10-1 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu questing: ejabberd 24.12-3
- ubuntu resolute: ejabberd 24.12-4 Β· GPL-2.0-or-later WITH OpenSSL exception
- ubuntu stonking: ejabberd 26.02-1 Β· GPL-2.0-or-later WITH OpenSSL exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms