My Homelab
My Homelab: What's Inside and Why I Built It
Since January, I’ve been building and refining my homelab — a personal tech playground where I run services, experiment with new tools, and learn by doing. Whether it’s self-hosting apps, running game servers, or just tinkering, the homelab gives me full control and ownership over my digital infrastructure.
Here’s a look at what’s inside my homelab and why I built it.
Why I Built a Homelab
The main reasons:
- Learning: There’s no better way to learn networking, Linux, virtualization, and system administration than to break things yourself.
- Privacy: I prefer self-hosted alternatives to cloud services that harvest data.
- Cost Control: No recurring subscriptions for services I can run myself.
Main Location (MA1)
Those are the backbones of my lab:
- Main Server (Dell Optiplex 5060):
- CPU: Intel Pentium Gold (2 cores / 4 threads)
- RAM: 24GB DDR4
- Storage: 2x 256GB SSD (RAID 1) + 3x 3TB HDD (RAID 1, and 1 Hotspare)
- OS: Ubuntu 24.04.03 LTS (Soon RHEL when i have time)
- Services: NGINX Reverse proxy, TG Bots, backup crontabs
- Build Server (Dell Poweredge R730)
- CPU: 2x Intel XEON E5-2697Av4 (32 cores / 64 threads)
- RAM: 116GB DDR4 LRDIMM (2400MHZ)
- Storage: 2x 2TB NVME (RAID 0) 2x 512GB Sata (RAID 1, Boot drives)
- OS: PVE
- Misc Server (Dell WYSE 3040)
- CPU: Intel Atom (4 cores / 4 threads)
- RAM: 2GB LPDDR3
- Storage: 8GB eMMC
- Power Backup:
- APC UPS for clean shutdowns and surge protection
Colocation (MA2)
- Main Test Server (Dell Precision 3620)
- CPU: Intel Core i7-7700K
- Boot Drive: 512GB SATA SSD (RAID 1)
- Additional Storage: 2TB NVMe SSD
- Runs PVE, and whatever im working on At the moment, sorta as a test bench)
- Gitlab Host (Generic Office PC)
- CPU: Intel Core i7-4790
- RAM: 16GB DDR3
- Storage: 2 × 256GB SSDs (RAID 1)
Synology DS215+ NAS
- Storage: 2 × 3TB HDDs (RAID 1)
- Role: Network storage, backups, and media archive
Services Running
These are some of the services currently active in my homelab:
Ghost Blog
- Self-hosted here
- Running on Node.js with MySQL
- Reverse proxied through Nginx
Nextcloud
- For syncing files, calendar, and contacts across my devices
- Replaces Google Drive and Dropbox
Game Servers
- Minecraft server for friends
Mail Server
Git Servers
- Gitlab at https://git.extremerom.org
- Gitea at https://git.perfc.org
- Forgejo at https://git.osrott61.me
Dockerized Apps
Using Docker Compose to run and manage:
- Uptime Kuma – for service monitoring
- Portainer – for managing containers
- Pi-hole – local DNS and ad blocking
Monitoring & Metrics
- Grafana + Prometheus for dashboards
- Netdata for real-time system stats
- Uptime Kuma – for service monitoring
Domain & Access
I run my services behind Nginx as a reverse proxy with SSL certificates managed by Cloudflare. All external access is routed through Tailscale, and SSH is not possible from outside.
Security Measures
- No open SSH ports (besides the ones for my Git's)
- Firewall rules for all services
- Only 4 open ports (443, and the 3 ssh ports)
- Intrusion detection and fail2ban
- Daily backups via rsync to my Synology NAS
Projects in Progress
- Setting up ZFS for better storage management
- Building a media server with Jellyfin
- Exploring Ansible for automated provisioning
- Planning to add a small ARM cluster (RPi or similar)