Introduction
What is a Homelab? Simply put, a homelab is the name given to a server (or multiple servers) that reside locally in our home and where you host several applications and virtualized systems for testing and developing or for home and functional use. The concept instantly consumed me and fastly became one of my favourite hobbies. A server can be a simple tower PC or a Raspberry Pi. In my case it’s a Lenovo Thinkpad, which benefits from having a battery in the event of a power outage as well as a display for inital setup and troubleshooting.
Why do you need a homelab?
You don’t. Your homelab is going to break at some point and if you don’t have the desire to learn why it broke or how to fix it, your homelab adventure will end there. Having a homelab setup has its advantages, however:
-
If you are new to Linux servers, it provides you a playground for learning and breaking things.
-
If you are working as a software developer or sysadmin or devops, it lets you work and experiment with projects that you cannot try on the job itself.
-
It allows you to learn and do things on your own. With a little patience, you could create projects that would otherwise cost a lot to outsource.
-
A homelab is also essential if you are privacy cautious and don’t trust cloud services to back up their data.
While all of the above are great reasons to have a homelab, I just love the idea of hosting an application that is available to all devices in my home. My wife benefits from our recipe app, Mealie, which we can both access at the same time and update. Media streaming through Plex deserves an entire blog post of its own, and was an absolute life-saver when our son was first born. With that said, let’s get into my applications:
My Applications
Another thing I love about ‘homelabbing’, no two setups are the same. Browse Self-Hosted on Reddit. You’ll see user dashboards running applications that are unique to that individuals use case. Here’s mine:
My homelab envorinment is virtualized with Proxmox, running a handful of containers. One of them hosting all of my applications using Docker, as seen in the photo above. While each application here deserves it’s own blog post (maybe I’ll get around to that), here’s a quick description of each:
-
Proxmox: A level 1 hypervisor that allows me to manage all of my virtualization. It can run both Linux and Windows operating systems on x64 hardware.
-
Unifi: Tecnically not a self-hosted application, but a link to my routers admin page.
-
Pihole: An adblocker on the router level. Pihole prevents ads from downloading for any device in your network (computer, phone, tv, etc). Optionally a DHCP server as well, which I use for all of my apps. pihole.local is just so much easier to remember.
-
Portainer: A container management application. Admitedately, I don’t use Portainer very often. A few docker applications, however, aren’t as easy as simply running
docker-compose up -d
and portainer can help get them up quickly. -
Gitea: Simply put: Your own personal Github. Gitea is amazing and will always be one of the first things I’ll spin up on a fresh Docker install.
-
Plex: Streaming media service. Truly one of the best there is.
-
Synology: A link to my Synology NAS.
-
Paperless: The idea behind Paperless is to take a photo (or scan) all those random pieces of paper you have lying around your house. Tag them and forget them until they’re needed. As someone who hates unecessary clutter, Paperless is one of my must haves.
-
Bookstack: If you told me I could only have one self hosted application, Bookstack would be it. It’s been my absolute go-to for organsing all of my notes.
-
Mealie: A recipe organizer and meal planner behind a beautiful interface.
-
LinkAce: All of my bookmarks in one location, available to all of my devices. As someone who doesn’t use ‘accounts’ for my browser, this is essential.
-
OctoPi: Octopi allows me to run and manage my 3D printer from my browser.
Summary
That’s my modest list of self hosted applications. About once a month I spin up something new which may make it to my dashboard of permanent applications. All of my applications are backed up on a regular basis straight to my NAS which is completely separate from my virtualized system. Self hosting has taught me so much, from linux to back and frontend development and the concept itself has been a popular conversation. I encourage anyone remotely interested to try it out as the pros far outweigh learning curve.