Personal server infrastructure and self-hosted services, designed to learn, experiment, and have total control over my data and technological environment.
A HomeLab is a personal server environment where own services are run completely locally, without relying on third parties or the cloud. In my case, I set it up as a natural extension of my project and ASIX training: if I am going to manage production systems, I first need a real lab where I can break things, fix them, and learn.
The project started with the local AI project on my personal PC and I later acquired an old, limited machine to experiment, learn, and make my technological needs simpler. It now manages everything from my home network DNS to photo storage, plus continuous monitoring of all services.
All data stays on my local network. No service sends information to external servers. I only access from outside via VPN.
The server is a repurposed old PC, chosen for its low power consumption but enough power to run stable, silent services 24/7 at home.
| Component | Specification | Role |
|---|---|---|
| CPU | Intel i7-4790 | Main compute + virtualisation |
| RAM | 4 × 4 GB DDR3 | Docker containers |
| OS Storage | 436 GB SSD Kingston | Operating system + services |
| Network | Gigabit Ethernet | Main connectivity |
| Operating System | Ubuntu Server 24.04 LTS | Main host |
The main objective of the HomeLab is threefold:
Replicating real production environments to practise systems administration, networking, and cybersecurity before facing them in the workplace.
Eliminating dependency on cloud services (Google Photos, Dropbox...) while maintaining total control over my personal data.
Having a safe environment to test new technologies, advanced network configurations, and projects without fear of breaking anything critical.
Managing a personal HomeLab is building skills that are hard to learn in a classroom:
DNS, DHCP, firewall rules — things configured for real, with real consequences if something fails.
Deployment, updating, and maintenance of containers, compose files, volumes, and networking between services.
Service hardening, audit logs, and local SSL certificates.
Real fault diagnosis, log analysis, network problem debugging, and hardware failure recovery.
Administration is primarily done from the terminal via SSH, complemented by web interfaces for the more visual services:
The home network is segmented to isolate the server from other devices, with the server acting as DNS server for the entire local network:
The server acts as the primary DNS for the entire network, filtering ads and malicious domains via PiHole before resolving any query.
Security is a priority in the HomeLab. I implemented measures such as firewall, network monitoring, and regular updates to protect all services. Additionally, I perform periodic audits using NMAP and Lynis after every major change.
Lynis is a security auditing tool I use to evaluate my system's configuration. It scans the system and provides a detailed report with a score and recommendations to improve security. It is an essential tool for keeping the HomeLab secure and protected against potential threats.
The HomeLab is constantly evolving. Here is a short list of projects I plan to add in the future.
Monitoring is a critical part of any infrastructure. The HomeLab uses three complementary layers: real-time metrics, service availability checks, and hardware alerts.
Netdata is the real-time monitoring engine for the server. With 1-second resolution, it captures CPU, RAM, disk, network, temperature, and process metrics for all Docker containers.
Per-core CPU usage, RAM, disk I/O, component temperature, and system load in real time.
Per-container CPU and RAM usage, health check status, and automatic detection of abnormal resource consumption.
Uptime Kuma checks every 60 seconds that all services are responding correctly.
PiHole, Immich, Netdata, Ollama, and Open WebUI. Real-time status with automatic alerts.
ActiveDisks are monitored with smartmontools. A daily cron script analyses the S.M.A.R.T. status of each disk and sends an email alert if it detects bad sectors, read errors, or elevated temperature.
HDDs have an elevated failure rate after 3-5 years. S.M.A.R.T. monitoring allows detecting imminent failures before data is lost.
PiHole acts as the DNS server for the entire home network, intercepting requests to advertising, tracking, and malware domains before they reach devices. With blocklists updated automatically every week, it filters between 20% and 40% of total DNS traffic.
Network-level ad blocking for all connected devices: PCs, phones, Smart TVs, and consoles — no installation needed on each device.
~25% requests blockedLocal DNS records to access HomeLab services with friendly names: immich.local, netdata.local...
Immich is the self-hosted alternative to Google Photos I use to store and manage all my photos and videos. The mobile app automatically backs up in real time to my server, and none of my photos ever pass through third-party servers again.
Immich includes AI-powered facial recognition, content-based search, automatic album generation, and a location map — all running locally.
The Immich Android app automatically backs up every new photo and video as soon as the phone connects to the home WiFi.
Sync activeFacial recognition, object classification, and semantic search (search for "beach 2024") using AI models that run on the server itself.
Machine Learning activePrivate gallery — not publicly available