Nick's blog Nothing to see here?

Retiring my Weblate server


(or: why self-hosting E-Mail is very annoying)

Since January 2022, I have hosted a small Weblate server for a few open-source projects. However, after various troubles, I had to shut it down. Ironically, most issues were not even related to Weblate itself.

I started self hosting the Weblate server for an old project of mine. I chose to not use Crowdin thanks to them using your translations to train their AI, and hosted Weblate was not an option because they required three months of activity before registering the project there.

Weblate requires an E-Mail server (or registration emails nor password reset nor contact form will work), so I went out on my quest to set one up. I chose a traditional Postfix + Cyrus-based setup, created a few test inboxes, sent stuff here and there and got it working. However, my server host does not allow me to set up reverse DNS on the server’s IP address. I skipped that step and had a working Weblate instance with a working E-Mail server.

After using and liking Weblate, I decided to set up all my projects there. One previously was using Crowdin and I was glad to move it away.

Sadly, problems started to arise here and there. Some E-Mail providers just straight up block emails coming from IPs where rDNS verification fails:

host[] said: 450 4.7.1 Client host rejected: cannot find your reverse hostname

GMX and AOL show similar error messages and reject the mails. Gmail and Outlook do accept the mails, but instantly catapult all messages to spam folder in user’s inbox. I decided to not bother and manually register the few users who won’t get any registration mail in the Django admin panel.

In the meantime, I started hosting a few projects from friends because they, too, did not meet the 3-month requirement of Hosted Weblate.

A few months later, I notice the server isn’t sending mails at all. I still don’t understand how that happened, but inside my tmpfs in the postfix chroot, I had a corrupted folder where files could not be created or deleted, which did not contain “.” or “..” and which could not be deleted itself. This caused postfix to end up unable to communicate with saslauthd which caused all outgoing emails to fail to send. A reboot fixed the issue and got mails running again. This happened a few more times before disappearing, probably thanks to some kernel update.

A while later, E-Mails stopped arriving at most providers. I noticed my IP had been blacklisted by SpamHaus, and the requirements to whitelist it is both to give away my personal information and to have reverse DNS set up, otherwise their bots reject the request automatically. Seeing that I could not set up reverse DNS at this hoster, I decided to reduce Weblate to a “life support” stage and posted a sticky notice on the start page.

A few months later, the server started filling gigabytes of disk space in a matter of minutes. The cause was postfix spamming only this one message:

warning: end-of-input while reading request from tlsmgr socket: Application error

After eventually filling the entire disk multiple times, I decided to shut down the E-Mail server and Weblate. I was tired of it. All projects grew up (ready for Hosted Weblate, bigger audience, etc.) and some of them already moved away. I notified the remaining project admins, deleted stale/inactive projects and set everything else to read-only. This marks the end of my Weblate server. Weblate is a great piece of software, but the inability to productively use it without E-Mail sadly ruined the deal for me.

Previous: Hello world!

Next: AntiMusic