HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mjl-
mox
Go2023–2026
mjl- / mox

mox

modern full-featured open source secure mail server for low-maintenance self-hosted email

14Distinct people
20Mentions
0Explicit recommenders
5.9KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

modern full-featured open source secure mail server for low-maintenance self-hosted email

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year20 dated mentions

Observed mentions: 2023-02-17 21:42:10 UTC to 2026-07-06 13:25:55 UTC.

0369122023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 12 mentions; 4 submissions, 8 comments20232024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC1248
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC505
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

20 sources
Buy your own domain and run mox (https://github.com/mjl-/mox) on it. In the setup it provides details on the DKIM info you need to put into your DNS records. Get a PTR record from your ISP (if hosting at home); periodically check your blocking from spamhaus etc. I run mine on a Pi4 no problem whatsoever, but I guess a VPS could also be used, although the scamalytics analysis will show it's a server or an IP shared with an anonymising VPN etc. if it's a shared IP on the host.
In Google suspended my company's Google cloud account for the third time
The have info on Docker in their GitHub readme Docker Although not recommended, you can also run mox with docker image r.xmox.nl/mox, >with tags like v0.0.1 and v0.0.1-go1.20.1-alpine3.17.2, see >https://r.xmox.nl/r/mox/. See https://github.com/mjl-/mox/blob/main/docker->compose.yml to get started. New docker images aren't (automatically) generated for new Go runtime/compile >releases. It is important to run with docker host networking, so mox can use the public IPs >and has correct remote IP information for incoming connections (important for >junk filtering and rate-limiting).
In Mox – modern, secure, all-in-one email server
Pitching my own: https://github.com/mjl-/mox has a "mox localserve" subcommand that runs a mail server on localhost for testing, including a pedantic mode and special addresses that cause failure conditions you may want to test for. This is actually a full mail server (SMTP, IMAP and much more) and it comes with a webmail client. The "localserve" mode was just so easy to implement that I couldn't resist.
In Trap and test AWS SES emails locally
My Pi4 (8GB ram) runs: 1. Mox mail server at home (PTR record set up with ISP) - https://github.com/mjl-/mox. 2. Web server (no external hosting hurray); TLS set up via LetsEncrypt. 3. Navidrome for streaming my music collection to my phone/computers. I ripped my thousands of CDs to MP3. I use subtracks on my phone for listening to it, and sonixd on my computers (Mac/PC). https://github.com/navidrome/navidrome 4. mpd for driving some speakers via a USB audio interface so I can use some speakers plugged into the Pi for listening to music in the same room as the Pi (practicing guitar). I control this via the Supersonic app on my phone. 5. Wireguard VPN so I can connect home. 6. PiHole for my network at home. Combined with Wireguard, it means my phone is permanently connected to my home network and gets ad-blocking and stops apps dialing hom
Read the rest
e. I use DroidHole on my phone to see what's going on. 7. xrdp server running, so a usable desktop is always available. 8. miniDLNA running connected to a NAS box so that I can watch all my DVDs easily on my TV downstairs (I spent weeks ripping them). 9. Tuya IoT API for turning some smart plugs in the house on/off via cronjob; I do this instead of using the timer in their app because it means my phone can be off the network/abroad and these plugs/lights still turn on/off. 10. linx-server (https://github.com/andreimarcu/linx-server) for sharing files so that I don't have to use Google Drive and share with people that way. 11. Peer Calls (https://github.com/peer-calls/peer-calls) so I can video conference in decent quality without having to use Google Meet / Teams etc. I also host a STUN and TURN server on the Pi so that Peer Calls works behind NAT. 12. Runs CUPS so that my very cheap Samsung wireless laser printer actually shows up as an AirPrint printer for my wife's iPad/iPhone and shows up in Android printing. (The printer does not natively have AirPrint capability but CUPS means I can provide it to users on the network). It fetches time over NTP on a cron job. It also blocks various ASNs and IPs by country on a cron job to stop annoying remote pests and cloud providers. It also runs Monitorix so I can see system load, and goaccess on a cron job so that I can see who's hitting my website without having to resort to analytics nonsense. It boots from USB3 (it has a NVMe in an IcyBox caddy). Incredibly useful device.
In Raspberry Pi 5
Interesting indeed. What kind of classification would you have in mind? Separate out different types of senders, e.g. friend groups, or professional clients? Or more the personal email, transactional email, newsletter? For bayesian junk filtering to work, you train with messages marked either as junk or nonjunk. I suppose you could train based on positive tag, and assume the message has the opposite signal if it didn't get that tag. My historic email is only classified for (non)junk. If I would start more classifications, I would have to ignore the existing messages. Fyi, I'm working on https://github.com/mjl-/mox, which also includes a bayesian filter. This sounds implementable.
In Sieve: An Email Filtering Language (RFC 5228)

Showing the 15 most recent of 20 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.