My Home Server Room: From Raspberry Pi to Machine Learning

My Home Server Room: From Raspberry Pi to Machine Learning

7 Jan. 2026

At the end of 2021 I set up my first server: the Raspberry Pi 4 I'd bought in high school. I couldn't have imagined that little board drawing a few watts would kick off a small home server room. Today I run five machines, for development, hosting and, above all, artificial intelligence.

The Raspberry Pi: the basics

It was weak, but enough to run an HTTP server and learn system administration. It taught me to manage Linux, configure Apache, and wrestle with firewalls and router port forwarding. It was slow, it crashed often, and every error meant hours of debugging. But it worked, and it was mine.

The ThinkCentre: production

After a few months the Pi wasn't enough. I found a used ThinkCentre with an Intel i5-6400T, 16 GB of RAM and a 2 TB SSD. No powerhouse, but for me a huge jump.

That machine is the heart of the setup, and it still runs the whole backend of this site: the Laravel CMS, the visits tracker and PostgreSQL, all in Docker, with Caddy in front of the admin panel. It's the most reliable machine I have: powered on around the clock for over two years with no hardware trouble. It's where I learned to write code that has to stay up in production, where every bit of downtime is a lesson.

The €300 HP ProLiant

One day, scrolling eBay, I found a seller liquidating enterprise servers. Among them was an HP ProLiant DL380 Gen9 with dual Xeon E5-2690 v3 and 256 GB of RAM. The price: 300 euros. I didn't think twice: 24 cores and a quarter of a terabyte of RAM open up possibilities that were out of reach before.

Right now the server is off, waiting for me to find a used GPU for machine learning at a reasonable price. With the AI boom the graphics-card market has gone mad, and I'm waiting for the bubble to deflate before finishing it.

The DIY NAS

When I upgraded my gaming PC, instead of selling the old parts I put them back to work: a Ryzen 7 3700X, 32 GB of DDR4 and a B450 Pro4 went into a new server.

For storage I did it properly: two 256 GB SSDs in RAID 0 for the operating system, and four 4 TB HDDs in RAID 5 managed with mdadm for the data. This server runs Plex and acts as the NAS for the whole house. Setting up software RAID 5 taught me a lot: I had to study mdadm, understand how distributed parity works, and above all learn the hard way how much backups matter.

The gaming PC and the RTX 3090

My main setup is a gaming PC with a Ryzen 7 9800X3D, 32 GB of DDR5 and an RTX 3090. Built for gaming, it's become my workstation for machine learning and development.

The 3090's 24 GB of VRAM are perfect for running language models locally: right now I mostly run Qwen Coder and Gemma through Ollama. I also use this machine for Local RAG Example, where I experiment with retrieval-augmented generation and vector databases: having the GPU always available lets me iterate fast.

Ubuntu everywhere

Every server runs Ubuntu. The choice wasn't philosophical: it's the most common distribution, so for any problem there's already a guide or a thread someone solved before you. When something breaks at two in the morning, popularity beats technical purity. And with the same distribution on every machine, I reuse scripts and configurations without adapting anything.

Networking: VPN, and no more automatic deploys

Every server is reachable through a VPN, so I manage them from anywhere while keeping things secure. For a while I also had SSH set up through a proxy so my GitHub Actions pipelines could deploy straight to the servers. Later I removed every automatic deploy to my own machines, for security reasons.

Monitoring: or rather, the lack of it

I'll admit it: I don't have a structured monitoring system. No Grafana, no Prometheus, no automatic alerts. My approach is much more… empirical: if something breaks, I notice when something stops working. It's something I need to improve, and proactive monitoring is at the top of my list.

Backups: hope for the best

Here too I confess: my backup strategy is… optimistic. "Hope for the best" isn't exactly what they teach you, but so far it's held. The truly critical data is duplicated to the cloud; for the rest I rely on RAID 5 and luck. I can afford that because almost everything on my servers is experimental or reproducible: if the RAID 5 died tomorrow, I'd lose files and media, but not the code, which is on GitHub, or the critical configs, which I've documented. It's a calculated risk, maybe a bit too calculated.

More articles: