My Homelab Journey: The Ubuntu Phase
HomeLab
March, 2024
3 minutes
In the Previous Article, we explored the beginnings of my homelab journey, talking about why I wanted to start a homelab and the hardware I chose to make it happen. With a small Intel NUC server, a Synology NAS for storage, and a TP-Link router for network security, I had laid the foundation for my homelab. But hardware is only half the story. In this article, we'll dive into the software that brings this setup to life, starting with my first choice: Ubuntu.
Choosing a Path: The Advanced vs. The Simple
The Advanced
I considered two main paths for setting up my homelab. The first was using a hypervisor like Proxmox. This approach is quite flexible and sophisticated, opening up a wide range of possibilities. For those new to this, Proxmox is a hypervisor operating system that lets you run multiple virtual machines, each acting as a separate subsystem. It offers great benefits, such as simplifying backups and maintenance. Proxmox provides a user-friendly web interface that simplifies the management and interaction with virtual machines and containers.
However, Proxmox can be complex, adding a layer of difficulty that I preferred to avoid. Wanting to start small and simple for this experiment, I decided to explore another option. Proxmox Server Solutions
The Simple
The simpler option was to go with Ubuntu Server as the foundation for my homelab. I'm pretty familiar with working in the Linux terminal, and I've used Ubuntu quite a bit in the past, so it felt like a natural fit. Although Ubuntu Server doesn't come with a fancy user-friendly web interface like Proxmox does, I find myself quite comfortable using SSH, which lets me easily manage the server.
Embracing Containerization: My Safety Net
Choosing Ubuntu Server as my homelab's operating system meant I was letting go of the safety net that comes with a hypervisor like Proxmox. If I made a mistake or messed up a setting, I wouldn't have an easy way to undo the changes. Therefore, adopting a containerized approach became essential. I resolved to install only software that was fully containerized, ensuring a more resilient and manageable system.
Docker: The Containerization King
Fortunately, today, nearly every open-source project comes with a Docker Compose file, streamlining the installation and running of multiple programs to just a few lines of code. This setup sidesteps the hassles of managing libraries, dependencies, and potential conflicts—issues that used to make such tasks a nightmare. Now, it's as straightforward as copying configuration files, setting up ports and volumes, and launching the service. This shift dramatically simplifies managing software in a homelab environment.
Upcoming: Mastering NAS Configurations Without RAID
In my next article, I'll dive into the complications of my NAS setup, focusing on how I navigated the challenge of not using RAID while ensuring data redundancy. Additionally, I'll share insights on seamlessly integrating the NAS with my NUC, creating an efficient network storage solution. Stay tuned for practical tips and my personal experience in optimizing storage configurations without compromising on reliability.