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.
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 (18)
There is also a dedicated community reddit.com/r/homelab for this that can be of help or inspiration.
Very nice introduction, I'm just starting out with my home lab! Everything is on my old laptop so far, plex, vsftpd and dnsmasq.
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.
I have been wanting to get into this, this is a great starting point for some further research, thanks!
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.
I used to have one of these, but time and kids haven't permitted it. I think maybe it's time to start again 😁
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?
Yes If You don't THEN Hackers Can TRACK your IP
I think this can also apply for a Raspberry Pi if you are thinking about small projects.
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.
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,
Battle stations for gamers are for comfort though.........
Plus cool RGB lights!
Only problem is Their very heavy.........
You'd need a van to move it!
Besides that it's amazing!
You could make an ULTIMATE Homelab If you combined battle stations AND homelabs
That would be AMAZING!
But expensive... Those things cost 12 THOUSAND to 15 THOUSAND US Dollars!
But combined with A Homelab? man that's gonna come in the Thousands.....
But if you're willing for amazingness COMBINE them!
When you code with the lights off and set the RGB lights to green Its gonna look like your an extreme coder!
That's what I think
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. 😄
Wow, that is quite beyond my P133 PC conversion to linux router and firewall for my PPoE home ADSL connection in the early aughts 😁
Actually inspired me for my long term plan, which ultimately has me working remotely while globetrotting on the cheap : could have my #homelab stashed at friends or family once I take off and still use it for testing and deployment, even have a few production, money earning instances running on it.
Great article !
Reminds me, I really must move beyond my Raspberry Pi 3 and reformat my old gaming PC into a home lab. I think it has 12gb of ram and a gen1 i7 920.