Cabalmail

Host your own email and enhance your privacy

View the Project on GitHub cabalmail/cabal-infra

Genesis

Cabalmail grew out of a bunch of scripts and configuration files that I originally set up when I wanted to take control of my own email hosting. Some time in the late 1990s, I started getting spammed at a third-party address that I had used for years. Spam filters were unreliable at the time, and my inbox quickly became unusable. I reluctantly abandoned that long-held account and went through the pain of contacting all my friends, family, and corporate interlocutors to update my contact information. I resolved to run my own mail system so that I would not have to go through that pain again. My idea was to create unique domains for each interlocutor so that I could revoke them painlessly. If one address were abused, I would have a choice that I didn’t have with my original address: I could revoke it without having to inconvenience myself or anyone else who wanted to email me. For a while, I carried around an early Palm device with a brick-like cellular modem attachment so that I could SSH to my servers and run my scripts on demand.

Later, when my son graduated from college, he and I made a project out of converting my scripts to Chef cookbooks. It was my son, with his unerring sense of whimsy, who chose the name “Cabal” for our project.

Later still, I migrated the source of truth for addresses to DynamoDB, refactored the cookbooks to use DynamoDB for this information, and created the serverless app for creating and revoking addresses.

More recently, I added Terraform code to manage the infrastructure in the hope that others could benefit from it.