Configuration

This is a list of directives which are only into Metronome or different from Prosody.


General Metronome Directives ~

  • metronome_max_files_soft: set soft limit for files which can be opened by the server process. Default: 9216.
  • metronome_max_files_hard: set hard limit for files which can be opened by the server process. Default: 9216.
  • metronome_gc: specify operation values for the Garbage Collector in a table format, a fair warning you should never touch this if you don't know what you're doing or how GC in Lua works! Metronome already by default uses optimized values which are best suited for almost every operation case, changing this wrongly can possibly cause a warpcore breach! Example: metronome_gc = { setpause = 100, setstepmul = 150 }
  • metronome_preload_libraries: specify which libraries need to be pre-loaded before the global state is initialized on server start.

mod_auth_anonymous ~

  • allow_anonymous_multiresourcing: allows anonymous users originating from the same ip address to connect multiple clients (may be necessary in case of NAT/PATs). Default: false.
  • anonymous_jid_gentoken: string token for sha-1 hash generation of ip addresses. Default: generated from OS Time on module load.
  • anonymous_randomize_for_trusted_addresses: do not hash the originating ip address matches one contained in the list, format is list-like e.g. << anonymous_randomize_for_trusted_addresses = { "127.0.0.1", "10.24.56.9" } >>. Default: nil.

mod_bidi ~

  • bidi_exclusion_list: exclude listed servers from being offered bidirectional streams. Example: bidi_exclusion_list = { "jabber.org", "swift.im" }

mod_bosh ~

  • force_https_bosh: only handle bind requests via HTTPS.
  • bosh_no_raw_requests_logging: strip logging of raw request stanzas. Default: true.

mod_disco ~

  • contact_info: set on discovery information contact information for the host, example,
    {
      ["abuse-addresses"] = { "mailto:abuse@lightwitch.org" },
      ["admin-addresses"] = { "https://lightwitch.org/contact" },
      ["support-addresses"] = { "https://lightwitch.org/im-service/support", "xmpp:support@conference.lightwitch.org?join" }
    }

mod_gate_guard ~

  • gate_blacklist: list of services blacklisted on all hosts, e.g. { "servername1.com", "servername2.com" }
  • gate_protect: list of local server's host that need remote services to be whitelisted to be able to access.
  • gate_whitelist: see above.
  • gate_max_hits: max offense reports by other modules before a remote server is temporarily banned. Default: 50
  • gate_expiretime: expiral time before the temporary ban is lifted. Default: 172800 seconds (2 days)

mod_gdpr ~

  • gdpr_addendum: custom line to add to the s2s agreement, useful to add a link to the ToS.

mod_http ~

  • http_alias_hosts: make a host an alias for another the format is lua table like, { ["nameofthealias.tld"] = "hosttobealiased.tld", ["anotheralias.tld"] = "anotherhosttobealiased.tld" }

mod_http_upload ~

  • http_file_allowed_mime_types: specify allowed mime types for uploads you have to specify both the extension and the mime using this format: { ["txt"] = "text/plain", ["png"] = "image/png" }
  • http_file_size_limit: size limit for uploads in bytes. Default: 3 MiB
  • http_file_quota: account space quota for file uploads. Default: 40 MiB
  • http_file_expire_after: expiration time for file uploads in seconds. Default: 172800 (2 days)
  • http_file_perfom_expire_any: interval in seconds before executing global account expiration checks. Default: 1800
  • http_file_expire_upload_slots: time in seconds before a granted upload slot is expired. Default: 900
  • http_file_expire_file_caches: time in seconds before a file cached is expired. Default: 450
  • http_file_throttle_time: expiral time in seconds to a given throttle, the module allows sending the size limit once in a given interval. Default: 180
  • http_file_base_path: url base path for serving files. Default: share

mod_incidents_handling ~

  • incidents_expire_time: time in seconds before a reported incident expires. Default: 0 (never)

mod_mam ~

  • mam_forbid_purge: forbid users to wipe their own messages' archive. Default: false.
  • mam_max_retrievable_results: max numbers of results which can be retrieved at once. Default: 150.
  • mam_message_max_length: max number of characters after which a message will be discarded. Default: 3000.
  • mam_save_time: number of seconds after which the cached archives will be stashed to disk. Default: 300.
  • mam_stores_cap: max number of log entries which each archive can contain, after which the oldest entry will be popped. Default: 5000.

​mod_messagefilter ~

  • messagefilter_anon_hosts: list of internal anonymous hosts to be filtered.
  • messagefilter_bmsg: string specifying the message to use when rejecting messages.
  • messagefilter_patterns: list of Lua patterns for matches.

mod_muc_limits ~

  • See wiki on prosody-modules for basic settings.
  • muc_throttle_host_exclusion: list of hosts to be excluded from throttling.

mod_muc_log_http ~

  • muc_log_http_config: define configuration, format: 
    { url_base = "logs", -- The Base URL path where the plugin will listen
       theme = "metronome" -- An optional custom theme for the log pages, default is metronome (check themes directory)
    }

mod_muc_log_mam ~

  • muc_log_mam_check_inactive: how many time in seconds before checking for inactive rooms. Default: 1800.
  • muc_log_mam_expire_caches: how many seconds of room inactivity must have passed before killing a room MAM cache. Default: 3600

mod_offline ~

  • offline_store_limit: number defining a quota after which incoming offline messages will be discarded. Default: 40.

mod_pastebin ~

  • pastebin_path: set a base path for pastes. Default: "/pastebin/"

mod_pep ~

  • pep_custom_singleton_nodes: a list of node namespaces which will be threated as singleton nodes.
  • pep_deactivate_service_time: time of inactivity in seconds after which personal services will be brought down and deactivated. Default: 259200 (3 days). Minimal value: 10800 (3 hours).

mod_public_service  ~

  • public_service_vcard: format,
    { name = "LW.Org IM Public Service.",
      url = "https://lightwitch.org/im-service",
      foundation_year = "2009",
      country = "USA",
      email = "someadmin@lightwitch.org",
      admin_jid = "someadmin@lightwitch.org",
      geo = "49.47,7.15",
      ca = { name = "Let's Encrypt", url = "https://letsencrypt.org/" },
      oob_registration_uri = "https://lightwitch.org/xmpp/register }

mod_pubsub ~

  • pubsub_admins: list of jids who have service-wide administration access.
  • unrestricted_node_creation: unrestrict node creation to everyone.

mod_register ~

  • registration_compat: enable compatibility / legacy mode. Default: true
  • allow_registration: enable In-Band Registration. Default: false
  • additional_registration_fields: add additional registration fields, you can make a field mandatory by adding a trailing + Example: { "email+", "phone" }
  • register_min_pass_length: define the minimum number of characters a password can be composed of. Default: 8
  • register_max_pass_length: define the maximum number of characters a password can be composed of. Default: 30
  • register_require_verification: lock accounts of users registering with IBR to verify via E-Mail. Default: false

mod_register_api ~

  • reg_api_auth_token: sets the authentication token required by Metronome to accept json post data from a web app.
  • reg_api_secure: defines if the module accepts only secure connections. Default: true
  • reg_api_ttime: defines how the amount of time in seconds before the module accepts another request from the same ip. Default: nil (not set)
  • reg_api_wl: defines a set of ip addresses to always allow registration of.
  • reg_api_bl: defines a set of ip addresses to prevent from registering.
  • reg_api_filtered_mails: patterns of mail domains forbidden.
  • reg_api_filtered_nodes: patterns of usernames which can't be used.
  • reg_api_nameapi: use NameAPI to assert if mail domain used for registration is DEA service. Default: false
  • reg_api_nameapi_apikey: the used NameAPI key, required by the above option.
  • reg_api_plain_http_errors: serve errors as plain text. Default: false
  • reg_api_base: path were to serve API pages. Default: /register_account/
  • reg_api_urlhost: url / http host were to serve the API pages. Default: the module host
  • reg_api_mailfrom: FROM address for mails generated from Metronome, required for verification/reset.
  • reg_api_mailreto: REPLY-TO address for mails generated from Metronome, required for verification/reset.

mod_s2s ~

  • s2s_inactivity_check: defines in how many seconds Metronome checks if there're idle streams to close down. Default: 900.
  • s2s_max_inactivity: the seconds in which opened s2s streams are considered to be idle. Default: 1800.
  • s2s_strict_mode: setting this to true will bounce every non compliant rfc server which will attempt to federate, if set to false mod_s2s will automatically depend on mod_dialback.

mod_saslauth ~

  • blacklist_sasl_mechanisms: a list of mechanisms which should not be presented to clients. Example: blacklist_sasl_mechanisms = { "DIGEST-MD5", "PLAIN" }
  • allowed_sasl_failures: a number value definining the max times a client can fail authentication. Default: 3. Example: allowed_sasl_failures = 5

mod_spim_block ~

  • spim_exceptions: list of host excepting from spim blocking. Example: { "domain-a.com", "domain-b.com" }
  • spim_secure: if the spim token form is served on a secure url. Default: true
  • spim_base: the subdirectory path serving the form. Default: spim
  • spim_http_host: host were to serve challenges. Default: the module host
  • spim_reset_count: the number of blocking actions before a module resets its cache. Default: 2000
  • spim_s2s_ban_time: ban time in seconds for remote server exceeding SPIM trap triggering. Default: 3600 

mod_stream_management ~

  • sm_resume_timeout: seconds before sessions get destroyed and garbage collected by the server definitevily. Default: 360
  • sm_max_unacked_stanzas: max number of unacked stanzas before Metronome requests acknowledgement to the client. Default: 10

mod_vcard (mod_muc_vcard) ~

  • vcard_max_size: the max size of the vCard in bytes.

mod_vjud ~

  • auto_optin_host: define which host served by Metronome does auto-optin its created users to the directory.
  • restrict_to_hosts: define a list of host to restrict the directory's opt-in to.
  • synchronize_to_host_vcards: specify (as string) the local xmpp host which only users are able to optin and also will have their data be automatically synchronized whit their vcard values.
  • ud_disco_name: User Directory service discovery name.

mod_websocket ~

  • websockets_no_raw_requests_logging: strip logging of raw request stanzas. Default: true.
  • consider_websockets_secure: this boolean option allows to automatically consider websockets connection secure and offer weak authentication methods on 'em. (Default is false / unset)
  • cross_domain_websockets: allow to make cross domain (CORS) websocket requests. (Default is false / unset)