PROSODYCTL(1)

πŸ“¦
version 13.0.7 Β· 4 versions
, in alpine 3.24, debian bookworm, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble

✨ PROSODYCTL(1) β€” the prosodyctl page, bestie edition ✨

okay so. prosodyctl is the manual page for... prosodyctl. shocking, i know. it's the control tool for your Prosody XMPP server and it's about to become your new best friend. section one of the manual, the PROSODYCTL(1) bit, that's us. hi. welcome. πŸ’…


πŸŽ€ NAME πŸŽ€

prosodyctl β€” manage a Prosody XMPP server


🌸 SYNOPSIS 🌸

prosodyctl command [--help]

πŸ’– DESCRIPTION πŸ’–

prosodyctl is the control tool for the Prosody XMPP server. it's giving "i run this whole operation". you can use it to control the server daemon and manage users. two jobs, zero complaints. πŸ‘‘

prosodyctl needs to be executed with sufficient privileges to do its little tasks, which typically means running prosodyctl as the root user. BUT β€” plot twist β€” if a user named β€œprosody” is found, then prosodyctl will change to that user before executing its commands. it's polite like that. 🫢


🌈 COMMANDS 🌈

🧚 User Management

in the following commands, users are identified by a Jabber ID, jid, of the usual form: user@domain. no cap.

  • adduser jid β€” adds a user with Jabber ID, jid, to the server. you will be prompted to enter the user's password. yes, it asks nicely. πŸ”
  • passwd jid β€” changes the password of an existing user with Jabber ID, jid. you will be prompted to enter the user's new password. glow-up for your credentials. ✨
  • deluser jid β€” deletes an existing user with Jabber ID, jid, from the server. gone. deleted. not coming back. πŸ’€

πŸ‘‘ Daemon Management

okay so even though prosodyctl has commands to manage the prosody daemon, it is recommended that you utilize your distribution's daemon management features if you attained Prosody through a package. like, use the thing your distro gave you. that's the vibe. πŸ™ˆ

to perform daemon control commands, prosodyctl needs a pidfile value specified in /etc/prosody/prosody.cfg.lua. failure to do so will cause prosodyctl to complain. and honestly? fair. 😭

  • start β€” starts the prosody server daemon. if run as root, prosodyctl will attempt to change to a user named β€œprosody” before executing. this operation will block for up to five seconds to wait for the server to execute. hold please. ⏳
  • stop β€” stops the prosody server daemon. this operation will block for up to five seconds to wait for the server to stop executing. also holding. ⏳
  • restart β€” restarts the prosody server daemon. equivalent to running prosodyctl stop followed by prosodyctl start. it's both of them. back to back. periodt. πŸ”₯
  • reload β€” signals the prosody server daemon to reload configuration and re-open log files. refresh, but for configs. πŸ’…
  • status β€” prints the current execution status of the prosody server daemon. the vibe check, essentially. πŸ¦‹

πŸŽ€ Certificates

prosodyctl can create self-signed certificates, certificate requests and private keys for use with Prosody. commands are of the form prosodyctl cert subcommand. commands take a list of hosts to be included in the certificate. very demure, very mindful. ✨

  • request hosts β€” create a certificate request (CSR) file for submission to a certificate authority. multiple hosts can be given, and sub-domains are automatically included. multitasking icon. πŸ‘‘
  • generate hosts β€” generate a self-signed certificate. it makes its own. independent queen. πŸ’œ
  • key host [size] β€” generate a private key of size bits (defaults to 2048). invoked automatically by request and generate if needed. lowkey does its own thing in the background. πŸ”‘
  • config hosts β€” produce a config file for the list of hosts. invoked automatically by request and generate if needed. also automatic. also iconic. πŸŽ€
  • import hosts paths β€” copy certificates for hosts into the certificate path and reload prosody. drop 'em in and refresh. πŸ“₯

πŸ” Debugging

prosodyctl can also show some information about the environment, dependencies and such to aid in debugging. detective mode: activated. πŸ•΅οΈ

  • about β€” shows environment, various paths used by Prosody and installed dependencies. the full lore drop. πŸ“–
  • check [what] β€” performs various sanity checks on the configuration, DNS setup and configured TLS certificates. what can be one of config, dns, certs, disabled and connectivity to run only that check. pick your fighter. ⭐

🌟 Ejabberd Compatibility

ejabberd is another XMPP server which provides a comparable control tool, ejabberdctl, to control its server's operations. prosodyctl implements some commands which are compatible with ejabberdctl. for details of how these commands work you should see ejabberdctl(8). crossover episode, fr fr. πŸ“

register user server password
unregister user server

πŸ’… OPTIONS πŸ’…

  • --config filename β€” use the specified config file instead of the default. your file, your rules. πŸŽ€
  • --root β€” don't drop root privileges (e.g. when invoked with sudo). stay in your power era. πŸ‘‘
  • --help β€” display help text for the specified command. it's got answers. 🫢
  • --verbose β€” increase log level to show debug messages. give me everything. πŸ“’
  • --quiet β€” reduce log level to only show errors. shhh. only the important stuff. 🀫
  • --silent β€” disable logging completely, leaving only command output. total silence, just the results. πŸ’€

πŸ¦‹ FILES πŸ¦‹

  • /etc/prosody/prosody.cfg.lua β€” the main prosody configuration file. prosodyctl reads this to determine the process ID file of the prosody server daemon and to determine if a host has been configured. the source of truth, basically. πŸ“œ

🌐 ONLINE 🌐

more information may be found online at: <https://prosody.im/> β€” go, click, absorb. 🌈


πŸ’œ AUTHORS πŸ’œ

Dwayne Bent <dbb.1@liqd.org>; Kim Alvefur.


and that's the whole page, bestie. this one's from 2022-02-02, part of the Prosody project β€” so shoutout to Prosody and to everyone who wrote it. slay, protect your XMPP server, and remember: every single detail above is exactly as the original intended. no cap. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«ΆπŸ˜­πŸ”₯πŸ‘‘πŸŒˆβ­πŸ’€πŸ™ˆπŸ“πŸ§šπŸ’œ