7 Homelab Ideas | Why You Should Have A Homelab

Why You Should Have a Homelab

In 1998 my friend gave me a RedHat Linux CD.  I spent hours each day experimenting with Linux–I loved it.  2 years later I’m in a room with 30 other students at a University applying for the same computer lab assistant job–I’m thinking my chances are grim.  Part way through the mass interview a man walks to the front of the room and asks if anyone has ever used Linux.  I raise my hand–I’m the only one.  He takes me out of the interview for the lab assistant job, introduces me to the department director.  They took me out to lunch.  By the end of the day I had my first job as a Systems Administrator.

Learn things on your own and it will broaden your opportunities.

One of the best ways to learn about systems, applications, and technology is starting a homelab.  A Homelab can give you an enjoyable, low stress, practical way to learn technology.  A homelab will also help you find out the technical areas in which you are interested.  It’s also practical in that you can use it to service your own home.

Here’s 7 Ideas for Your Homelab

1. Router /  Firewall

Ubiquiti EdgeRouter X

The most essential piece of equipment will be your router.  I started out with consumer routers that I’d flash to DD-WRT / Tomato but now I use a virtual pfSense router.  Routers are great to learn about DHCP, DNS, VPN, Firewalls, etc.  I discourage using the router provided by your ISP, they’re usually not very capable and often not secure.  In most cases you can buy a DSL or Cable modem instead of the ISP provided modem combined with the router.  One inexpensive physical router I’d recommend is the Ubiquiti EdgeRouter X.   Ubiquiti provides free software updates (their model is you buy the hardware and the software is free), and you’ll get a handful of advanced features–it’s a very capable router and much better than a typical consumer router–to step up from Ubiquiti you’d be going to pfSense, Juniper or Cisco.

2. Storage

Supermicro StorageThe main reason I started my homelab was storage.  I was taking a lot of family pictures and videos and wanted to save them.  I know there are cloud services, but at the time they were expensive, and then you’re sort of trusting that provider to not delete all your photos or get bought out by a larger company and shutdown.

Then I started using VMware.  I needed faster storage with more IOPS.  One of the best Homelab storage solutions is ZFS.  ZFS takes the best of filesystems, and the best of RAID, and combines them into a software defined storage solution that I’ve not seen any hardware technology able to match.  Two popular free ZFS appliances I like are Napp-It (based on OmniOS) and FreeNAS.  OmniOS is a fork of OpenSolaris and is very robust and has tight integration with ZFS.

FreeNAS LogoI’m currently using FreeNAS which is the free open source version of iX System’s TrueNAS which is used by organizations of all sizes–from small businesses with a few TB of storage to large government agencies with PBs of storage.  FreeNAS has done a great job at technology convergence.  It is both a NAS and a SAN allowing you to try both approaches to storage (I prefer NAS because it takes better advantage of ZFS, but many prefer using SAN and there are benefits and drawbacks to both), it also has many built-in storage protocols:  FTP,  iSCSI, NFS, Rsync server, S3 emulator, SMB (Windows file server), TFTP, WebDav, it can join AD, it can even be an AD DC  (if you like living on the edge) it has a built-in hypervisor (bhyve) to run VMs for whatever you want.  This is now marketed as hyper-converged storage.  All of it is completely free.  You can build your own FreeNAS server like I did, or get started with a FreeNAS Mini from iX Systems.

A few years after I learned ZFS for home, my employer was looking for a new storage solution so having this knowledge and experience was helpful.  I was able to determine one vendor with a traditional RAID solution didn’t handle the RAID-5 write-hole problem properly.

3. Virtualization

VMwareVirtualization allows you to run multiple virtual servers on the same piece of hardware.  VMware is king in the small to mid-size business hypervisor market, and VMware offers their hypervisor for free.  The free version is just like the paid versions except you won’t be able to use some features (most involving high availability and fail-over with multiple servers).  But you can learn most of the concepts and features of VMware.  I’ve tried to use a number of hypervisors but I always come back to VMware.  I consider VMware my basic infrastructure.  From there you can learn about other things like networking, storage, and play with any OS or Linux distribution you want to.

Knowing VMware was hugely beneficial, I’ve implemented it for several businesses, and one of my previous employers.  And knowing how it works means I can discuss the VMware stack intelligently with the ops team.

See my FreeNAS on VMware Guide if you’re interested in running a virtual FreeNAS server inside VMware.

4. Networking

A Homelab without decent networking won’t get you far.  Fortunately if you use VMware you can leverage it to use virtual network switches.  For physical switches I really like the Unifi products.  They are simple enough for non-network engineers like me.  Everything can be configured using the GUI.  Unifi exposes you to managed switches, central management (with the Unifi controller), VLANs, and PoE (Power over Ethernet), port trunking, port mirroring, redundant paths with spanning tree, etc.

Unifi 8 Port SwitchI started with this little 8-port switch (4 are PoE ports).  I also added a 24-port switch so I could learn how to do setup a LAG and configuring VLANs across multiple switches (which was really simple using the Unifi interface).  I also like Unifi’s philosophy–they sell you the hardware but the software is free–which means you don’t pay for maintenance or support but continue to get free updates.  In a homelab you may not need to go crazy on VLANs, but separating your main network from your IoT devices may be prudent.

Learning how to setup VLAN tagging, and link aggregation and understanding how networking works helps me communicate better with the network engineers when discussing design and deployment options–they may be working on Juniper or Cisco equipment but I know the concepts of what they’re doing.

5. Wireless APs

 

Having a robust wireless setup is also a necessity for a homelab.  If you have a large house you get to setup multiple APs and make sure they can handoff connections.  I use a Unifi AP Pro (I just use one because that’s all I need to cover my house, but if you can find an excuse to have 2 or more I’d recommend it since you can practice rolling updates without downtime, wireless handoff, etc.).  These are managed by the same Unifi controller as the switches.  I first gave them a try because I read Linus Trovalds uses Unifi APs, and they seem to be highly rated by tech professionals–and now I don’t think I’d go back to anything else.

I have written more about Unifi Equipment here.

6. Network Monitoring

Icinga

It is hard to maintain a reliable network and application stack without monitoring for failures.  There are hundreds of network monitoring solutions and it really depends on your needs.  The most widely deployed solution is Nagios.  I have had that on my Homelab, but lately I’ve been using Icinga because it’s simple and it integrates into Ansible.

7. Infrastructure Automation

Automating your infrastructure may not make as much sense in a small Homelab, but it does make sense to automate any task you do repetitively or a manual task that could be automated.  For me, this was  installing updates, deploying servers and renewing SSL certificates with Let’s Encrypt.  To manage this I use Ansible which is one of the most well thought out infrastructure automation tools I’ve seen.  Ansible can manage Linux and Windows servers.  Learning infrastructure automation, especially if you do it using version control and CI/CD tools like Azure DevOps (you can get a free account for up to 5 users with unlimited private repositories) is a great thing to learn for your career if you’re interested in the DevOps world.   The book, Ansible for DevOps by Jeff Geerling helped me get started.  I suggest getting the eBook since he has been known to provide updates to the book (not sure if he will continue to provide updates, but just in case).

At work we completely automated the deployment of Linux servers using Ansible–infrastructure as code.  It took a month of investment but it paid off big time with developers now being able to deploy VMware VMs at will with Ansible by making a Git Pull Request, our entire fleet of servers is updated automatically, and our server and configurations are all consistent.  This replaced an old process of waiting several weeks for a VM to be provisioned and configured by hand.

Bonus homelab application server ideas…

  1. Minecraft Server — popular Java game–it’s like playing with Legos and a great way to get your friends together for some casual games.
  2. Mumble Server – one of the best voice protocols for in-game communication.
  3. Emby Media Server — Anyone that has kids realizes those flimsy blu-ray drives aren’t going to last long.  It’s great to store and host movies, home videos, pictures, and audio.
  4. Asterix PBX Server – VoIP Phone server (use Twilio or Flowroute for SIP trunking).  Polycom makes great VoIP phones.  With Twilio SIP Trunking you can have a real landline phone number with E911 capability for a few dollars a month–and if you get multiple phones you can use it as an intercom system.
  5. Web Server (maybe start a blog) — I hosted this blog from a server in my house for years–until my ISP couldn’t handle the bandwidth.  Now days you can also use a service like CloudFlare to act as a CDN which really reduces your bandwidth usage.  Hosting your own blog is a great learning experience and gives you a place to log your homelab experiments, and share solutions to problems.
  6. Automatic Ripping Machine — Get all your Blu-Rays, DVDs, and CDs loaded onto your Emby server
  7. Backup server — I use a CrashPlan Business subscription to backup my FreeNAS server to the cloud (one of the main reasons I use a NAS as this would be less efficient with a SAN).  BackBlaze B2 is another great option to backup FreeNAS.

There are many more areas than I listed, but I think the above is a good baseline to get started.  Pick one area at a time–my homelab was built over many years–often the case is I will improve an area after a piece of equipment fails or I need to replace it for some other reason–that’s a great time to do research.  If you aren’t sure where to start, pick the area that you enjoy the most.  For areas you have no interest the best thing to do is something else–you’re probably not going to be great at something you don’t enjoy.   Certainly a homelab isn’t going to be a substitute for real-work experience.  But it does provide an environment to learn, experiment and enhance your abilities–and the great thing is since it’s your own lab you can learn things that interest you.

I think that’s the largest benefit of a homelab.  To me it’s a playground.  It’s a place put the love of learning into practice.  It’s a place of freedom.  Nobody else is dictating what you do here.  It’s a place to have fun while enhancing your skill.

Do you see a man skillful in his work?
He will stand before kings;
he will not stand before obscure men.     – Proverbs 22:29 ESV

 

 

5 thoughts on “7 Homelab Ideas | Why You Should Have A Homelab”

  1. Ben,

    First, I want to say that I couldn’t agree with this notion more. If you have an interest in technology, and especially if you WORK with technology, you simply HAVE to be your own customer.

    Similar to you, I started with Linux a long time ago (1994, actually), before the kernel was “production”. I cut my teeth on Slackware and learned how to both compile a kernel AND debug the code when something wouldn’t build correctly. Those years didn’t have auto installers and the kernels were not modular – so, if you didn’t compile it in, it didn’t work. Here are my thoughts on the various areas that you’ve detailed:

    Router / Firewall – I agree that you need to understand this piece. But, I would say that this area is really more the “core” of your network. What does it take to run a home network? More than you think… You need a switch of some sort to plug in hard-wired devices, WiFi for wireless devices, a DHCP (Dynamic Host Configuration Protocol) server to issue network addresses so devices can communicate, a DNS (Domain Name System) resolver of some sort to help devices convert names to addresses (b3n.org -> 67.205.152.176), a router to determine which packets “go where” (internal versus external), and a firewall device to block bad traffic on the outside from getting in while allow your internal devices to reach sites on the Internet. Even this is a little simpler than reality, but it helps to demonstrate everything that’s going on inside of that little box you got from the cable company (or your favorite electronics store) with the term “Router” on the packaging.

    I always ran a dedicated linux machine at the ‘edge’ of my network to do everything above except the WiFi and switch pieces – those were left to a WiFi Router that I ran purely as an Access Point (AP). On the linux box, I manually configured a set of IPTables firewall rules and turned up other services as necessary. Not only did I have an extreme level of control over the firewall rules, but I had complete visibility to all network traffic entering and leaving if I needed it. As I added more and more newer devices to the WiFi in my house, performance suffered because my old Linksys WRT54G router couldn’t handle the traffic. When I updated that device, I swapped over to using all of the internals of my new WiFi router (except DHCP and DNS) instead for simplicity. I actually WANTED to switch to a pre-packaged linux distro type of solution (I evaluated pfSense and others) but found none of them to really offer me anything of any significant value. Additionally, there were enough quirks about most of them to make me just stick with what’s build into my wireless router.

    I want to expand on your comment about NOT using what the cable companies provide, too. You have three options when it comes to creating the base level of connectivity in your home: Use what the cable company provides for everything, use what the cable company provides to “terminate” the connection and use your own wireless router, or supply ALL of the hardware yourself.

    The first option is easy: Everything is owned by the cable company and you don’t have to worry about any of it for any reason. But, they charge you anywhere from $7-$15/month (maybe more?) to “lease” that equipment. How much you pay per month will be related to whether or not you are getting telephone service (more) or not (less). The advantage is that everything is supported directly by the cable company and they replace the equipment as it ages or if something happens.

    The third option is also fairly easy: You but the hardware up front and there are no lease fees. For the modem portion, everything is STILL managed by the provider but you get to operate your own router and control it. There’s an investment required up front, but these devices seldom have an issue. If you subscribe to telephone service from the cable company, you’ll need a more expensive modem (maybe $300 instead of about $100) to handle the telephone piece.

    The middle option can be a little tricky because you do NOT want to let the providers install a modem that has WiFi built into it. Their equipment should be “only” a modem and nothing more. The two reasons for this are: You don’t want to have to pay extra lease costs because they’re providing you with more capability than you’re actually using (you’ll be running your own wireless router that you buy separately) and you don’t want them dropping WiFi into your house without your knowledge or control. And, many cable providers use YOUR Internet connection to provide WiFi to OTHER customers (like yourself) as part of their “free” WiFi service that you pay for as part of your bill.

    Another piece to consider is either dumping your traditional home telephone all together or moving it to a Voice-Over-IP (VOIP) system that’s either super cheap or free (like Google Voice). If you do that, your modem only needs to provide Internet service and no telephone (cheaper) and your return on your investment into the various gear is much quicker.

    Storage – Ensuring that you always have a place to store or back your content up to that’s within YOUR control is a great idea. While iCloud and Google Cloud are convenient, they are not inherently secure. Additionally, the storage you receive for free is fairly minuscule and isn’t growing at the same rate that our consumption is. For example: iCloud and Google both offer exactly the same amount of free cloud storage today as they did 10 years ago even though the average size of an individual photo is something like 30x larger (3GB versus 100KB) AND we are storing content there from more sources.

    There are a few things to consider with storage: Total space you need, redundancy / resiliency (ability to recover from a drive failure), speed, and accessibility. FreeNAS is very popular, but I absolutely -HATE- the community. The product is described as “simple” (anything but) and being perfect for home use. But, any time you have a question and post something in the forums, they “hardware shame” you (and never actually give you any answers) because you aren’t using server class hardware with ECC RAM. In other words, they tell you that you can repurpose an old desktop to be a NAS server, but then laugh at you for trying to use a desktop because it doesn’t support error-correcting RAM.

    Don’t get me wrong – in an ENTERPRISE, having ECC RAM in your NAS is a requirement. Period. If you corrupt or lose -ANY- data, the company could go under. At home, it’s a little different. Yes, your photos are “priceless” to you. But, truth is – your life will go on if a digital photo gets lost. And, honestly, if that photo is THAT important, you need to be storing it somewhere else in addition to a home file system anyway. Neither FreeNAS nor unRAID appear to really have their act together in all areas (FreeNAS is probably a better solution, but their community support is horrid). I also found the product incredibly unwieldy to set up in my environment as I wanted to leverage a user database via LDAP and they could only talk about how to do this using Windows AD (I realize that’s extremely common, but it is NOT the only solution).

    For me, I have some 6TB SATA III drives in a HP Z800 workstation and I offer them out via SAMBA and NFS to my various machines. In a second location, I have a couple of HP Envy 700 desktops with those same drives offering the disk out via the same protocols. I personally see NO REASON to duplicate my disks (RAID Arrays) for content that’s easy to replace when the disks are rated for 1,000,000 MTBF (that’s 114 years of use before they fail, on average). Most of my content is media files (more on this later) and I have those duplicated to a whole new server in a secondary location – so, recovery is easy).

    Learn SAMBA (SMB – Server Message Block – Windows network file sharing). It’s the successor to CIFS (Common Internet File System). Understanding all of its quirks and shortcomings will be useful if you ever encounter it at work.

    Virtualization – If you have a fairly powerful machine that lives a lot of its life in an “idle” state, you should definitely create a virtualization Host out of it. VMware is certainly an option as is XenServer or a Linux install with KVM. You could leverage Hyper-V on a Windows Server OS, but I think this is unnecessarily complex, underperforming, and costly (Windows costs money while there are free versions of all of the others already mentioned). I run XenServer currently as it meets my needs.

    Once the host is created, you install “Guests” of other machines and they can share the underlying resources. I have Windows 10 desktops, openSUSE workstations (really servers), and some network appliances all running across my two machine virtualization farm. These guests provide DHCP, DNS, and general file servicing functions for me within my house. I have one guest provisioned with a lot of CPU and RAM so that it can handle video transcoding jobs with ease (I transcode my ripped video content to make the file sizes more manageable – Avatar ripped from BluRay is 48GB in size but it under 8GB after being transcoded).

    Networking – While you do have some virtualized network functions within VMware and similar hosts, they really aren’t “switches” in the sense of being extendable to any device. In other words, they only work for the guests that are running on the host and connectivity to a physical switch is necessary to get the traffic off-host.

    The great thing about a switch is that it works very differently from a hub – it does not mirror on inbound packet to every other active port on the switch. That packet gets written ONLY to the port that contains the destination device. Since the efficiency is so much higher with a switch, they can handle a LOT more traffic at once. And as with any benefit, it introduces new challenges. Since packets are only written to the proper destination port, you need a managed switch in order to be able to create traffic mirroring for packet monitors. Sometimes you can get some really great deals on eBay or Craigslist for these Enterprise class hardware devices, but I generally caution you to be very careful unless you know exactly what you’re buying.

    Once you have a good switch that can support VLAN’s / Broadcast Domains / Collision Domains / Subnets (pick your term, they’re fairly interchangeable), you can start creating traffic segments and isolating devices from each other. Of course, this requires that you have a device capable of routing the packets between these different segments. It also means more opportunities for learning.

    Wireless AP’s – These are generally not necessary. Most homes are laid out in such a way that a single wireless router (or AP), centrally located, can provide coverage throughout. Still, sometimes a central location isn’t possible or you have outbuildings you want to reach as well, or … there are a lot of reasons additional AP’s might be useful. If you can’t cover your entire area with a single device and need more, I have had really good luck with the ASUS devices that support AI Mesh. Super easy to set up.

    Still, I’ve found more issues are best resolved with TUNING your setup than just throwing more AP’s at the problem. For example: If you live in a condo or similar, and your neighbor has a strong WiFi signal bleeding into your space, changing the allocated channels for your signal will get you better results than just adding another AP. Wireless networking is probably one of the areas where there are a lot of things to know and understand BEFORE you start trying to solve a problem.

    Network Monitoring – Hugely helpful area here, and I have been a user and support of NAGIOS for well over ten years. I’ve also used MRTG for a variety of things and a couple of other tools as well. Getting everything set up and fully functional is the really hard part. And, the more systems that you have dumping logs, the harder it is to ensure you have everything. You might also want to leverage NTOP, too, as it can give you a holistic view of traffic on your network. But, again, you have to be dumping the data correctly in order for it to be useful. This is a bit of a tricky area since knowing what you need to collect can drive design and layout, but you might not know what you MIGHT want to capture until you get it all deployed. Cart/Horse sort of thing.
    Infrastructure Automation – Very interesting topic, but I personally think it’s more of an “Advanced” item. If you don’t have a home lab, this piece is likely quite a ways out after you get one built. Still, automation of anything repetitive is great. But, make sure you document the daylights out of it or you will never be able to decode what you did four years down the road when you need to change something. :)

    In the “Other Ideas” area, I run a media system myself. I’m currently using Plex, but am ready to dump it. The clients have slowly degraded over the last year or so (they’re getting worse in stead of better, features being removed, less stable, etc.) and the reliability that I bought it for (lifetime PlexPass subscription) simply isn’t there. I -WANT- to consider Emby, but they require you to subscribe to test out the various clients and features. Since they give you so very little for free (and I need the advanced features), I’m simply not able to give the product any real consideration because I’m paying to evaluate their functionality. I will be exploring using TVHeadEnd to handle my live TV and DVR functions (I have a couple of HD Home Run tuning devices with a HD antenna) and leveraging Kodi as the client. Kodi doesn’t utilize a true server component – just file storage. If you set up a MySQL database to sync things like content lists and watched state, every client will have the same view of the environment.

    I also have a Home Automation controller that I can monitor and control a few dozen devices that are accessibly via the Z-Wave protocol within my home. This is all tied in with my Echo devices so that I can do things like:

    “Alexa, turn dining room lights on”
    “Alexa, tell Plex to play Aerosmith”
    “Alexa, tell Plex pause” (while I’m watching a movie)

    Having this integration itself requires a “bridge” software component running on one of my Linux guests…. :)

    Ben definitely has some great ideas here that everyone should explore and see how they can enhance their own daily lives and/or knowledge with.

  2. great post, as a former user of VMware, homelab users (or professionals) should check out Promox, it offers much paid VMware functionality at no cost, only pay for support contracts if needed… and it can run native on ZFS ;) . I love Freenas, but in a shared hypervisor+nas scenario it just doesnt play well, passing thru dedicated disks to the NAS removes all the flexibility of virtualization on ZFS. In a business environment I would just have a baremetal Freenas, in a homelab, I would run Proxmox with Turnkey File Server LXC container, this lets you keep your storage flexible as either both network storage or VM storage without need for reconfiguring or juggling disks or double nesting VM storage within VMs to utilize all your storage. https://www.reddit.com/r/HomeServer/comments/7bfd2t/proxmox_nas/dpim9fo/ so find yourself a machine like a R710 with 32GB RAM or more, and check out Proxmox. Prov 2:1-10!!!

  3. I hear good things about Proxmox, but have stayed away from it because the major appliances that I need to run are not supported on that hypervisor platform. This is also why I no longer spend any time working with VirtualBox (which is a Type II Hypervisor and not Type I like the others) – the systems I need to run either flat-out don’t work or aren’t supported. I’d love to see Proxmox get more visibility so that it IS a supported platform in the future.

  4. Actually.. if you are using vmware appliances, you can extract the VMDK from the OVA, its just a tar archive, proxmox can natively run VMDK files, make a new guest, then delete its drive on the cli and rename the vmdk you downloaded, you can then use the proxmox gui to move/convert it to a native format such as zvol or qcow2 for better performance/features….. but a LOT of LXC appliances are also found from varying sources: https://pve.proxmox.com/wiki/Linux_Container or turnkeylinux.org or https://us.images.linuxcontainers.org You can have a samba server online in under 5 minutes, or LAMP, or SugarCRM, etc. This product is over 10 years old, so it is mature and enterprise grade, with tons of time saving functionality, 95% of it can be managed from its simple webgui.

  5. All very true…

    However…

    Many commercial virtual appliances are built for SPECIFIC hypervisors and leverage drivers for how those hypervisors present the underlying devices. When you move to a different architecture, you need different drivers. And those are not available for download and installing them on the commercial appliances would void their ability to be supported.

    Additionally, when you’re dealing with an OVA/OVF, you’re normally already working with a portable format for the appliance to be deployed onto “whatever” underlying system supports those modes.

    As I mentioned earlier, it’s about whether the appliances WORK and are SUPPORTED, not whether I can get them loaded onto the system.

Leave a Reply