Changing Servers

I've kept a server in The Cloud1 for the past 14 years or so, hosted with Tornado VPS (formerly prgmr2). Well, I suppose I've been running anywhere from tens to tens of thousands of servers during that time, but this one was always a pet that I used to run whatever miscellaneous nonsense I needed in my personal life. For what it's worth, let me say that I have had a very satisfactory experience with prgmr/tornadovps; there has been maybe six hours of downtime over that period, and support has been super-helpful3.

sietchtabr.roguelazer.net started out way back on November 30, 2009 as a 512MB RAM, 12 GB spinning disk VM costing $11/mo and running Debian lenny. When I was experimenting with dnsextd in 2009, it was on this server. When I was hacking on a sed to x86 compiler in 2011, it was on this server. When I got married in 2015, I built the web-app for managing RSVPs on this server4. When my former classmate Michael Vrable needed someone to host a replica of a DNS zone for him? This server. Every once in a while, pgrmr would bump up the RAM and disk and CPU, and every time a Debian release came out, I would do the upgrade. I even rebooted from time to time.

When Debian bookworm came out this June, I initially planned to upgrade again. After all, why not? Well, for one thing, every time my disk had been expanded, I'd just made new partitions and put big pieces of data on them, so the filesystem was a mess — LVM2 had existed by 2009, but I hadn't used it. It was also an untidy mixture of ext4 and unconverted old ext3 volumes. If nothing else, I probably ought to have fixed all that. I also wanted to try out btrfs as a root volume; I've been avoiding it after seeing some nasty data loss issues around 2015, but probably eight years is enough maturation time.

That all seemed annoying, so instead I've replaced the server entirely. Still with TornadoVPS, just a fresh clean install of Debian. I went through and wrote Puppet manifests for every service I care about, and dropped everything I no longer need. Some key services:

  • tailscale for talking to other machines
  • bind9 to host some DNS zones
  • apache with some CGIs and web pages
  • postfix for outbound mail5
  • synapse as a matrix homeserver
  • znc as an IRC bouncer
  • duplicity running offsite backups
  • prometheus to collect metrics both about this machine and other machines on my tailnet, and to alert about them
  • a motley collection of OCI containers used to test things in docker/podman

I also took a bunch of stuff I use that doesn't have usable/up-to-date Debian packages (like neovim and zellij) and packaged them so I'm no longer running a bunch of un-managed binaries out of ~/bin like an animal.

Anyhow, I'm glad to report that after a couple of hairy days, everything's moved over. The new instance has 8GB of RAM, two vCPUs of AMD EPYC 7402P, and 90GB of reasonably-fast SSD storage; something like an m5a.large in AWS terms. You'd think that in these days where you can run a Kubernetes cluster on the free tier of GCP and we all have an infinite number of Raspberry Pis sitting in shelves, there'd be less need for a "junk-drawer" server in a datacenter, but it really is quite handy. Hopefully this new instance will go another 14 years without requiring any major intervention!

1

You know... someone else's computer

2

There was some kind of drama in 2018 and the founder left the company to work for Google, and the company got renamed. I am two degrees away from Luke Crawford on LinkedIn, but not quite close enough to actually know what happened.

3

Alan Post ended up doing a lot of very helpful work on the installer for me recently

4

With mod_cgi and python, because why not? It was going to be hit a couple of hundred times, total.

5

I was previously running postfix and courier-imapd and doing my own mail server, but I'm too old for that).


Want to comment on this? How about we talk on Mastodon instead? mastodon logo Share on Mastodon