Diary

Just random thoughts.

The content of this page is highly volatile. I don't want to give each day and each thought a permalink. Some of these thoughts may grow to articles, some never won't. Thus, comments and webmentions will never be implemented for this page. But for archived pages, well, they might be.

2026-09-23

I'm failing to set up a self-hosted mail server. I could get back to OpenSMTPD. I lost all backups but I have all notes how to do that in an hour.

But that solution is not ideal too. Two separate programs, very loosely tied together. Even password files are separate for OpenSMTPD and Dovecot simply because file formats are different. That sucks and I don't want it.

I'd like a central configuration. It could be JSON files for each domain in /etc/mail/domains. Each file (e.g. /etc/mail/domains/example.com) might look like this:

{
    "users": {
        "alice": "password-for-alice-example-com",
        "bob":   "password-for-bob-example-com"
    },
    "aliases" {
        "anon": "alice",
        "anonymous": "alice"
    }
}

Both Exim and Dovecot must be able read such files. Exim supports dsearch and JSON string expansion. Dovecot supports LUA authenticator which could do local json = require "json" and process that file.

But I'm unable to solve the configuration puzzle to make it working in Exim.

I don't like puzzles.

I'm a normie!

Besides, I want to force mail transfer agents to use TLS. I don't even know what's happening nowadays and how do I know what Exim exactly does?

Say, do Gmail, Tutanota, or Proton try to send messages openly through port 25 or they always use STARTTLS? Do they try port 465? Do they check certificates strictly or swallow expired ones?

I think I never know answers without my own implementation.

What if I set TLS-Required header, would Exim use secure connections? Exim documentation does not even mention REQUIRETLS.

Self-hosting mail is not for "look ma, I can do it!" It must be a better system.

I guess I cannot do it with Exim.

I'm too stupid and lazy to solve puzzles.

My do-do list:

2026-09-22

Created Hall of Shame page.

I have a success story with https://wiki.nixos.org The admin fixed network neutrality issue very fast. They had to move to different hosting but they did that just because some anonymous complained.

They are awesome!

I wonder why no one complained before.

🙏🙏🙏

More on DOI: it could be be a crypto wallet address! Why not? No central authority and happy readers can tip for the bullshit.

Which cryptocurrency?

Given that the purpose of DOI is an ID, not tips, Monero is the best!

Anyway, I'm not an expert in cryptocurrency. Not even a user! Just thoughts.

But I like the idea.

🙏🙏🙏

It's been six months since I implemented my own IDNA routines and only now I've discovered libidn. Noticed it in exim4/dovecot dependencies.

Libidn2 uses libunistring

That's funny. I've been trying to get back to C for a couple of years after 20 years of hiatus, but I haven't stumbled across any cheatsheet that listed these libraries.

But that's good, actually. After skimming through the documentation I immediately lost the momentary desire to move to these libraries. Not only because strings are null-terminated, no, but... well, the overall API design looks awkward to me, like something from the distant past, like a contribution to the sheer complexity that empowers the widespread of nowaday's AI.

Nothing personal, just feelings.

2026-09-21

Sovereignity browser:

They did good. I need to add it on my watch list.

How to automate my watch list? Well, I know, actually, how, but for now I'm here with bare hands.

🙏🙏🙏

Yet another thing from parallel reality https://lobste.rs/s/lvld5b/how_get_doi_for_your_blog_posts It looks like an ad, but anyway, what if the site that mints DOIs suddenly disappear?

The idea is good, and I embrace it, but DOIs should not depend on a central authority. Cryptographic keys (their hashes, actually) look the best solution.

Apparently, at this point I need web mentions.

🙏🙏🙏

Skimming through the documentation. A couple of points scare me.

Exim:

Because LMTP is expected to be of minority interest, the default build-time configure in src/EDITME has it commented out.

Minority interest!

Damn, that's the main feature I need! Dovecot needs, strictly speaking:

LMTP is the recommended method for mail delivery for most installations.

Well, Exim was created in a university presumably by students and definitely for students. There's nothing wrong with this, it's like here, in tilde.club where a server has a bunch of users and Exim tosses mail to their local mailboxes. There's no need for more. Young hackers just run something like Mutt in their terminals and cum in extasy.

Normies like me have different needs.

But... I can be wrong, my experience is based on a previous setup based on OpenSMTPD.

I keep myself from asking "how to setup exim and dovecot". No, I have my own brain. Slow and erratic but it's still mine. I love it and don't want to make it dumb. Let it work!

2026-09-20

My last reincarnation went successful. Actually, it was a rehearsal. The next one will be for real.

How many websites I created before?

I cannot count.

I did this on a professional basics. But I'm still feeling myself like a newbie. Probably because there are things I love much more.

Web sucks. From the inception up to these days.

These days are much worse.

Sir, when I see all that modern web I want to puke my fucking guts out.

Well, me too, son. Yeah, me too.

So, I'm doomed to repeat my previous experience spiraling up. Or down.

Okay, I have a lot of gems in my pile of garbage. I'll dust them off and make a new, smaller pile. Then, I'll probably make another smaller pile based on it. And again, and again, till I reach Nirvana.

First (well, almost) thing is this website. It's fully static because I do not own the infrastructure.

I dug out my simple template and static site generator and published this page.

What I stumbled upon was favicon. I had no desire to draw anything. As a bodhisattva I just wanted folded hands. It's an unicode character. But how to make it a favicon?

Stackoverflow has an answer but it's a piece of Javascript. No, I don't want Javascript on this site, but what if I copy-paste href="data/image..." part?

Guess what?

It works!

Why Javascript then?

Or it was an AI-generated answer?

Anyway, thank you stranger for enlightening me!

🙏🙏🙏

While I was hiking in woods yesterday, the Universe sent me a plot for another chapter of my novel. I need to write it down while I remember it.

But for now I have to get someone to shopping riding bicycle!

🙏🙏🙏

Setting up selfhosted mail server: Exim + Dovecot.