Ask home lab veterans about their motives for self-hosting services, and youâll hear a bunch of different answers. Some tinkerers despise the privacy-intrusive nature of modern cloud platforms and deploy their own FOSS to prevent big corporations from collecting personal information. Others switch to the self-hosting landscape to stop their monthly subscriptions from piling up. Youâll also find folks who prefer the limitless customization options offered by locally-hosted apps. Then there are tinkerers like me, who do it for all these reasons (and also for the added flex).
Regardless of your motivations, the self-hosting ecosystem is a lot deeper than it looks and has plenty of perks and quirks that youâll realize only after youâre knee-deep into it. As someone who has dozens of apps running across multiple server nodes, hereâs everything I wish I knew about running local services before I jumped headfirst into this hobby.
You can self-host apps on practically anything
Weak SBCs, NAS units, old PCs – you name it!
Iâve been acquainted with virtualization projects for a long time, and the resource-hungry nature of VMs always made me imagine self-hosting workstations as hardcore server PCs with overkill hardware. What I didnât realize was that youâll mostly be using containers when running services on local devices. Since containers share the same kernel as their host OS, these environments are extremely lightweight compared to their virtual machine siblings.
In fact, you donât even need a powerful system to deploy containers. Single-Board Computers like the Raspberry Pi series are more than enough to run several containers, and the same holds true for dinosaur PCs. And I say that as someone who uses multiple SBCs and outdated laptops for my LXCs and Docker/Podman containers. Sure, certain GPU-heavy services â including local LLMs and transcoding features â may require decent hardware. But for the majority of self-hosted tools, you can get away with a modest system.
You’ll need quite a bit of storage though
Especially for services involving massive volumes of data
In stark contrast to the processing prowess of self-hosting workstations, youâll need quite a bit of storage to run a handful of containers. Many of the popular self-hosted FOSS applications tend to involve huge amounts of data. Frigate, for example, can generate a few GBs of footage every day, while Jellyfin is designed to help you manage datasets worth of media collection.
The same holds for RomM, Immich, Calibre-Web, Kavita, and a handful of other data-hoarding services. Heck, even the seemingly lighter services such as Linkace, Nextcloud, and Home Assistant can end up occupying a lot of storage space, and the last thing youâd want is to run out of HDD/SSD capacity in the middle of your self-hosting experiments. In case youâre wondering, then yes, I speak from experience.
Monitoring apps, backups, and proper documentation are borderline essential
Proper maintenance goes a long way
When I first got into self-hosting, I never understood the point of running additional services just to manage, monitor, and maintain other apps. But now that Iâve dealt with tons of freak accidents (some that were admittedly caused by my lack of knowledge), I can confirm that youâll need proper maintenance utilities â especially once youâve painstakingly built a collection of your favorite apps.
Youâve monitoring services, like Uptime Kuma and Beszel, which keep a weather eye on the health of your self-hosted apps and send alerts when a service goes offline. Documentation tools are just useful, and I have entire folders containing the unhinged notes I create when deploying services. And you should always have some form of backup in case everything goes wrong. That way, you wonât have to rebuild everything from scratch.
Updating your self-hosted stack can be a pain
Tread carefully around automated updates
While weâre on the subject of maintenance, container image updates are fairly common in the self-hosting ecosystem. Unfortunately, the update process for containers can be rather tedious. Once youâve downloaded the updated image, youâll have to safely close a container, delete it, and use the freshly pulled image to spin up a new one in its place. For a couple of containers, it might not be a major issue. But when youâve got dozens of services, manually updating them becomes a boring chore.
Automated services like Watchtower can facilitate the updation process, though they have their own Achillesâ heel. Broken images can end up in official repositories occasionally . Since automation platforms canât identify whether the images are functional, they could update the container with faulty packages, rendering it unusable.
My solution involves configuring the automation platform to send alerts when updates are available. That way, I can sift through the forums to check for broken images before giving the automation utility the A-OK to update my container suite.
The upfront costs of a new setup can be somewhat high
But you’ll save more in the long run
Although you donât need a beefy server to get into self-hosting, there can be a bit of an upfront cost when setting up a workstation to deploy FOSS apps. If you donât have a spare PC lying around, something as inexpensive as an SBC can still require an investment of $60-100 â and the price goes up to $250-300 when you start looking at a NAS system. Throw in the cost of storage drives and the spike in energy bills caused by server nodes, and self-hosting can seem like an expensive endeavor.
But as long as your electricity bills arenât in the red, running services locally will benefit you in the long run. NAS units and mini-PCs can last at least a decade (if not more) with proper care, and modern hardware is quite energy efficient. Iâve already removed most of my online subscriptions, including Microsoft, Google One, and YNAB, and have yet to face any issues with their self-hosted counterparts.
Above all, it’s a fun and fulfilling hobby
Despite all the challenges Iâve faced and (somewhat painful) lessons Iâve learned over the course of my self-hosting journey, I have to admit that I had a lot of fun along the way. Sure, being woken in the middle of the night by my family when Jellyfin stops working is a pain. But the thrill of hosting FOSS services on my own hardware, free from the grubby, privacy-intrusive hands of large corporations, makes the trials and tribulations non-existent.











































