DEV Community

Cover image for Why you may need a dedicated homelab.
Mike
Mike

Posted on

Why you may need a dedicated homelab.

There comes a time in a developers life, when their bottleneck becomes their machine they are operating on. Maybe you want to learn new tech? Play with some type-1 hypervisors and automation? A homelab is for you.

Enterprise grade server gear is up all the time for auction on eBay, for the price of a brand new Macbook Pro, you can get approximately 3 Dell or HP servers, each with 144GB of DDR3 memory, and likely a 48 port switch. Imagine what you can do with 3 servers, and 144GB of memory. I've done exactly that.

Homelab...?

I'm sure many of heard of battlestations, they're incredible paradises for gamers, and alike to have a dedicated place. I'd like to imagine we all want our own variant of them (maybe not as extreme, but our own "quiet place" we can just let our hair down and relax). My battlestation is a server rack, some servers, switches, IP cameras, and a Mac Mini (more coming soon, of course!)

One afternoon, I set out and bought used Dell servers. Plenty of affordable ram (DDR3), and storage (mainly SAS, some SATA/SSD). They're not the most energy efficient, but they do the job. The cost of running these full time, with a switch, only added about $7 per month to my electrical bill (which is about the price of a digitalocean droplet, OVH vps, etc).

What can you do with a homelab?

A homelab is endless, for starters, learning how to setup a managed or unmanaged switch, and creating vlans. Once you've got it setup, try setting up a firewall like pfsense or vyos. Try routing traffic from external to internet. Take it a step further, install a hypervisor of your choice (eg. EXSi, Proxmox, or even just straight libvirt on any OS you like), create virtual machines, install a private Gitlab, setup Confluence and Jira for your personal projects. You can get really crazy. Spin up that plex server for your family/friends, create a VM to stream your music collections. It's literally endless, you can always try new software without damaging your existing computer.

Why should I make one?

If not for anything, do it for the learning experience. Throw it on your resume. While you're at it, you might as well find something to learn with them, learn a new technology stack, host yourself a gitlab and blog - try something you've always want to try, but never had the [bottleneck] for. CPU bottleneck: X5690 cpus and E5 low powered are quite cheap. RAM bottleneck: You can occasionally pick up ~200GB of DDR3 for under $300 on eBay. Storage bottleneck: Ebay, or spend the extra money and just buy brand new spinning disks or SSD/NVMe drives.

How much can I get a homelab started with?

At a very low estimate, if you've got a spare computer laying around - just reformat it to the OS you desire, and get tinkering.

If you want to go a step further, buy a DLINK unmanaged 5port switch, buy a Tower or Rackmount server (Dell R or Dell T series, commonly are 110, 310, 410, 610, 620, 710, 720) (rule of thumb: anything generation 7 and above is usually better, due to less noise from servers, power costs). You can surely find Dell T710s on eBay almost everywhere for sub $300 CAD.

Want to go all out? Check out ubiquiti networks (also has a sweet domain "ui.com"), buy yourself a cloud key (or host it in a VM on your hypervisor!), buy a managed switch, buy an access point, set it all up. Spin up an active directory or LDAP server, have your access point use that AD/LDAP server for authenticating people on your network. Be in complete control, all the time.

You don't need fancy hardware, my first homelab server was a 8 GB DDR3 computer, it ran 10 VMs fine on an i3.

For developers, sysadmins, devops: I'd always recommend a homelab, play with technology, play with stuff you do and want to do. Become experts in the one thing, share your knowledge, and help others.

Top comments (16)

Collapse
 
joshuaburke profile image
Dangeranger • Edited

There is also a dedicated community reddit.com/r/homelab for this that can be of help or inspiration.

Collapse
 
kspeakman profile image
Kasey Speakman

I did one at home. For the network side, I used some Ubiquiti equipment. For example, the EdgeRouter X is hard to beat for $50 and it will NAT a full gig of internet traffic. I also have it programmed (from command line) with zone-based firewall between VLANs, time-based rules, etc.

As a dev, I learned a valuable strategy from the way their command line tools work. The device configuration is stored as JSON in MongoDB. And their command line is basically just a wrapper for setting values at a JSON path. You can look at a JSON config and figure out what command you need to run. And vice versa. And the CLI still manages to feel similar to other kinds of routers like Cisco. Brilliant design.

I used my old gaming computer to host VMs.

Collapse
 
nuculabs_dev profile image
Nucu Labs

Very nice introduction, I'm just starting out with my home lab! Everything is on my old laptop so far, plex, vsftpd and dnsmasq.

Collapse
 
joruch profile image
Joris

I couldn't agree more. I have almost exactly the setup you describe! You don't need that much hardware actually. Be careful with old (1u) rack servers. They eat power and are incredibly loud! I have a Dell T110 that is absolutely perfect. It is designed for small office use and it is power friendly and quiet. I can't tell how much I have learned from setting everything up. You'll run into all kinds of interesting problems that you'll learn to solve. If you have any questions feel free to ask.

Collapse
 
bobvd profile image
Bob van Donselaar

I have been wanting to get into this, this is a great starting point for some further research, thanks!

Collapse
 
themobiledev profile image
Chris McKay

I used to have one of these, but time and kids haven't permitted it. I think maybe it's time to start again 😁

Collapse
 
maymeow profile image
Meow

I already have homelab, and running Giltab server locally with runners (in cloud and my pc) and one mastodon instance on raspbery pi which have data stored on primary server. I have opened ports for gitlab to internet so (maybe its wrong question) but its necessary to hide real ip (my wan IP) address or its doesnt matter?

Collapse
 
ibrahimfromtgddev profile image
Ibrahim Imran

Yes If You don't THEN Hackers Can TRACK your IP

Collapse
 
ben profile image
Ben Halpern

I'm getting more into this stuff and homelab is a good word for this.

I also love /r/battlestations and would love to bring more content like that onto DEV. 😄

Collapse
 
ravelsirrom profile image
levarmorris

Definitely interested in getting more stuff in my homelab so far I have a box using unraid, but I want to learn how to do more. The next thing that I've seen that has a lot of setup/tutorial already is pfsense.

Collapse
 
mmaitoza profile image
Michael Maitoza

Hi Mike. From what I actually understood of this article this sounds like a great idea. I am, unfortunately, not very familiar with some of the things you were talking about, but I do have my friend google, so I will look into this further. Thanks,
Mike