Skip to content
Mohannad Bakkar
All projects

03 / Infrastructure and learning

HomeLab

A small, real network for learning how systems actually behave.

Raspberry PiLinuxTailscale
Status
Ongoing
Hardware
Raspberry Pi 3 and Pi 4
Focus
Networking, DNS, self-hosting
Diagram of a home lab network with a router, two Raspberry Pi hosts, and a Tailscale mesh.

The home lab exists to answer questions that reading alone does not settle. What happens when DNS stops resolving? How much does a service degrade when it runs on a Pi instead of a server? What does a network look like when you have to administer it yourself?

It is deliberately modest: a Raspberry Pi 3 and a Raspberry Pi 4, a Linux foundation, and a slowly growing set of self-hosted services. The constraint is useful. Small hardware makes resource decisions visible, and a home network makes downtime personal.

The project is documented as a journey rather than a finished platform. Pieces get replaced, removed, and rebuilt.

What it covers

01

Raspberry Pi 3 and Pi 4

Two small hosts used for different roles, with the Pi 4 taking the heavier workloads.

02

Linux administration

Users, permissions, systemd services, logs, updates, and the ordinary maintenance of a machine you own.

03

Tailscale networking

A private mesh for reaching services remotely without exposing them to the public internet.

04

Pi-hole and DNS

Local DNS and ad filtering, plus the lessons that come from DNS being the cause of almost everything.

05

Self-hosted services

A small catalogue of services for files, notes, dashboards, and monitoring.

06

Docker and containers

Learning containerization by running it: images, volumes, networks, and reproducible deployments.

07

Local AI experiments

Running small language models on modest hardware to understand where they are genuinely useful.

08

Home automation

An area under exploration, with the same constraint as the rest of the lab: keep it reliable or do not depend on it.

Technical notes

Keep the blast radius small

Services stay reachable over the private mesh rather than being published to the internet. Anything exposed publicly gets treated as a project in itself, with its own review.

The same logic applies to the household: if a service is going to sit between the family and the internet, it needs a fallback path and a way to turn it off quickly.

DNS is the first suspect

Pi-hole is useful both as a service and as a teaching tool. When it stops, everything stops, and the debugging path is immediately obvious in a way it never is at work.

That lesson has been more valuable than most of the services it supports.

Local AI on modest hardware

Small models running locally are a different proposition from hosted ones. They are slower, less capable, and completely private. For narrow tasks and for understanding how these systems behave, that trade-off is often worth it.

What comes next

  1. 01Document each service with enough detail to rebuild it from scratch.
  2. 02Add monitoring that reports on the lab itself rather than only the services inside it.
  3. 03Evaluate a small local model for a specific, repeatable task.