MUPDATE(8)

πŸ“¦
version 3.12.3 Β· 4 versions
, in ubuntu stonking

πŸ’– MUPDATE(8) β€” the Cyrus IMAP glow-up πŸ’–

okay so bestie, welcome to the manual page for mupdate, straight out of the Cyrus IMAP docs. it's the MUPDATE server process, and yes she's giving infrastructure royalty. πŸ‘‘


✨ SYNOPSIS ✨

mupdate [ -C config-file ] [ -m ] [ -a ]

that's it, that's the whole vibe check. three little flags between you and cluster peace. πŸŽ€


🌸 DESCRIPTION 🌸

so mupdate is the mailboxdb aggregation server, which is a fancy way of saying she's the group chat admin who keeps everybody's mailbox list in sync. πŸ’…

she accepts commands on her standard input and responds on her standard output. that's the whole relationship: you talk, she answers.

🚨 important, no cap: mupdate MUST be invoked by master(8), with those descriptors attached to a remote client connection. she does not do walk-ins, she does not do solo missions, she has a designated handler and that handler is master(8). periodt.

she reads her configuration options out of the imapd.conf(5) file, unless you tell her otherwise with -C. queen of following the instructions until you hand her new ones. πŸ™ˆ

and now the fun part: if the directory log/user exists under the directory specified by the configdirectory configuration option, then mupdate will create protocol telemetry logs for sessions authenticating as user. lowkey surveillance, highkey useful. πŸ‘€

those telemetry logs get stored in the log/user directory, with a filename of the mupdate process-id. so if you're ever like "who was that", the pid will tell you. iykyk.


✨ OPTIONS ✨

  • -C config-file β€” use the specified configuration file config-file instead of the default imapd.conf(5). your config, your rules, main character energy. πŸ¦‹
  • -m β€” run as the MUPDATE master. default is to act as slave. so if you don't say anything, she's a slave, which honestly is a whole mood. 😭
  • -a β€” [autoselect] checks the mupdate_server setting in imapd.conf(5) to see if this is the designated master server, and acts as master if this is the case. otherwise she acts as slave. it's giving "i'll be the leader if the config says so, otherwise i'm just here." ✨

πŸ’• EXAMPLES πŸ’•

so the way mupdate is commonly included in the SERVICES section of cyrus.conf(5) is literally like this:

SERVICES {
    imap        cmd="imapd -U 30" listen="imap" prefork=0
    imaps       cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100
    lmtpunix    cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20
    sieve       cmd="timsieved" listen="sieve" prefork=0
    notify      cmd="notifyd" listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1
    httpd       cmd="httpd" listen=8080 prefork=1 maxchild=20
    # (mupdate master, only one in the entire cluster)
    mupdate     cmd="mupdate -m" listen="mupdate" prefork=1
    #
    # (mupdate slave, run on each frontend host in the cluster)
    # mupdate     cmd="mupdate" listen="mupdate" prefork=1
}

read that comment again bestie: only one in the entire cluster for the master. one. singular. the moment you spawn a second master the whole thing is giving chaos πŸ’€. the slave line is commented out because you run those on each frontend host in the cluster β€” that part's intentional, that part slays. 🌈


πŸŽ€ FILES πŸŽ€

  • /etc/imapd.conf

πŸ”₯ SEE ALSO πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

the Cyrus Team, and Nic Bernstein (Onlight). icons, frankly. 🫢


1993–2026, The Cyrus Team. yes she's been iconic since 1993, that's a long run bestie. 🧚


and that's the whole page! this was Cyrus IMAP documentation, version 3.12.3, dated Jul 15, 2026 β€” go forth and be the one and only master in your cluster, ok? no cap, mwah πŸ’‹βœ¨πŸ“

πŸ“¦ where this page comes from