Ask HN: Homelab projects to learn Linux admin and DevOps to get hired as one?

20 points · shivajikobardan · 9 days ago

I'm purchasing a mini PC soon(3-4 months) as I don't have any personal device as of now for labbing. Till then I want to make a list of project ideas to work on that will enhance my resume as well as give myself a point to talk about in interviews regarding system administration or devops engineering.

Start With A Static Website

Host A Dynamic Website

HTTPS

Implement Basic Auth.

implement monitoring solutions like naemon, graylog

implement alerting solutions(Learn email server as a bonus)

glusterfs, nfs/efs, ceph, borg

Do all these with

manual instructions from command line

automated with bash scripting

Configuration Management Tool(Ansible)

Docker

Kubernetes


17 comments
aos · 9 days ago
This is what I used when I first learning: https://serversforhackers.com/

For a really good practical project: build a website, then host it on your mini-PC and find a way to expose it to the internet. This will teach you a lot about DNS, proxying, building websites, managing the server (via some config management or container), monitoring, etc.

Show replies

herbst · 9 days ago
Sounds fun. What kind of mini PC are looking at? I am a big fan of used Dell wyse 5070 devices you find from $70, native Linux support, rather big community (easy to Google). Running one as a server and one as an mobile PC even.

One thing I would consider earlier is virtual machine hosting. Making it easy to setup, test, build and destroy a system without consequences. Virtual machines (and docker container, and more) are easy to setup and manage trough 'cockpit' and you can learn the command lines later when you need it.

Imo there is no point going directly into Industrie tools (kubernetes, docker, anisble) it may is better to first learn why they even exist by building systems the traditional way.

Show replies

js4 · 9 days ago
This is a great way to learn!

Look into Proxmox(https://www.proxmox.com/) for setting up your own ec2 like VM platform. This makes it pretty easy to experiment with setting up and running different services on the same box in an isolated way. Practice things like setting up a VM with a GPU passthrough and then running gpu enabled docker containers on the VM.

Also look into getting a Hetzner server and setting up site to site Wireguard.

FWIW you don't really need to buy a mini pc. You will learn more by doing a build. The great thing about doing something like this is that you can get old data center parts for cheap. Ex: pickup a server motherboard (maybe a SUPERMICRO X9DRI-F), CPUs, and RAM on ebay for < $300. Then put everything into a used server case with a new PSU and you can do everything for $500 or $600. This setup will have more resources then any off the shelf thing you can buy.

Show replies

3np · 9 days ago
General advice not necessarily optimized for hirability:

First thing you do: Get another one of what you're already getting.

That way you can actually run "production" and host stuff while you can experiment and play around fearlessly without breaking prod. You'll also have a spare on hand in case of hardware failure etc.

Second, do at least basic separation of networking right away. Get a $10 switch and separate subnet instead of piggybacking on your home LAN.

Then, get comfortable with virtualization (qemu+kvm) and figure out a way to automate image your image builds and deployments.

Automate backups early. Start simple and iterate over time.

abhiyerra · 9 days ago
I found the way I learned was to install these technologies but also write my own apps that take advantage of them. This way you aren’t just playing with the technology but can also make insightful recommendations to others on that technology’s limitations.