Author's Profile Picture Avatar Jadarma's Blog

The Future Is Self-Hosted

2024-06-05 1111 words 6 min

What started as a nerdy interest turned into a hobby now seems like a necessity. I firmly believe that everyone interested and capable, or willing to learn, should set up a home lab. Here’s why..

What is a Home Lab? #

A home lab usually refers to computers acting as servers that you run from the comfort of your own home. It can be something as simple as an old spare pc, a small mini PC tucked away under the TV, or a full-blown server rack.

It’s a place where you can learn and experiment freely, and be in full control. The main thing you’ll do is host software services. There’s a ton of cool stuff you can do, ranging from simple NAS and backup utility, to personal VPNs, media streaming, budget planning, and more.

Why? #

Here are a few reasons why I think this is a great idea. Of course, the list is non-exhaustive.

1. Privacy & Data Ownership #

The adage of “If it’s free, you’re the product” is still true but no longer accurate enough. Capitalism-driven hype trains blazing through the thick, grifting fog of techno-evangelism basically ensure the new version: “We’re gonna give you a discount, since we’re training AI on your data.”.

The Cloud is just someone else’s computer, and no matter how secure they claim they are, I would still not advise you trust any of them. There are certain applications that are simply incompatible with the model, like financial data, private documents, and whatever else you wouldn’t want to fall in the wrong hands.

Self-hosting allows you to manage your own services in a private cloud. Only you (and the people you authorize) can access your data.

2. Free & Open Source #

Self-hosted services are usually FOSS. With Free as in “Freedom” AND “Free Beer”. Praise be to the unsung heroes sacrificing their free time so that we all can benefit.

Since you provide compute for your services, you are in charge. You don’t have to deal with changing subscriptions or tiered feature sets.

You are also part of a community. An actively developed (and popular) community project is much more receptive to feedback, support, and feature requests than a corporation. It’s also much less likely for a feature the community doesn’t want to be forced down their throats.

3. Great Learning Opportunity #

If you are a software developer or plan to have a career in IT, this is a fantastic opportunity to develop complimentary skills. You will learn a bit of devops, a bit of networking and sysadmin-ing, Linux and terminals, which can help you be a more rounded-off developer, professionally speaking.

Or maybe you are frustrated about the restraints your workplace put on your stack? Think you could do it better, or simpler, or more conveniently? Practice what you preach! Try it out on your own, and explore!

And even if none of these apply to you, it’s still an interesting thing with a “Cool!” factor you can use to impress your friends.

Why Not? #

For the sake of symmetry, here are a few reasons why you should consider not doing this.

1. Costly Hobby #

The rabbit hole goes deep, and if you don’t already have experience with Linux, containers, and basic dev-ops you will spend quite a lot of time learning this stuff.

You will also spend a lot of time researching components, software stacks, and everything in between. A private cloud means private computers, means hardware. And good hardware ain’t cheap. Depending on what you get, you might also see a slight increase in utility bills, but if you start small and have power efficiency as a goal, it shouldn’t be noticeable.

What, you think you got it up and running, you’re satisfied and are gonna stop here? Who are you kidding? You WILL feel the urge to upgrade. Maybe a bit more compute, perhaps a larger storage pool? Heck, why not upgrade the home network infrastructure to 10GiB?

Don’t say I didn’t warn ya!

2. Great Power, Great Responsibility #

Since you are in complete control of your lab, you are also the sole person responsible for its wellbeing. Although not necessarily common, when problems do arise, you need to either fix them or live with them.

Do you depend on the availability of your services? Are you okay with the planned downtime of maintenance? What about the unplanned downtime due to power outages or hardware failures or house fires?

Speaking of, you do have backups, right? You know that you have to have a plan for everything, and that any shortcomings will be a burden your shoulders alone will carry, right?

3. Skill Issue #

Coming back to the topic of spending time to learn the software side, if you are not a programmer or have some technical background this may be a bit challenging, especially at first.

You will play the scaled-down role of an entire IT department. You will need to know how to keep stuff up to date, how to maintain backups, how to mitigate security risks, how to integrate services together, how to write technical documentation for yourself because you WILL forget some stuff along the way.

This is by no means an attempt at demoralizing you into not trying. You can do it! I’m just trying to make sure you understand this is a long-term journey and you will need to put in some effort. Where there’s a will, there’s a way.

Resources? #

If this tickled your fancy, I recommend lurking r/homelab and r/selfhosted to get an idea of what other people are up to, you will find wikis and mega-threads which will point you in the right directions.

If you’re unsure what you want to do, check out this awesome list of self-hostable services for inspiration.

If video guides are more your style, there are loads of cool people on YouTube that have your back. Check out Wolfgang, TechnoTim, and Lawrence Systems to name a few.

But remember: Your home lab, your rules! Just because you see people telling you to do it their way, doesn’t mean it’s the best or only way. Whichever opinion you may hold, you will find people agreeing and disagreeing. Sometimes, both parties are right because what they actually disagree on the use-cases, and not their solution for it.

And I’m no different! I did the things I did the way I did them because that’s what I considered is the best course for my needs. If you agree with me, great! If not, I understand, and I hope the insight was still useful.

Do whatever you feel suits you best.


Series: Part Of My HomeLab
Category: technology
Tags: software linux