Notes on my personal set-up
I've been running my own infrastructure for about 20-ish year, as a hobby for fun and profit. In the early days it was a couple of boxes at home running some flavor of RedHat on a domestic ADSL connection. Then one day mail stopped working, and after much scramble we figured out that the ISP has simply blocked inbound port 25. I've upgrade the home connection to a business plan, which was twice as expensive, with same speed, but the ports were not restricted. It lasted for a while until one day a power outage happened and fried the hard drive.
I've moved to the cloud using MediaTemple.net, one of the first VPS providers at a considerable $50/mo.
qmail
was compiled from scratch using some step-by-step guide, apache
was chugging along serving PHP-based web sites and we were off. At the time the setup was based on SquirrelMail and Gallery. This server has survived until MediaTemple has completely discontinued the VPS plan they were offering, and suggested moving to another one (much cheaper), but the prospect of having to recompile and reconfigure qmail
was a bit too much, and I've decided to go with something that runs out of the box, so I picked postfix
, which still powers my mail setup today.
Around that time Edward Snowden's revelations showed the depths of surveillance and I thought to move my stuff to a country with better privacy laws, so I switched to 1984 Hosting out of Iceland. I was pretty happy using them for quite a long time, but at some point their storage system has suffered a catastrophic failure and I had to plug the holes by re-routing my mail through Gmail. Hey, I was in a pinch.
Eventually they were able to recover the files, but I've since moved on to Digital Ocean, as I wanted something on a cheaper side.
So, let me tell you about my current set-up.
I'm currently running on a Digital Ocean VPS that I've obtained shortly after the 2017 1984Hosting Crash. Originally provisioned with Ubuntu Server 17. It's been upgraded continuously and it's running the latest version now.
Category | Purpose | Software | Stack |
---|---|---|---|
Monitoring | System Load, etc. | Munin | Perl |
Logging | Grafana | Go | |
Data Capture | Collectd | C | |
Analytics | Matomo | PHP | |
Connectivity | Email (SMTP) | Postfix | C |
Email (IMAP) | Dovecot | C | |
Email (Filtering) | Pigeonhole Sieve | C | |
Email (Antispam) | MTPolicyD | Perl | |
Email (Verification) | OpenDKIM OpenDMARC | C | |
Email (UI) | RoundCube | PHP | |
Video Calling | Tlk | NodeJS | |
Calendar + Contacts | Baïkal | PHP | |
To-Do | Vikunja | Go / TypeScript | |
Security | VPN | Wireguard | C |
VPN (Management UI) | WG Provision | NodeJS | |
VPN (DNS Tunneling) | Iodine | C | |
Password Management | VaultWarden | Rust / Typescript | |
Attack Mitigation | Crowdsec | Go | |
SSO | Zitadel | Go | |
Social Media | Status updates | Pleroma | Elixir |
Video Hosting | PeerTube | TypeScript | |
Blog | WriteFreely | Go | |
Collaboration | Knowledge Base | Outline | TypeScript |
VCS | Gitea | Go |
My criteria for the software – preferably compiled, single binary, low memory footprint. This usually precludes things like Ruby and Java, but I do currently run some NodeJS based tools, but for most part they seem to behave.
Costs-wise: $32.5 CAD/mo for the server. $24 for the instance and $5 for additional volume + tax. Not sure what I pay for DNS, because I own a bunch of domains... I use EasyDNS + ZoneEdit, which I can highly recommend.