#2: Document all the things
Rihards SteinbergsWarning: this is less of a journal entry, more of a tech related rant about documentation and documenting. Back to usual style entries tomorrow.
Does it still count as a journal entry for today if I intend to talk about yesterday’s frustration? I suppose since I’m still thinking about them today, it does.
Running your own infrastructure, be it just a simple Raspberry Pi server in your closet, a cluster of Kubernetes in a cloud, or a virtual machine somewhere on the other side of the world can be exciting and worthwhile. Think of all the things you’ll learn and all the costs that you’ll save.
Until you don’t.
I’ve been running and maintaining my own server now for close to twenty years. The very same server that hosts this journal, and all of my other projects like UploadPie, multiple WordPress installations, an analytics platform, etc.
Has it saved me time? Most certainly not. Has it been fun? Sometimes. Has it been cheaper than managed and purpose built hosting? Maybe a little bit. Have I learnt important life skills? Yes, and no.
Would I do it again? Hundred percent.
But knowing what I know now I would do it differently. The biggest difference I’d make is to document everything. Every single thing and change that I make.
Every year — or if we’re more realistic every other year I decide to make some changes. Add a new domain, install some new platform to test, host my latest private project. And that’s where the trouble begins.
How have I configured certbot? What’s the process of adding a new site to my nginx configuration? When and how is logrotate setup. What kind of dependencies do I have in place and how do I even install them? Is it systemctl, service, or something else? apt-get or snap.
And this is what leads to still being awake at almost midnight, trying to make a small change from which path your webserver serves the site from without breaking automated certificate renewals, making sure automated GitHub deployments still work, and that security guidelines are still followed and implemented.
Anyway.
Document your projects as you go, even the small private ones, or you will pay for it every single time.