NNTPD(8)

πŸ’Œ NAME πŸ’Œ

okay bestie, meet nntpd β€” this is the Cyrus IMAP documentation for it, and it's literally the NNTP server process ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

nntpd [ -C config-file ] [ -U uses ] [ -T timeout ] [ -D ]
    [ -H ] [ -s ] [ -r ] [ -f ] [ -p ssf ]

🌸 DESCRIPTION 🌸

So nntpd is an NNTP server, periodt. It takes commands on its standard input and claps back on its standard output. And here's the thing β€” it MUST be invoked by master(8) with those descriptors already attached to a remote client connection. Like, that's not optional, that's the whole vibe. πŸ‘‘

nntpd pulls its configuration options out of the imapd.conf(5) file, unless you say otherwise with -C. Let's break down the settings it cares about:

  • the optional newsprefix setting β€” this one gives you a prefix that gets prepended to newsgroup names, so they become the matching IMAP mailbox names πŸŽ€
  • the optional newspostuser setting β€” this is the special userid used when building the To: header address for following up to articles when you're reading via IMAP
  • the optional newspeer setting β€” the fully qualified hostname of the upstream news server where articles get fed
  • the optional allownewnews setting β€” this is what enables the NNTP NEWNEWS command
⚠️ NOTE: if your server has a large volume of articles, the NEWNEWS command can be expensive. Like, your wallet doesn't hurt but your server might. 😭

Oh and here's a fun one 🫢 β€” if the directory <configdirectory>/log/user exists, then nntpd will create protocol telemetry logs for sessions authenticating as user. Those telemetry logs live in the log/user directory, and the filename is the nntpd process-id. cute, organized, we love to see it πŸ’…


✨ OPTIONS ✨

  • -C config-file β€” use this specific configuration file config-file instead of the default imapd.conf(5). main character energy, you pick the file πŸ’–
  • -U uses β€” the max number of times the process should be used for new connections before it shuts down. the default is 250. it's giving "we had a good run bestie" πŸ₯²
  • -T timeout β€” how many seconds the process will wait for a new connection before shutting down. heads up: a value of 0 (zero) will disable the timeout. the default is 60. ⏳
  • -D β€” run the external debugger specified in debug_command. πŸ”
  • -H β€” tells nntpd to expect a HAProxy protocol header from the sender. πŸ‘‹
  • -s β€” serve NNTP over SSL (https). all the data going to and from nntpd is encrypted using the Secure Sockets Layer. locked down, secured, no peeking πŸ”
  • -r β€” only allow NNTP reader commands. permitted clients will only be allowed to read/post articles. reader era only πŸ“–
  • -f β€” only allow NNTP feeder commands. permitted clients will only be allowed to feed articles β€” and nope, no reading. feeder era only 🌾
  • -p ssf β€” tell nntpd that an external layer exists. an SSF (security strength factor) of 1 means an integrity protection layer exists. any higher SSF implies some form of privacy protection. πŸ›‘οΈ

πŸŽ€ FILES πŸŽ€

  • /etc/imapd.conf

πŸ’œ SEE ALSO πŸ’œ


πŸ‘‘ AUTHOR πŸ‘‘

The Cyrus Team, Nic Bernstein (Onlight) β€” absolute icons, no cap 🫢


1993–2026, The Cyrus Team


okay that's the whole page, bestie!! you're now fully caught up on nntpd(8) from the Cyrus IMAP docs πŸ’…βœ¨ and just so you know where this came from β€” it's version 3.12.4, dated Sep 09, 2026, brought to you by the Cyrus IMAP girlies. slay, go read your news πŸ¦‹πŸ“πŸ’–

πŸ“¦ where this page comes from