# Murder frontend server implementation

START {
  # do not delete this entry!
  recover       cmd="ctl_cyrusdb -r"
}

# UNIX sockets start with a slash and are put into /run/cyrus/socket
SERVICES {
	# proxies that will connect to the backends, add or remove based on
  # site preferences (lmtp below)
	imap		      cmd="proxyd" listen="imap" prefork=0
	imaps		      cmd="proxyd -s" listen="imaps" prefork=0
	pop3		      cmd="pop3proxyd" listen="pop3" prefork=0 maxchild=50
	pop3s		      cmd="pop3proxyd -s" listen="pop3s" prefork=0 maxchild=50

  # Sieve handles its own proxy needs
  sieve         cmd="timsieved" listen="sieve" prefork=0

  # these are only necessary if receiving/exporting usenet via NNTP
#  nntp          cmd="nntpd" listen="nntp" prefork=0
#  nntps         cmd="nntpd -s" listen="nntps" prefork=0

  # these are only necessary if using HTTP for CalDAV, CardDAV, or RSS
  http          cmd="httpd" listen="http" prefork=0
  https         cmd="httpd -s" listen="https" prefork=0

  # at least one LMTP is required for delivery
	lmtp		      cmd="lmtpproxyd -a" listen="lmtp" prefork=1 maxchild=20

  # mupdate database service - must prefork at least 1 on each frontend
	mupdate       cmd="mupdate" listen="mupdate" prefork=1

  # this is required if using notifications
#  notify        cmd="notifyd" listen="/run/cyrus/socket/notify" proto="udp" prefork=1
}

EVENTS {
  # this is required
  checkpoint    cmd="ctl_cyrusdb -c" period=30

  # this is only necessary if using duplicate delivery suppression,
  # Sieve or NNTP
  delprune      cmd="cyr_expire -E 3" cron="00 04 * * *"

  # Expire data older than 28 days.
  deleteprune   cmd="cyr_expire -E 4 -D 28" cron="30 04 * * *"
  expungeprune  cmd="cyr_expire -E 4 -X 28" cron="45 04 * * *"

  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" cron="00 04 * * *"
}

DAEMON {
  # this is only necessary if using idled for IMAP IDLE
#  idled         cmd="idled"
}
