this post was submitted on 15 Nov 2023
0 points (50.0% liked)

Homelab

380 readers
9 users here now

Rules

founded 1 year ago
MODERATORS
 

What would you recommend to a guy whose just getting started out and pursuing his trifecta?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 1 points 11 months ago

Setting up a small website hosted locally helped me understand the whole stack so much better. Roles / permissions / firewall rules / ports/ webservers / appservers / devops / daemons / docker / DNS and a bunch more

[–] [email protected] 1 points 11 months ago

For me it isn’t the specific projects that help me understand IT, it is when things don’t work or break that I learn the most.

I work in IT support day job, Microsoft shop but home lab is all Linux so there isn’t much cross over in terms of specific apps, but the troubleshooting approach and techniques are transferable skills.

[–] [email protected] 1 points 11 months ago

A robust PKI implementation.

[–] [email protected] 1 points 11 months ago

Setting up a full k8s cluster (vanilla k8s, not k3s etc.) and running most of my self-hosted apps in that cluster caused me a lot of headaches but also got me an immense amount of knowledge and experience.

[–] [email protected] 1 points 11 months ago

Setting up exchange server cluster with backups, OWA webmail behind reverse proxy doing IPS+SSO+ MFA, setting up DKIM, DMARC and SPF for this server / testdomain.

Windows PKI using offline and issuing CA. Using these certificates for 802.1x auth.

Hardening Windows Active Directory, setting up LAPS, enforcing TLS where possible, restricting service accounts etc.

Using Azure AD for SAML SSO to where possible. Using JIT or SCIM prorvisioning for accounts. Access roles from groups etc.

Setting up Intune managed workstations with device complience policies and using these policies in conditional access policies.

So yeah mostly Windows stuff.

[–] [email protected] 1 points 11 months ago

setting up a pfSense router is cool.

you can use docker to run some local services and give them their own domain names with pfsense

if you want to progress further, you can use traefik to give docker/kubernetes services hostnames and get a cloudflare certificate to enable https on everything

[–] [email protected] 1 points 11 months ago (1 children)

Im a little "seasoned" at 45 rotations around the blue ball so YRMV lol

1 - Pirated Movies - XBMC -> Plex (2 bare metal servers with transition to Virtual in progress)

2 - Storage - Freenas -> Synology (300+TB across 6 units)

3 - Networking - Unmanaged -> Managed / Multi Vendor / LACP / WIFI

4 - Compute - ION Based NUC -> ThinCentre / ML360G6

5 - Virtual Envio - Single ESXI Host -> 5 Node Proxmox Cluster with Ceph on 10G

Basically for me it started with Saving private ryan on VCD / CDR back in the day, that led me down the IRC rabbit hole and i got into XBMC for playback. That meant NAS storage for more movies and then from XBMC i moved into Plex so needed more server based compute and such. All the while needed to learn networking to hook it all up and make it work correctly.

I also went from working at Terminix as a pest control operator to doing customer support via email for a .com in the early 2000's to now leading technical deployments at a forture 10 pharma :)

All cause of Saving Private Ryan on Pirated VCD in CAMMED quality lol

[–] [email protected] 1 points 11 months ago

For me it was the UPN TV show Legend and the VCDs I purchased off Ebay to replace my worn out VHS.

First home server was a Compaq with a Pentium 3 running XBMC and it went on from there.

[–] [email protected] 1 points 11 months ago

Setup a Plex/Jellyfin server and then oversubscribe it to family and friends.

[–] [email protected] 1 points 11 months ago

A Pfsense/opnsense VM taught me how networking works. Before I set it up, all I knew about was port forwarding. I learned about firewall rules, LAN and WAN, VLANs, VPNs, DNS, Dynamic DNS, reverse proxies, bufferbloat, DHCP, etc.

I’m also learning how to make my own CI/CD pipelines with self hosted GitHub Actions as well as dockerizing applications.

[–] [email protected] 1 points 11 months ago

Countless projects over the years, but two that stand out in my mind as most formative:

1.) Running a Minecraft server back in the day on CentOS and Ubuntu VPS taught me server administration.

2.) Running my own secret, private network in my college dorm for my friends and I (college provided WiFi sucked) with PFSense at its core taught me the basics of networking.

[–] [email protected] 1 points 11 months ago
  1. Build your own router, segment your network. I suggest OpenWRT. Openwrt is less stream lined, which means you learn more. You'll learn trunking, VLANs, sub netting, DNS. Do it all through CLI.

  2. Reverse proxy, internal and external. Use Traefik or caddy.

  3. Encryption keys. Seems simple. But learn and master ssh keys. The Internet works by communicating from point A to point B. And keys help encrypt the traffic. You should be able to type "ssh hostname" to get into any server you want access to, without the need for a password. Bonus points for finding a secure way to set cronjobs to automatically cycle keys, for security practice.

  4. Docker machine. Master docker. Learn docker compose. Everything CLI.

  5. Proxmox. Put everything on a VM or container. Create a nas, for storage for your VMs. Bonus if it's strong enough to run many VMs, you can use to host a instance of any software that you are trying to learn. I for I stance am loading windows server 2022 and multiple windows 10 and 11 instances that I can control.

Do everything through CLI. Take notes on what you did (you won't remember, it's ok, no one remembers). Practice documentation.

[–] [email protected] 1 points 11 months ago
  • Installing Server 2016 and learning to provision machines and set group policies in active directory.
  • Running Wazuh and lerning how to remediate issues and errors across Windows, Mac, and my Linux machines...or at least learning what they are.
  • Using Windows, Mac, and Linux.

I remember one interview where the subject of Home Assistant came up and one of the interviewers was having an issue with his set up and I told him how to fix it. I got an offer from that company.

So, in my experience, a general interest in technology and continuos learning...just because you genuinely like it, helps.

[–] [email protected] 1 points 11 months ago

Software developer here and I had to learn k8s for work (small startup, we didn’t have devops people). We manually were provisioning Debian servers to add more api backends, and it took us one hour per instance. Figured there had to be a better way. So in no particular order:

  • docker / containerization.
  • secure certificates for everything: nginx / reverse proxy / certificates.
  • k8s.

Super steep learning curve. Easier to do on the cloud than it is in the homelab. In the homelab:

  • segmenting home network into different VLANs, firewall rules.
  • Tailscale for multi-site access.
  • cloudflare zero-trust tunnel for secure off-site access by friends.
  • reverse proxy backed by let’s encrypt TLS for secure private connections.
  • getting all the *arrs setup via docker. plex on nuc, media share on NAS, accessible via NFS. Orchestrating so that either restarting is recoverable.
  • Prometheus / grafana for monitoring
  • setting up alerts for everything

Current project:

  • migrate off docker into k3s on top of metallb for ingress, longhorn for persistent storage, helm for charts, argocd for gitops, ansible for automation. I never want to SSH into a server again. And I want to manage all my infrastructure through a git repository. Totally overkill for the homelab but guaranteed to get you multiple offers in Silicon Valley.
[–] [email protected] 1 points 11 months ago (1 children)

I think setting up active directory domain controller with all the DHCP/DNS and group policies is a number one thing to do, if you don't know how to do that.

Another thing would be running a Linux server and have a website. Learn how apache and Nginx works. And how to use them together.

It also helped to understand networking and virtual networking from non Cisco perspectives. I have a ccna and net+ and setting up opensense+pihole with network services was very weird, it felt completely different compared to ccna and net+ studies.

Well and of course having experience with virtualization. Learning different types of virtual storage and just in general how virtualization works.

The last thing is options but it is something that I decided to do, that can help you with networking(however there are other things you could set up that would be more useful). I would set up the gns3 server. This would help you with networking, especially if you are trying to study for network certs after ccna. But like I said, there are other projects that you can set up, that will be way more useful as a beginner.

[–] [email protected] 1 points 11 months ago

Any chance you have a recommendation for a directory application that can be used to manage Linux, Mac, and windows?

[–] [email protected] 1 points 11 months ago

Gonna echo some of the other replies on what I've used at home that's helped me out.

  1. Media - Used Windows Media Center on Windows XP/7 to start with > XBMC/Kodi > Plex - on several different machines

  2. Networking - First wireless router was a Netgear N750, and it was great until the wife spilled some water on it > Netgear Nighthawk R7000 > Ubiquiti Edgerouter ER-X and UAP-AC-LR Access Point > still using the ER-X router but got a U6-Lite AP and then an Engenius controller and ECS-357 AP > ER-X and Aruba AP315/325 converted to be IAP models.

Got a Meraki MS120-8LP switch for POE for my APs. Ended up getting a bunch of Cisco switches and routers of different models to use at home from my current job. Still haven't setup a working lab with those yet.

  1. Compute - This has been the most recent developments due to getting disposal mini desktops from work. Currently have a 3 node Proxmox cluster with 2 Windows server 2022 eval vms. One is a domain controller and the other is going to be setup for MECM(new acronym for SCCM).

I reckon that's it for now.

[–] [email protected] 1 points 11 months ago

Hypervisor cluster, K8s Cluster, routed Vlans. Learn a lot of IT things building clusters and lot of networking things building out a routed vlan network. Before that just hosting websites, network shares, email, setting up postfix/sendmail running DNS servers. The first stepping stone for me was running a hypervisor so I could build the rest of the things in there.

[–] [email protected] 1 points 11 months ago

vlan
k8 cluster.
hpc cluster simulation
GPU cluster simulation
proxmox-/vmware install and management.
building general networking and solving mid level networking issues.

[–] [email protected] 1 points 11 months ago

I have multiple things I tested and learned.

Firstly an opnSense firewall.

An Active Directory (aka setting up a Domain Controller with DNS etc) with a test client, DHCP failover (active passive)

When you have an AD (=Active Directory) you should try to set up an Exchange server, making mail flow rules etc. maybe a cluster

Docker

Reverse Proxy

And last but not least setting up Vlans -> I have a basic understanding and know how it works (and should be set up) but sadly haven't actually configured it here at home

And virtualizing things and get some hands-on experience with VMware/Hyper-V/Proxmox/QEMU etc.

That are the things I have learned and improved my skills with at home -> At work we have no opnSense firewalls, but for learning setting up pfSense, opnSense or using an old firewall (regardless of the manufacturer) helps understanding access rules, NAT PAT etc.

[–] [email protected] 1 points 11 months ago

Absolutely nothing has been as helpful in understanding how the internet works, as setting up and actually using BGP. An asn and a /40 for ipv6 can be had for almost nothing as a one time fee if you go through a LIR. Ipv4 is very expensive to buy but renting a /24 can be had for around $100 a month. And then you're ready to start peering over tunnels or you can get VPSes that support it or ask your ISP (usually only on higher end business connections).

[–] [email protected] 1 points 11 months ago

Trying to setup Nextcloud calling on docker 🥹

[–] [email protected] 1 points 11 months ago
[–] [email protected] 1 points 11 months ago (2 children)

1st: Virtualization

2nd: Firewalls and networking

3rd: Containers, Docker, (Podman) and LXC, (Incus)

4th: All the above leads onto Hypervisors

5th: Which leads you to Kubernetes

The first three require minimal hardware. Once you've got the hang of the them, it's time to get serious with a dedicated machine with greater hardware resources to run a Hypervisor.

Kubernetes, all that built in redundancy makes it hungry beast. Enough to get you looking for one or more those big old servers that homelabers love.

[–] [email protected] 1 points 11 months ago

This. Honestly has helped grow my skills across a lot of disciplines that has been a great strength to my IT/Cyber career.

[–] [email protected] 1 points 11 months ago (1 children)

I had to upvote this because I like the added "progression path analysis" given. Everything checks out so far from my personal experience.

However I have not yet delved into kubernetes yet.

Could the poster of this reply elaborate (briefly is fine) what some advantages are with Kubrn8s? You mention redundancy. From my completely inadequate understanding of kuber, you can cluster together the resources of different individual systems? Like how truenas can use all the storage of different sized drives to form one pool that can be managed as 1 resource? This of course would just be an example of what it does in concept?

So theoretically, one can sort of network a cluster of old PC's to make a really decent, redundant "server" that shares the workload?

[–] [email protected] 1 points 11 months ago

Hop over to the Youtube channel "Jim's Garage". Awesome detailed tutorial series for Kubernetes. If your brain cells have been enjoying the quiet life, it's over, because boot camp is here. It tough going, but it's worth it.

[–] [email protected] 1 points 11 months ago

VMware vSAN cluster, ceph cluster, building HA for different services, containers, k8s cluster. The list goes on.

[–] [email protected] 1 points 11 months ago

set up dedicated game servers to share with friends. Especially on some hyperviso.

[–] [email protected] 1 points 11 months ago

Running my own vmware server

Configuring guest network

Multiple vlans

Configuring tagging on switches for said vlans

Installing Linux on a VM and taking the plunge to learn it.

[–] [email protected] 1 points 11 months ago

my video game bot farm gave me desire and the need to learn... 1.programming. 2.database administration, 100s of bots need a database. 3.advanced home server deployments and virtualization, 100s of bots need hardware. 4. logging, you cant observe 100s of bots you need to log their activity and establish and observe metrics. etc... I could keep going but after this I started my career as a mainframe programmer, because I had like 70ish percent of the skills I needed.

[–] [email protected] 1 points 11 months ago

Truenas/Linux Proxmox/Virtualization Docker/Containerization/Portainer Traefik/Reverse Proxy/SSL Certificates PiHole/DNS

I’m going into my 2nd year self-hosting and home-labbing. i learned all of these skills from watching TechnoTim, DBTech, Network Chuck, Raid Owl, Christian Lempa, Level1Techs, Learn Linux TV, Awesome Open Source, Craft Computing, and Jeff Gerling. These guys are awesome i highly recommend them.

load more comments
view more: next ›