selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

metronome logo

Self-host metronome

v4.0.5

Lightweight XMPP server with microblogging features

ReleaseOpen SourceOther
Updated11 months ago
LanguageLua
Setup difficultyAdvanced
Stars
176
Port
3478 (STUN/TURN for Jingle)
Requires
GNU Libidn, Libevent, Lua, Lua-event, LuaExpat, LuaFileSystem, LuaSocket, OpenSSL
Install with Arch Linux

What is metronome?

Metronome IM is a lightweight XMPP server that began as a Prosody fork in 2012. It offers a complete XMPP implementation with microblogging (XEP-0277), Multi-User Chat, Publish-Subscribe, HTTP file upload, BOSH and WebSocket support, stream management, and message archiving (MAM). Written in Lua, it uses libevent as its sole backend with a hard dependency on lua-event. Users can compile it from source on Linux or install via the Arch Linux AUR package. The software powers the LW.Org public IM platform and served as the default XMPP server in YunoHost. It meets the XMPP Compliance Suites 2020 Advanced Server level across Core, Web, IM and Mobile categories.

Should you self-host metronome?

metronome scores 47/100 on selfhost.directory (how scoring works) and ranks #61 of 110 in Chat. It has 176 GitHub stars.

It shipped 8 stable releases in the past year. The latest, v4.0.5, came out on 27 November 2025.

Setup is advanced: plan for several services and some ongoing maintenance. It is Other-licensed and written mostly in Lua.

Its closest alternative on selfhost.directory is Zulip (82/100, 26 133 stars). It scores higher overall, so compare the two before you pick. See metronome vs Zulip side by side.

Features

  • Bidirectional S2S
  • BOSH Support
  • Daemon Control Utility
  • Direct TLS S2S
  • HTTP API
  • HTTP File Upload
  • In-Band Registration
  • Message Archive Management (MAM)
  • Microblogging over XMPP
  • Multi-User Chat (MUC)
  • Publish-Subscribe (PubSub)
  • SPIM Prevention
  • Stream Management
  • Websocket Support
  • XMPP Server

metronome README

How to install metronome

Install metronome with Arch Linux

Arch Linux or Arch-based distribution

rua install metronome-git

Community-provided package that fetches latest tip from repository and builds it

How to configure metronome

  • allowed_sasl_failures3Max times a client can fail authentication

    Max times a client can fail authentication

  • allow_registrationfalseEnable In-Band Registration

    Enable In-Band Registration

    values: true/false

  • http_file_quota40 MiBAccount space quota for file uploads

    Account space quota for file uploads

  • http_file_size_limit3 MiBSize limit for uploads in bytes (mod_http_upload)

    Size limit for uploads in bytes (mod_http_upload)

  • mail_hostSMTP server hostname for email notifications

    SMTP server hostname for email notifications

  • mail_port587TCP port to connect to the SMTP server

    TCP port to connect to the SMTP server

  • mam_max_retrievable_results150Max numbers of results which can be retrieved at once

    Max numbers of results which can be retrieved at once

  • mam_stores_cap10000Max number of log entries which each archive can contain

    Max number of log entries which each archive can contain

  • metronome_max_files_hard9216Set hard limit for files which can be opened by the server process

    Set hard limit for files which can be opened by the server process

  • metronome_max_files_soft9216Set soft limit for files which can be opened by the server process

    Set soft limit for files which can be opened by the server process

  • register_max_pass_length30Define the maximum number of characters a password can be composed of

    Define the maximum number of characters a password can be composed of

  • register_min_pass_length8Define the minimum number of characters a password can be composed of

    Define the minimum number of characters a password can be composed of

  • s2s_check_inactivity900Defines in how many seconds Metronome checks if there're idle streams to close down

    Defines in how many seconds Metronome checks if there're idle streams to close down

  • s2s_max_inactivity1800The seconds in which opened s2s streams are considered to be idle

    The seconds in which opened s2s streams are considered to be idle

  • spim_recaptcha_client_keyreCAPTCHA client key for SPIM blocking challenges

    reCAPTCHA client key for SPIM blocking challenges

  • spim_recaptcha_server_keyreCAPTCHA server side secret key for verification

    reCAPTCHA server side secret key for verification

metronome releases & version history

More in Instant Messaging

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…