HNHacker News
TopNewBestAskShowJobs

audelair

16 karma · joined August 13, 2021

submissionscomments
audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
The documentation needs a lot of work, especially since a lot of it is outdated. But in short, if you setup a reverse proxy, the listeners in Stalwart will listen to anything forwarded to it, so you'll generally want to refer to the HTTP endpoints to map it to the right subdomain. https://stalw.art/docs/http/overview

For instance, you can simply point something like mailadmin.domain.com to Stalwart on port 8080 and it'll just work. In this case, whatever your mail server's host name (i.e. mail.domain.com or whatever) wouldn't really matter.

But then your reverse proxy can handle the other endpoints like /dav/, /.well-known/ on a different subdomain. And mta_sts.domain.com directly handling /.well-known/mta-sts.txt for instance.

For my stack, outside of Caddy's https handling, I kept things simple and exposed 25, 465, 587, 993, and 4190 (smtp, smtps, imaps, and ManageSieve) TCP services binded directly to the host.

Using Caddy's certificates is also documented at the end here: https://stalw.art/docs/server/reverse-proxy/caddy

But it leaves it to you to map things. For instance, if both Caddy and Stalwart are containerized, it's easy to get mixed up on where the bind-mounted or named volumes (depending on how you set it up) will end up placing them. But it does work... just so flexible that it's out-of-scope for Stalwart to document everything.

audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
This is awesome to hear, thank you. I have more-or-less figured out how to configure things, and finally found the "local configuration keys" section, but I think I can live with the current setup (mixed toml + db) until Version 1 when I can refactor my configuration. I just installed 0.14 last night and everything went smoothly.
audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
The nice thing about S3-compatible blob storage is that it is extremely easy to move the objects to another provider (or roll your own MinIO or similar setup) and point your server to it. I initially went with the File-System since it made incremental backups much easier, but ultimately, S3-compatible opened me up to more options and setups.
audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
I feel like the developer is just as serious about containerized setup as letting it take over the whole box. I've run it both ways, and have found it works incredibly well in Docker and the documentation is very good at treating all setups equally.
audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
I have had similarly been unable to get as much help from their Discord as I had hoped.

That said, I'd give this another shot. What I discovered is that Stalwart is incredibly flexible and designed to be used in any configuration you want, and the documentation and examples are incredible, compared to most other projects. BTW, there is no webmail yet, but you are right that there is the admin that is served over HTTP/S, as well as MTA_STS, JMAP. The default listeners get you started and it's kind of out-of-the-scope of Stalwart in terms how you want your server to interact with those listeners. But whether you containerize it or setup a reverse proxy, the documentation has a lot of examples, including how to pick up the certificates, if not managed by Stalwart itself.

I landed on a Caddy for HTTPS and haproxy for proxy protocol on just JMAP, and the remaining TCP services directly binded to the host for the main mail services.

Traefik is another example that I had initially prepped and got working that also handled TCP connections with proxy protocol where needed. The Stalwart documentation was very helpful with that.

In short, I was impressed with how easy it was to integrate Stalwart into whatever setup I wanted, and how open the developer is to different setups. For instance, mox (while awesome in its own right) considers containerized setups to be not-recommended, and generally expects it to live on its own server. Stalwart is flexible, but the side effect is that it is overwhelming at first... but becomes quite elegant once you get the hang of it.

audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
But the messages are accessible by every open standard: POP, IMAP, JMAP. You can also pick your storage backend, your database backend, your full text/search tool or provider, directory backend. It is amazingly versatile.

Between all the options, you can design incremental backups, snapshots, or whatever with 3rd party tools to write a script to backup your mailboxes to be restorable in any other email service or software. I have tested it with rsync, restic, database dumps, mc/aws-cli depending on the backends used, of which I have tried them all, and found it designed to be very straightforward.

The monolithic aspect is a necessary aspect of being built for HA and distributed environments that it is all the more impressive how versatile it is.

audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
I'm cautiously optimistic that Stalwart is a game-changer. I would normally stick with a simpler platform (like mox) if I wasn't interested in the groupware space. I've previously tried Nextcloud and SoGo and left disappointed, and have more or less been waiting for a project like this to come along.

Nextcloud was such a terrible experience for me (the file sharing/storage was good, but the groupware aspect was incredibly buggy). But knowing that Nextcloud is partnering with Stalwart to hopefully overhaul their stack, Opencloud is developing their JMAP integration, and Mozilla/Thunderbird is using it too (they already have a webmail in development here: https://github.com/thunderbird/stormbox)... we might finally see some exciting development in this space. And now is also a ripe time, as there seems to be a perfect storm of people wanting to get away from Big Tech platforms.

audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
I do have to hand it to the developer though. This is some serious longterm commitment to an open standard that has simply never taken off beyond one company (Fastmail). Current JMAP implementation is pretty much nonexistent, and I am back to using IMAP/WebDAV with Roundcube and plugins with Stalwart. To me, this is an exercise in patience and waiting for an eventual payoff that may or may not come in the next two years. Having followed the project closely for over a year and gone through a few upgrades and followed the community, I'm still optimistic and happy to be along for the ride.
audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
I heard some second-hand accounts that Hetzner's object storage was pretty slow even in the same location. For email, that sounded not too ideal.

Also, I only have 5 mailboxes right now holding less than 15GB of data total... S3 is still cheaper than the minimum at Hetzner since I don't need anything close to a TB.

audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
I tried very hard to get it to work, but I simply couldn't get it to connect with my Stalwart instance over JMAP. I do have the permissive CORS and end-points and proxy-protocol seemingly working with my test HTTPS requests, and I also successfully got JMAP to work with the Mailtemi app, but no luck yet with Cypht[0].
audelair··on JMAP for Calendars, Contacts and Files Now in Stalwart
Not sure if yours is setup different, but there are several key fields that need to be written to the config.toml file, and I've seen my file get updated when I make changes to the listeners or stores settings.

But in general, I agree that it has not been a very smooth experience. Having messed around with maddy and mox, Stalwart has had quite a few gotchas. Despite being a single binary promising simplicity, I'm finding it to be a real challenge figuring out how it all fits together, and I'm mostly learning by trial and error since the documentation is often outdated.

My biggest gripe is that it doesn't use the config.toml for every setting, or at least doesn't seem to have the option to do so. I broke my installation and had to find the posgresql key-value pairs for the settings, which was made harder by the fact that everything was stored as binary, which also made me have to edit it as binary as well. These were very simple settings that would have been a breeze in a flat configuration file. I absolutely do not like how necessary the WebAdmin is to manage simple things.

That said, the integration with calendar/contacts is nice even without JMAP... Getting Thunderbird and Roundcube setup with plugins and proper settings made it so easy to get several users setup with calendars, contacts, and shared email-boxes and shared contacts right upon first login.

The S3 storage is also working great (Hetzner Frankfurt VPS paired with AWS eu-central-1), and AWS downtime a few days ago notwithstanding, I'm feeling good about the reliability that gives me, leaving me mainly with the PosgresQL data store the main thing to keep backed up.

This is a hugely ambitious software and as such, there will be many things that I will have a hard time getting used to as a hobbyist, but also a lot to be gained. I'm sticking around for now and waiting for version 1, improved documentation, and more clarity on how it all works.

audelair··on Self-hosting email like it's 1984
I am basically all in on Stalwart right now, but do not have the time to deal with email deliverability issues or asking my VPS to open a port, so I have been using AWS SES as the SMTP relay for awhile. No problems so far, hosting about a dozen mailboxes for friend's and family's personal use. The whole stack is so lightweight, I have it on the cheapest Arm-based VPS at Hetzner.

My hope is that Stalwart will get to their webmail project over the next couple of years. I am on SnappyMail, but basically need to use desktop and mobile clients to get the full mail/CardDAV/CalDAV experience, which admittedly is already pretty awesome.

Currently, I have Stalwart, PostgreSQL, SnappyMail, and Caddy, all inside a docker-compose file, and I have migrated, moved servers, and all that no problem.

audelair··on My Own DNS Server at Home – Part 1: IPv4
I also love Technitium, and excited about some of the features that are coming soon. PostgreSQL for logs, aggregated view for viewing activity across multiple servers. The developer is also very active on Reddit and Patreon.
audelair··on Ask HN: Best Linux distro for a young kid’s first computer?
My daughter started on MX Linux at 5 and knows her way around pretty well... I chose it because I wanted something easy but lightweight, since we were repurposing an old Sandy Bridge laptop.

Now she is almost 8, we are building a new PC together and it will have a bit more horsepower, so we will likely be installing Linux Mint on it. I do think it's nice to have something user friendly. I personally am a huge fan of Linux Mint Mate edition and she sees me use it, so we likely will stick with the same on both our PC's.