What is home-cooked ops
One of my of my favorite articles that makes the rounds on hacker news from time-to-time is An app can be a home-cooked meal. Robin's love for his family and the article's wholesome message make it a delight to read.
Making a home-cooked app has been on my infinite project list since the day I first read Robin's article. But that project never quite bubbled to the top of the list.
In the past year, a few things started to click into place that reminded my of Robin's article and made me want to put a slight spin on it.
So I'm hear to say, it is the perfect time for some home-cooked-ops aka self-hosting for your friends and family!
Why Now?
In Robin's closing paragraph, he perfectly describes enshitfication years before the term was coined.
"This messaging app I built for, and with, my family, it won’t change unless we want it to change. There will be no sudden redesign, no flood of ads, no pivot to chase a user-base inscrutable to us. It might go away at some point, but that will be our decision. What is this feeling? Independence? Security? Sovereignty?"
The first reason I want to evanualize self hosting is macroeconmoic in nature. With the end of ZIRP, the enshitfication of many online services and platforms has been kicked into high gear. Owning your own apps and services is the best defense against enshitfication. And yes just like cooking a delicious crunchwrap supreme at home is more work than door dashing taco bell; self hosting will be more work than signing up for a serice that is going to sell your data but in the end you'll be happier with your life choices.
The are also some techinical peices that have recently clicked into place the rise of symmetric gigabit fiber connections to many homes means we now have the upload speeds to make the hosting of images or videos quite snappy. Finally, I will cover this in more detail before but, there are some services and opensource projects that make that secuity better than in the past. Eg. cloudflair, tailscale, wireguard, and running a reverse proxy on a cheap vps.
Being a home-cooked meal means we care a lot less about downtime than in the professional world. Yes, I try to keep it up and running but if the power goes out or I need to reboot my sever I don't sweat it.
Putting all of the above together mean that now it is a great time for those that can to start self-hosting apps for friends and family.
** More than just myself**
I've run home assistant and few other services for myself for my many years. But the impending arrival of our son meant that I would need a way to share high quaility images with friends and family. My wife and I had previously decided that we would like to keep his face off of social media until he is old enough to responsibly decide on his social footprint.
I have been an android user since the G1 and I'm getting to the age were I maybe too curmudgeonly to change†. And since the post-Jobs apple values shipping a few more units over user experience, I needed a way to share photos and videos with family. Yes, a google drive link would have worked but that can come with it's own downsides.
Enter immich! immich is a croudfunded and opensource self-host-able replacement for google photos. That I had originally heard about on the self-hosted podcast.
** Security **
** Getting started on your own journey**
I don't really want to make a step-by-step how-to guide because everyone's self hosting needs are unique. But here are some basic steps and and outline to send you on your journey:
- Find a device to self-host on. This can be a raspberry pi or possibly something more powerful (especially, if you want to use something like immich's machine learning features). I use an intel NUC
- Install immch and test inside of your home network.
- Setup a reverse proxy like traefik
- (optional) Setup cloudflare for addition security. This allows you to hid your home ip and also you can block all IPs in your reverse proxy that are not local or comming from cloudflare.