DJabberd::Config(3)
β¨ NAME β¨
DJabberd::Config(3) β the User Contributed Perl Documentation page for Configuration options in djabberd.conf. Bestie, this is literally the whole map of the config file, and we're gonna read it together like it's a group chat. π
π¦ DESCRIPTION π¦
Okay so here's the vibe: djabberd.conf is formatted similarly to Apache configuration files; that is:
# Lines beginning with '#' are comments
SomeGlobalOption on
<VHost vhost.example.com>
# Options herein apply only to this vhost
</VHost>
The following describes the format and allowed options of djabberd.conf. Case? Not the vibe. Configuration directives are not case sensitive, periodt. π
Directives which take a "boolean" value can be passed any commonly-understood expression of a boolean; for truth: 1, "y", "yes", "true", "t", "on", "enable", or "enabled"; for false: 0, "n", "no", "false", "f", "off", "disable", or "disabled". No cap. π§
π GLOBAL CONFIGURATION π
These are the server-wide settings, bestie. Main character energy for the whole process. π
DeclareMonitor "IP address"β declares that the given IP address is used only for checking connectivity to the server, and should not be logged or assigned an internal ID. Useful if you have a"nagios"host. πSSLCertificateKeyFile "/path/to/key.pem"β sets the path to the private key file for the server. This key should be in PEM format and only readable by the server, and is used to encrypt traffic to clients to ask for TLS. If it is not set, the server will not support TLS. πSSLCertificateFile "/path/to/cert.pem"β sets the path to the certificate file for the server. This certificate should be in PEM format, and will be presented to the clients who ask for TLS. If it is not set, the server will not support TLS. πSSLCertificateChainFile "/path/to/cert-chain.pem"β sets the path to the certificate chain file for the server. This is needed if the server certificate is signed by an intermediate certificate from a certificate authority. This file should be in PEM format. It must contain the server's certificate, followed by the intermediate certificates, then finally the root certificate.SSLCertificateKeyFileandSSLCertificateFileare required when using this option. π§OldSSL "boolean"β defaults to off; if set, the server will also listen on port5223, and immediately attempt TLS negotiation on all opened connections. As the name implies, this is deprecated, andStartTLSstanzas are now the preferred method to enable TLS communication with clients. π
β οΈ Deprecated alert:OldSSLis the old way.StartTLSstanzas are now the preferred method to enable TLS communication with clients. The manual said it, so we're saying it.
UnixDomainSocket "/path/to/socket"β defaults to unset; if set, specifies the absolute path to a UNIX domain socket to listen on, in addition to any TCP ports (set byClientPortandServerPort). π§¦ClientPort "port"β sets the port to listen for client-to-server connections on; defaults to5222. May also specify an IP address to bind to, in addition to a port, such as"127.0.0.1:5222". πServerPort "port"β sets the port to listen for server-to-server connection on; defaults to5269. If explicitly set to0, disables server-to-server listening for all virtual hosts. May also specify an IP address to bind to, in addition to a port, such as"127.0.0.1:5222". π₯AdminPort "port"β sets the port to listen for administrative connections on; defaults to off. For security reasons, you will most certainly want to bind this to a specific IP address, to prevent access by unauthorized users. SeeDJabberd::Connection::Admin. π¨
π‘οΈ Security check, bestie: bind AdminPort to a specific IP address so unauthorized users don't get access. The manual is very serious about this.
IntraDomainListen "port"β sets the port to listen for inter-cluster messages; defaults to off. Clustering support is still in development. π§PidFile "/path/to/pidfile"β if set, writes the server's PID to the given file. πΎCaseSensitive "boolean"β if set to a true value, Jabber IDs will be treated as entirely case-sensitive; defaults to off. This setting exists purely for backwards compatibility, as previous versions incorrectly treated Jabber IDs as case-sensitive. π
π Backwards-compat only: this one exists purely for backwards compatibility, because previous versions incorrectly treated Jabber IDs as case-sensitive.
ShareParsers "boolean"β defaults to on; controls whetherDJabberd::XMLParserobjects are held onto between stanzas. π§
π VIRTUAL HOST CONFIGURATION π
Each virtual host is configured with a block which declares the name of the virtual host:
<VHost jabber.example.com>
# Configuration for jabber.example.com
</VHost>
Virtual hosts can effectively be nested, using the Subdomain block:
<VHost jabber.example.com>
# Configuration for jabber.example.com
<Subdomain muc>
# Configuration for muc.jabber.example.com
</Subdomain>
</VHost>
QuirksMode "boolean"β enables or disables"quirks mode"; defaults to on. Seedoc/quirks-mode.txtfor a list of workaround this enables. πS2S "boolean"β enables or disables server-to-server communication, or"federation."Defaults to off; note that"/ServerPort"being set to 0 will override this configuration. πInBandReg "boolean"β if set, enables in-band registration of new users; defaults to off. πChildService "JID" "description"β adds a mapping between a JID on this server, and the given description; this is used for client service auto-discovery. πRequireSSL "boolean"β if set, requires that clients have negotiated a TLS before authentication information is sent. π
π§© PLUGIN CONFIGURATION π§©
Plugins can only be configured on a per virtual host basis. Each plugin defines its own configuration parameters. Plugins bundled with the base DJabberd server include:
DJabberd::Delivery::ComponentConnectionβ delivery through a JEP-0114 component connection. πDJabberd::Delivery::Localβ delivery to local users; implicitly added by default. π‘DJabberd::Delivery::S2Sβ delivery via server-to-server connection; implicitly added ifS2Sis enabled. πDJabberd::Delivery::LocalVHostsβ delivery to locally configured virtual hosts; implicitly added between a virtual host and all of its configured subdomains. ποΈDJabberd::RosterStorage::InMemoryOnlyβ store rosters in memory only. SeeDJabberd::RosterStorage::SQLitefor a common, more persistent, alternative. π§DJabberd::Authen::AllowedUsersβ only allow the given users to connect. βDJabberd::Authen::StaticPasswordβ set a static password for all users. πDJabberd::Authen::InMemoryOnlyβ store users' correct passwords (set on in-band registration, for instance) in memory only. πΎDJabberd::Bot::Adminβ provides an alternative interface toDJabberd::Connection::Adminfor certain users. π€DJabberd::SASL and subclassesβ enables a particular type of SASL negotiation. πͺ
That's the whole page, bestie! π«Ά This is from perl v5.42.0, dated 2025-12-14, and the manual is DJabberd::Config(3). Now go make that config file iconic. π
β¨
π¦ where this page comes from
- arch rolling: perl-djabberd 0.85-14 Β· GPL AND PerlArtistic
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms