I've been running my own mail server for 20 years now. I started with a Linux machine back in 2000, running on my parents' house as a small router. The machine had a static IP address, so I pointed my MX record to it and created user accounts for me and my family. I think I installed a small POP3 server, and we would access email using the Eudora email client[archived].
Eventually I discovered a VPS provider that would give a discount to people developing open source software. I rented a small VPS for $65, sharing it with a colleague, since it was a lot of money back then for a Brazilian grad student. We installed FreeBSD and set up an amazing service using the FreeBSD Mail Toaster[archived]. It used MySQL to manage as many domains as we wanted, had anti-virus and spam filtering, encrypted IMAP/POP3/SMTP, as well as a web interface via SquirrelMail[archived]. Not bad for two oceanographers back in the 2000s!
At some point I migrated to Google Apps, when they started offering it in 2006. It was nice to not have to worry about uptime, spam, and having a nice UI accessible from anywhere. This was before smartphones and data plans were popular, so being able to check your email using a browser was an important feature. But Google Apps was often a second-tier service, and many of the nice features from Gmail took months if not years to show up in Google Apps.
I started missing running my own mail server, so in 2012 I rented a VPS on Digital Ocean, who had caught my attention for providing cheap machines ($5) running on SSD. I installed Ubuntu 12.04 LTS on it, and set up my mail server again.
That was in 2012. In the last eight years I've added a few more things to the mail server: DKIM, SPF, certificates. When I started running the service I would simply use a self-signed certificate, but clients became more strict and at some point I switched to Let's Encrypt[archived]. Unfortunately
certbot is not available for Ubuntu 12.04 LTS, so every 3 months I have to
ssh into the machine and manually generate my certificates. I have the process semi-automated, but I have to confess that my 90-days reminder is usually my mother complaining that her iPhone is no longer connecting to her email.
I started looking for ways to run
certbot on my machine, and I realized that I should really upgrade it. It's end-of-life was in 2017, after 5 years — more than 3 years ago! I have never upgraded because the machine just works... other than renewing the certificates there's very little maintenance for be done. I think the last reboot was when I upgraded the VPS; the price I was paying for my VPS was still the same that I started paying in 2012, and I realized I could get a much better machine for a cheaper price!
I found this guide on how to upgrade Ubuntu 12.04 LTS[archived] and it seems straightforward, though I do need to upgrade through all intermediary versions. Next week I'm planning to take a snapshot of my VPS and upgrade to the latest LTS. Hopefully with that I can run
certbot automatically, and wait a few years before having to log into the machine again.