This is fantastic. I'm in the process of setting up a personal mail server. I have played a bit with mailcow in the past but my new server is running NixOS, so I'm looking for something that has been implemented there. And happened to stumble upon stalwart for the first time today. A web admin will certainly make the switch from mailcow easier.
The other contender was getting nixos-mailserver up and running alongside postfixadmin. But with stalwart I wont have to do that wiring up.
Stalwart is great and has out of the box JMAP support - I don't believe there's anything else out right now that checks all the boxes like Stalwart for an AIO mailserver.
> With every subsequent restart of Stalwart, the server fetches the Webadmin binary from the blob store, extracting it into a temporary directory. This process guarantees that the Webadmin is always available and updated
I'd be very interested to know as well. Although the last time I attempted to run kanidm in a containerized fashion it left a lot to be desired.
The software is (perhaps expectedly) not really built to support semi-ephemeral lifetimes, so it took quite a few hacks to get it running in Kubernetes the last time I tried.
As I recall, the primary issue I had was with exposing the certman-provided Let's Encrypt certificates to the kanidm process inside the container in a reasonable fashion. I don't think I found an elegant way of signalling to the kanidm process that the certificates had been renewed and should be reloaded.
From the main project page, it mentions it has typical alias support:
>Email aliases, mailing lists, subaddressing and catch-all addresses support.
Another feature that would be nice to have built-in is masked hide-my-email aliases for privacy like the cloaked email services from iCloud, FastMail, SimpleLogin, Cloudflare email routing, etc.[1]
For now, I use the typical aliases addresses in Dovecot but it doesn't hide the real email when replying. Also, creating new aliases in Dovecot-based email systems is very tedious and cumbersome because you have to go through the cPanel interface to create them. (Some suggest using the "catchall" feature to avoid the need to manually create new aliases but that advice is not workable when spam robots constantly send emails to new random addresses in your domain.) The cPanel/Dovecot aliases also don't have any metadata so you can add details on what the alias is for and when it was created.
EDIT ADD to reply : >On Stalwart you can implement masked e-mail using address rewriting
Stalwart's feature of "Sieve scripts" for custom rewriting/filtering is interesting but it's not UI friendly for endusers to create new masked email addresses (and also later delete them). There's also no user-defined metadata. It's also not clear if Sieve scripts can run on outgoing mail rather than just incoming mail. Example of how UI workflow in Apple's Hide My Email is simpler than Stalwart Sieve scripting: https://www.youtube.com/watch?v=oJRrkJy0vUk&t=34s
The project name escapes me, but there was a python project that generated email addresses with a hmac, and rejected invalid addresses (some-prefix-c679ba1@example.com). I think it came out a little before the rise of grey listing.
"No runtimes or garbage collectors." seems like an odd thing to advertise. Have either of these been the cause of problems in mail servers in the past? I'm guessing not?
I wouldn’t want to deal with deliverability issues, which are very much a matter of quality of service and industry relationships rather than a matter of having the right software. Just use Mailchimp or Sendgrid or Amazon’s email service, pay the small service fee, send high quality email, and don’t get distracted by trying to figure out why your emails are going to spam.
I've been using Listmonk (very easy to customize), sending ~35,000 mails / weekly as an alternative to Mailchimp with AWS SES as a backend but a self-hosted stalwart server could do the trick. We're saving ~600$/month by not using Mailchimp.
The biggest issue you will likely encounter is having clean IP addresses to send from. If you have that problem solved, the next hurdle will be realizing that Stalwart is more than you would need to manage sending daily emails. If you have the IP addresses, you could just use a script that grabs email addresses to send to for the day, and ship them with a fairly straightforward SMTP daemon (sendmail) installation on a VPS.
Stalwart might be a good use case for your business/employee mail account handling, however.
Looks nice! I could see myself reconfiguring my current OpenSMTPd based setup to have OpenSMTPd relay incoming mail to Stalwart and having Stalwart make the decision about which mails to keep or discard. Def gonna experiment with that this weekend :D
noob question: how does this compare to something like vestacp, which install a lot more and mail (roundcube frontend)? I have been using it since 5 years and always work like a charm, maybe HN give me the reason to move on. :')
How reliable is mail delivery ootb with dmarc, spf and dkm in your experience? (I guess it really depends on the reputation of the IP and not the mail server)
notyoutube|1 year ago
* Maddy: https://github.com/foxcpp/maddy
* Mox: https://github.com/mjl-/mox
* and Stalwart
which all see to aim for more or less the same niche. I wonder if we'll see two of those merge eventually.
infogulch|1 year ago
softjobs|1 year ago
https://jmap.io/
hannofcart|1 year ago
Now I am able to send reliably to Gmail, and semi-reliably to Outlook.
My mail volumes are very low however. I just setup this as my SMTP server just for the heck of it.
jonotime|1 year ago
The other contender was getting nixos-mailserver up and running alongside postfixadmin. But with stalwart I wont have to do that wiring up.
Side note: I route outgoing messages to sendgrid.
RyeCombinator|1 year ago
BartjeD|1 year ago
After I install this via the install script on, say, Debian. An update comes along. What do I do? Run the install script again?
Or does the web UI have a process for initiating an update?
I couldn't find any information on this on the website: I consider this essential information.
[Edit] I found it: https://stalw.art/docs/management/webadmin/usage
e12e|1 year ago
That's a little too efficient for my taste.
infogulch|1 year ago
I've been looking at both Stalwart and Kanidm, I suspect they would be a good pairing.
https://kanidm.com/
MathiasPius|1 year ago
The software is (perhaps expectedly) not really built to support semi-ephemeral lifetimes, so it took quite a few hacks to get it running in Kubernetes the last time I tried.
As I recall, the primary issue I had was with exposing the certman-provided Let's Encrypt certificates to the kanidm process inside the container in a reasonable fashion. I don't think I found an elegant way of signalling to the kanidm process that the certificates had been renewed and should be reloaded.
docc|1 year ago
ldap is currently a second citizen in stalwart tho so there are rough edges and missing features. But the basics are there
jasode|1 year ago
Another feature that would be nice to have built-in is masked hide-my-email aliases for privacy like the cloaked email services from iCloud, FastMail, SimpleLogin, Cloudflare email routing, etc.[1]
For now, I use the typical aliases addresses in Dovecot but it doesn't hide the real email when replying. Also, creating new aliases in Dovecot-based email systems is very tedious and cumbersome because you have to go through the cPanel interface to create them. (Some suggest using the "catchall" feature to avoid the need to manually create new aliases but that advice is not workable when spam robots constantly send emails to new random addresses in your domain.) The cPanel/Dovecot aliases also don't have any metadata so you can add details on what the alias is for and when it was created.
[1] masked email services examples
https://support.apple.com/en-us/105078
https://www.fastmail.help/hc/en-us/articles/4406536368911-Ma...
https://simplelogin.io/
https://blog.cloudflare.com/introducing-email-routing
EDIT ADD to reply : >On Stalwart you can implement masked e-mail using address rewriting
Stalwart's feature of "Sieve scripts" for custom rewriting/filtering is interesting but it's not UI friendly for endusers to create new masked email addresses (and also later delete them). There's also no user-defined metadata. It's also not clear if Sieve scripts can run on outgoing mail rather than just incoming mail. Example of how UI workflow in Apple's Hide My Email is simpler than Stalwart Sieve scripting: https://www.youtube.com/watch?v=oJRrkJy0vUk&t=34s
e12e|1 year ago
StalwartLabs|1 year ago
https://stalw.art/docs/smtp/rewrite/address
gingerlime|1 year ago
* generates a random email
* asks for an optional description
* inserts new email to the database
* adds an entry to postgrey whitelist
* emails me the address and description (so I can search the email address later in my inbox if necessary)
Works a treat for me, but not something my family can use.
elric|1 year ago
addandsubtract|1 year ago
throwiforgtnlzy|1 year ago
Is there anything approaching "Microsoft Exchange" today without the Microsoft or commercial pseudo-FOSS?
Nerada|1 year ago
tetrisgm|1 year ago
We could ofc use Mailchimp but always happy to explore self hosting. Would this or another solution work?
julienmarie|1 year ago
Just make sure you set up everything (SPF, DKIM, DMARC) correctly, including the PTR reverse lookup of your server ( really important ).
Key tip: warm up your ip(s). I use mailreach.co ( it has a USD 25/m cost ), reached near 100% deliverability in a month.
I now have barely have any maintenance to do. It just works.
jen729w|1 year ago
If you want an actual product, check out Buttondown. Indie, great support, and amazing APIs.
blackeyeblitzar|1 year ago
0x457|1 year ago
achristmascarl|1 year ago
notresidenter|1 year ago
behringer|1 year ago
_eht|1 year ago
Stalwart might be a good use case for your business/employee mail account handling, however.
x3n0ph3n3|1 year ago
codetrotter|1 year ago
pydubreucq|1 year ago
fffrantz|1 year ago
Oh well, might look into it when I have more time. Looks promising though!
fffrantz|1 year ago
saddist0|1 year ago
cvalka|1 year ago
kldx|1 year ago
ranger_danger|1 year ago
[deleted]
bks|1 year ago