Published Aug 3, 2026, 8:31 AM EDT Nick Lewis is an editor at How-To Geek. He has been using computers for 20 years --- tinkering with everything from the UI to the Windows registry to device firmware. Before How-To Geek, he used Python and C++ as a freelance programmer. In college, Nick made extensive use of Fortran while pursuing a physics degree. Nick's love of tinkering with computers extends beyond work. He has been running video game servers from home for more than 10 years using Windows, Ubuntu, or Raspberry Pi OS. He also uses Proxmox to self-host a variety of services, including a Jellyfin Media Server, an Airsonic music server, a handful of game servers, NextCloud, and two Windows virtual machines. He enjoys DIY projects, especially if they involve technology. He regularly repairs and repurposes old computers and hardware for whatever new project is at hand. He has designed crossovers for homemade speakers all the way from the basic design to the PCB. Nick enjoys the outdoors. When he isn't working on a computer or DIY project, he is most likely to be found camping, backpacking, or canoeing. For most of the last few decades, RAM and storage have been the cheap part of building a homelab. It was the CPU or GPU that really added cost. The opposite is true today, and I've totally revamped how I run my homelab. One of the most important changes has been to swap out Ubuntu for something much more efficient. Alpine Linux is the ultimate minimalist distro It replaces heavy libraries with smaller ones Credit: Hannah Stryker / How-To Geek Alpine is a Linux distro that takes minimalism to the extreme. Under the hood, it is built on musl, BusyBox, and OpenRC rather than glibc, GNU coreutils, and systemd. By swapping out the heavy GNU toolchain for lighter alternatives, Alpine strips away the bloat that is almost necessary in general-purpose distributions. It doesn't come with any of the other usual bloat either, which means that the base image is tiny—only 5MB—and an installed Alpine distro will land somewhere between 50MB and 150MB. For comparison, the Ubuntu Server image is around 3GB, and requires 5GB of free disk space to install. You can sometimes get it down to about a gigabyte. That makes Alpine Linux literally a few orders of magnitude smaller than Ubuntu. Why Alpine is replacing Ubuntu in my homelab Storage is at a premium The space savings between Ubuntu and Alpine are a big part of what motivated me to switch. I test more services than I can count, and consistently run more than a dozen. Ubuntu's thinnest container works out to about a gigabyte; some are larger. When you multiply that by 12, 15, or even 20 containers and VMs, it uses up at least 20GB of space. These days, 1TB costs somewhere around $230, which works out to around $5 just for the cost of the storage for the containers. If you're not optimizing Ubuntu for space, or you have more VMs in the mix, you could easily double that. Alpine Linux is tiny by comparison—somewhere on the order of 50MB. That means 20 LXC containers might cost 1GB and works out to about 23 cents in storage costs. At only a handful of containers, the cost is insignificant, but as my homelab grows, it is going to become a more pressing issue. With Alpine Linux, I can run hundreds of containers for the same storage cost of my existing 12-15 Ubuntu Server containers. Memory benefits too Alpine doesn't just save me storage costs, either, it saves enormously on RAM. A base container running Alpine idles with less than 10 megabytes of RAM in use; most of mine start below 2MB. Ubuntu Server usually sits around 100MB. On my big server, that isn't a huge consideration, since it has 32GB of RAM available, but it makes an enormous difference when I'm running anything on a Raspberry Pi. As an example, my Pi Zero 2 Ws only have 512MB of RAM. That isn't a ton of RAM, and cutting down the OS's RAM usage by 90% means I can run dozens of services instead of only a handful. Alpine Linux is great running in RAM I've been going out of my way to revive older PCs and components (since the cost of new is so high), but that always comes with one huge drawback: storage. Old mechanical hard drives are brutally slow compared to SSDs, but I'm not willing to drop extra cash on a new SATA SSD for a secondary machine. Alpine Linux allows you to "install" and boot the entire operating system off of a PC's RAM instead of its storage. With Ubuntu, that approach is problematic, since a PC with 4GB or 8GB of RAM will quickly run out of space. Again, Alpine Linux's tiny footprint really shines. I can run the operating system in RAM without using it all up, and even DDR3 is significantly faster than a mechanical hard drive. If you were using it as a regular desktop operating system, those tradeoffs might be a problem—or at least a huge inconvenience—but since each container is designed to be as light and job-oriented as possible, its minimalism is actually a perk. There are a few compatibility problems The loss of glibc sometimes becomes an issue Credit: Jordan Gloor / How-To Geek Nearly every problem you'll encounter with Alpine will come back to one thing: software built for glibc that assumes glibc is present. Because musl is a different C library, glibc-linked binaries simply won't run. In practice, I've found this is a problem with some proprietary software, some Python packages, and some Java projects. I also ran into one issue with locale handling for non-ASCII text. However, there are usually workarounds. Start by using the project's official Alpine build—more projects have these than I initially expected. If that doesn't exist, install gcompat for API compatibility, which covers a surprising amount of ground. Alpine is great for any server with a resource crunch Alpine turned out to be a better fit than expected. While musl provides a recurring hurdle, it is a predictable problem rather than random bug, which makes it easy to deal with during setup. If you manage many small services on fixed hardware and are comfortable with the command line, Alpine is the right choice. If your software is strictly vendor-packaged or systemd-dependent, stick with Ubuntu. Ultimately, leaning on efficient software instead of throwing more hardware at a problem is a habit worth keeping, even after memory prices eventually normalize.
I stopped using Ubuntu for self-hosting and traded it for this lightweight alternative
Full Article
Original Source
Read the full article at Howtogeek →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.