puppie

014 - hey, young autist! give up your friends for the state

on server maintenance

loathe as i am to talk about it here, i am an unfortunate occasional computer user. i am unfortunately enough of a computer user that i like having my own server, half for running actual (web) services, half as a linux machine that i'm familiar with that i can always connect to. in a lot of ways, it feels like keeping my home - a little piece of the world that i'm intimately familiar with that i can always return to. i get uneasy when it's offline.


PRINCIPLES OF SYSTEM DESIGN; or COLLECTED NOTES FROM A DECADE OF BROKEN DEBIAN INSTALLS

  1. a good system should be foolproof

you are a fool, and not to be trusted with running a system.

sorry. you aren't a fool. but please imagine your coworker, your friend, your mother. she is clearly beneath you. she cannot be trusted with running a system. she is an inevitable adversary to your system. design your system with contempt in your heart, so that it can defeat these adversaries to remain operational.

  1. a system should be known and not felt

this is an obvious follow-on from point 1. emotions are fragile, emotions will not return the same way they left, emotions are communicated imperfectly. a system needs to be understood intellectually. flowcharts help with this, clear documentation helps with this.

you wouldn't give a friend directions to your house in song. why would you use your emotions to navigate a system?


i've had these kinds of servers for a while now. from leaving my desktop pc on all day and annoying my parents with the electricity, to moving between different 5 dollar a month VPSs trying to find the good one, to repurposing old mini PCs with weak laptop processors, to buying my own hardware, specialised for this task. from a handful of applications running on bash-in-windows, to debian or truenas with mostly prebaked config, to hand configuring random linux installs, now to nixos. in a lot of ways it feels like a reflection of who i am at the time, and it changes and grows as i do.


some long durations in my life


the almost most recent and easily longest running of these started a few years ago, probably around 2022. i moved house, into a place with much more stable internet, stable enough to host a website on. my mac mini had been sitting around at my house for a few years now, unused since macos updates rendered the software obsolete to me and my inherited gaming pc rendered the hardware obsolete to me. i put it on my floor, connected power and ethernet, and ran a website off it for three years.


  1. a computer should act like an appliance

your toaster is in many ways the perfect model of a system. it does one thing. it does it quickly and effectively. your computer is not. it does many things. it does many things sloppily and poorly and often when you don't want it to be. you should be able to operate your computer the same way you operate your toaster.


still, though, the march of time remains unchanging. my mass storage was provided by an external usb hard drive (filched from my parents), and as the amount of accumulated data from a messy life rose, i craved both increased capacity and redundancy. its software was starting to show the tolls suffered by an arch linux install maintained incredibly sporadically by someone with decent ability and incredibly poor memory and executive function. it was functional, but it was a mess of inconsistency, fragile systems, handwritten scripts and hacks to keep it running.


  1. a system can achieve perfection where a person cannot

my new server has been set up in the corner of a different room for a couple of weeks now. she has the name catgirl now, she has most of the services that my old server used to host. her configuration is implemented in a single folder of nix scripts, all cleaner and better documented than anything i could hope to achieve with my old server.

the other night, i updated my port forwarding rules, redirecting web traffic from my old server to catgirl. my old server is now essentially unnamed and unreachable, unless you know where it is.

still though, i can't quite bear to disconnect it.