Mijn Raspberry Pi 5 infrastructuur
Dit is een overzicht van mijn Raspberry Pi 5 infrastructuur – de centrale hub voor mijn netwerk- en webdiensten. Na wat experimenteren met losse Pi Zero 2WH’s draait alles nu op één krachtige Pi5 (8GB). Betrouwbaarder en een stuk makkelijker te beheren.
De afgelopen maanden is dit project flink gegroeid: van een simpele Pi-hole installatie naar een complete netwerkgateway met VLAN-segmentatie, VPN-routing, meerdere zelfgehoste diensten én een doordachte email-setup.
Hardware
Raspberry Pi 5 Setup
- Model: Raspberry Pi 5 (8GB RAM)
- Behuizing: Argon ONE V5 (met actieve koeling)
- Opslag: 256GB NVMe SSD (primair)
- Extra opslag: Samsung T5 1TB SSD (voor Nextcloud data)
- Netwerk: Gigabit Ethernet + USB-C Gigabit Ethernet adapter
- Locatie: Direct naast de router voor optimale netwerkprestaties
Waarom Pi5?
De upgrade van Pi Zero 2WH naar Pi5 was noodzakelijk:
- Meerdere Docker containers tegelijk draaien vraagt gewoon meer resources
- De Pi Zero 2WH crashte bij zwaardere workloads (Home Assistant met HACS bijvoorbeeld)
- Centralisatie op één betrouwbaar systeem voorkomt dat losse toevoegingen mislukken
- NVMe opslag is significant sneller dan SD-kaarten
- Een tweede ethernet-interface maakt échte netwerksegmentatie mogelijk
Netwerkarchitectuur
De genoemde IP-adressen zijn ter indicatie.
Basisnetwerk
- Pi5 vast IP: 192.xxx.1.10
- Hostname: pi-home.local
- Router: (192.xxx.1.1)
- Internet: 500/500 Mbps glasvezel via Glasnet i
Pi-hole (Docker)
- Functie: Netwerk-brede DNS filtering en ad blocking
- Bereik: Alle apparaten in alle VLANs
- Interface: PADD voor terminal-monitoring, webinterface via dashboard op apart subdomein
Hugo Static Sites
- Technologie: Hugo met verschillende thema’s voor subdomeinen
- Auto-rebuild: Systemd service met inotifywait voor automatische rebuilds bij opgeslagen wijzigingen in posts
Nextcloud (Docker)
- Functie: Persoonlijke cloud-opslag
- Database: MariaDB
- Opslag: Samsung T5 1TB externe SSD (aan pi5 via usb3)
- Toegang: Via subdomein en Nextcloud apps (lokaal en via WireGuard)
Home Assistant (Docker)
- Functie: Smart home beheer
- Integraties: In opbouw – bedoeld voor IoT apparaten op VLAN20
- Toegang: Lokaal via poort 8123
Cloudflare Tunnel (Docker)
- Functie: Veilige externe toegang zonder port forwarding
- Actieve subdomeinen: Inclusief Cloudflare Access authenticatie
SSH-MCP Server (lopend project)
- Functie: Remote SSH-toegang via Claude.ai en Claude iOS app
- Technologie: mcp-front met bearer token authenticatie via nginx
- Voordeel: Pi beheren vanuit elke Claude-interface, ook mobiel
PiVPN (WireGuard)
- Functie: VPN-server voor externe toegang tot thuisnetwerk
- Subnet: 192.xxx.40.0/24
- Clients: iPhone, voor toegang tot lokale services onderweg
Mailserver (Docker)
- Functie: Eigen email hosting met lokale opslag
- Software: docker-mailserver
- Adres: [placeholder1]@jbtroost.nl
- Features: SpamAssassin, Fail2ban, Let’s Encrypt SSL
- Client: Thunderbird op de Pi5
Email: het grote avontuur
Een van de grotere uitdagingen van dit project was het opzetten van een eigen mailserver. Ik lees vaak genoeg online waarschuwingen als “self-hosted mail is een nachtmerrie”, “residential IP werkt nooit”, “Gmail blokkeert je toch”… Dus dacht ik: ‘dat gaat me vast lukken’.
De zoektocht
Het begon met iCloud+ Custom Domain – dat werkte prima als tussenstap, maar het waren aliassen op mijn iCloud inbox, geen échte aparte mailbox. Dat voelde niet als de “ultieme PoC”. Dus ben ik gaan kijken naar de opties:
| Optie | Voordelen | Nadelen |
|---|---|---|
| iCloud+ Custom Domain | Al betaald, naadloze integratie | Aliassen, geen echte mailbox |
| Mailbox.org | Duits, GDPR, €3/maand | Weer een externe dienst |
| Soverin | Nederlands, simpel | Idem |
| Eigen mailserver op Pi5 | Volledige controle, lokale opslag | “Deliverability-nachtmerrie” |
De uitdaging
Iedereen waarschuwde voor de problemen:
- Residential IP – grote mailproviders blokkeren die vaak by default
- PTR record – reverse DNS is essentieel, maar ISPs doen dat vaak niet voor particulieren
- IP reputatie – nieuwe mailservers beginnen op nul
- De oligopolie – Gmail/Outlook/Yahoo controleren ~80% van alle email
Glasnet doet mee
De cruciale vraag was: doet Glasnet PTR records voor particulieren? Een mailtje naar support en het antwoord was verrassend positief. Ze stelden [placeholder2].jbtroost.nl in voor mijn IP. Dat was het moment dat ik wist: nu gaat het me zéker lukken!
De setup
docker-mailserver draait nu op de Pi5:
services:
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
hostname: [placeholder2].jbtroost.nl
ports:
- "25:25" # SMTP
- "465:465" # SMTPS
- "587:587" # Submission
- "993:993" # IMAPS
environment:
- ENABLE_SPAMASSASSIN=1
- ENABLE_CLAMAV=0 # te zwaar voor Pi
- ENABLE_FAIL2BAN=1
DNS records in Cloudflare:
- MX → [placeholder2].jbtroost.nl
- SPF, DKIM, DMARC – allemaal netjes ingesteld
Router: port forwarding voor 25, 465, 587, 993
SSL: Let’s Encrypt via Cloudflare DNS challenge
Het werkt gewoon
De test was spannend: een mail versturen naar mijn iCloud-adres en… die kwam gewoon aan! Netjes in de inbox en niet in de spam.
Thunderbird op de Pi5 verbindt nu direct met de eigen mailserver. Lokale opslag op de NVMe, volledige controle over mijn mail.
Het huidige model
| Adres | Provider | Doel |
|---|---|---|
| [placeholder1]@jbtroost.nl | Eigen mailserver | Hugo sites, publiek gezicht |
| @murena.io | Murena | Privacy-haven, /e/OS sync |
| @mac.com | iCloud | Apple ecosystem, legacy |
| @werkmail | Google Workspace | Werk (alleen op werklaptop, VLAN30) |
Vier functies, vier oplossingen. De werklaptop draait bewust op het gastnetwerk – werk is maar werk.
Wat ik geleerd heb
- Glasnet is een fijne ISP – ze regelen PTR records zonder gedoe
- docker-mailserver is lightweight – draait prima op een Pi5, geen database nodig
- Deliverability is geen nachtmerrie – als je SPF/DKIM/DMARC goed instelt en een PTR record hebt
- De “iedereen zegt dat het niet kan” mentaliteit – soms moet je het gewoon proberen
- Brevo als backup – voor als deliverability ooit een probleem wordt, staat de SMTP relay config klaar
Software stack
Operating System
- OS: Raspberry Pi OS (64-bit)
- Reden: Aanbevolen voor desktop (via RealVNC Viewer), stabiel voor server gebruik
Container beheer
- Platform: Docker + Docker Compose
- Voordelen: Service isolatie, makkelijk updaten, eenvoudig backuppen
Netwerkdiensten
- NetworkManager: Interface configuratie (eth0, eth1, VLAN subinterfaces)
- dnsmasq: DHCP server voor alle VLANs met MAC-based subnet toewijzing
- iptables: Firewall regels voor netwerksegmentatie en NAT
- nginx: Reverse proxy voor Hugo sites en MCP authenticatie
- WireGuard: ProtonVPN client (wg-proton) en PiVPN server (wg0)
Designfilosofie
Privacy & self-hosting
Waar mogelijk kies ik voor zelfgehoste oplossingen boven clouddiensten:
- Nextcloud in plaats van (extra) iCloud opslag
- Pi-hole in plaats van browser-based ad blockers
- Eigen VPN-server voor thuistoegang
- ProtonVPN voor privacy op vertrouwde apparaten
Betrouwbaarheid door centralisatie
De switch van aan elkaar ‘geknoopte’ Pi Zero’s naar één gecentraliseerde Pi5:
- alles op dezelfde plek, handig met beheren
- Betere prestaties door gedeelde resources
- Eenvoudiger troubleshooting
- Lagere stroomkosten
Visuele interfaces naast CLI
Als beelddenker heb ik een voorkeur voor visuele interfaces:
- VNC-toegang met GUI (pi wordt desktop!)
- Home Assistant webinterface
- Cloudflare dashboard
SSH en Terminal blijven essentieel voor configuratie en debugging – maar het is fijn om gewoon vanaf een ‘bekend’ scherm te werken.
Uitdagingen & lessen
Wat goed werkte
- NVMe opslag: Enorme snelheidswinst vergeleken met SD-kaarten
- Docker containers: Maakt service management een stuk eenvoudiger
- Cloudflare Tunnels: Veilige externe toegang zonder port forwarding gedoe
- SSH-MCP: Pi beheren via Claude, ook vanaf mobiel (via web-app als omweg)
- Tweede ethernet-interface: Maakt échte netwerksegmentatie mogelijk
- Eigen mailserver: Tegen alle verwachtingen in – het werkt gewoon!
- Glasnet support: PTR record zonder gedoe geregeld, ik kan je ze graag aanbevelen als ISP!
Geleerde lessen
- Goede voeding is cruciaal: Standaard chargers zijn niet geschikt voor Pi’s
- Host network mode voor Pi-hole: Bridge mode veroorzaakt DNS routing problemen
- Table = off in WireGuard: Voorkomt dat VPN alle routes overneemt
- Lokale routes in VPN config: Voorkomt dat lokaal verkeer via VPN gaat
- Geen pleisters plakken: Een van tevoren goed doordachte opbouw voorkomt steeds maar weer problemen moeten oplossen
- “Ze wisten niet dat het kon, totdat iemand het deed”: Soms moet je gewoon proberen en kijken of het jou wel lukt
Router beperkingen
Mijn router mist echte VLAN-ondersteuning, wat creatieve workarounds vereiste:
- MAC-based subnet toewijzing in plaats van VLAN tagging
- Tweede ethernet-interface voor bekabelde trusted devices
- WiFi-segmentatie alleen mogelijk via eigen access points (toekomstplan)
Nextcloud via Cloudflare Tunnel
Cloudflare Tunnel met Flexible SSL en Nextcloud’s HTTPS-redirects bleven maar botsen in een redirect loop. Na veel pogingen met overwriteprotocol, trusted_proxies en andere config-aanpassingen moest ik het opgegeven.
Toch bleek na een tijdje — ik was inmiddels bezig om de Nextcloud Passwords app toe te voegen die dezelfde server nodig heeft — de oplossing simpel: het subdomein moest nog toegevoegd worden aan de trusted_domains in Nextcloud’s config.php. Dat was alles.
Nu draait Nextcloud volledig via de tunnel — zowel de webinterface als apps zoals Passwords werken gewoon via het subdomein!
Toekomstige plannen
Korte termijn
- Audio streaming via Fiio BR13 en NAS
- Managed switch + eigen access points voor complete WiFi VLAN-segmentatie
- Home Assistant verder uitbreiden met IoT integraties
- Content subdomeinen uitbouwen
- Apart mailadres per subdomein via de eigen mailserver
Lange termijn
- Backup-strategie implementeren voor kritieke services (inclusief mailserver data)
- Nextcloud AI Assistant met LiteLLM proxy
Technische specificaties
Resourcegebruik
- CPU: Gemiddeld ~15-25% (met pieken tijdens updates)
- RAM: ~3-4GB gebruikt van 8GB
- Disk I/O: NVMe geeft excellente performance
- Netwerk: Gigabit Ethernet, geen bottlenecks
Uptime & stabiliteit
Na de migratie naar Pi5 met NVMe is de uptime flink verbeterd vergeleken met de Pi Zero 2WH setup. Het systeem draait stabiel met meerdere containers en services tegelijk.
Conclusie
Deze Pi5 infrastructuur vormt de ruggengraat van mijn thuisnetwerk en combineert privacy-gerichte self-hosting met praktische functionaliteit. Het is een continu project – een speeltuin voor experimenten, die mij tegelijkertijd nuttige dagelijkse diensten oplevert.
De eigen mailserver was het ultieme bewijs dat “iedereen zegt dat het niet kan” geen reden is om het niet te proberen. Residential IP, geen PTR record support, deliverability-nachtmerries – allemaal verhalen die in de praktijk soms best meevallen, als je de juiste ISP hebt (thanks, Glasnet!) en de configuratie goed doet.
De setup is een combinatie van idealisme (volledige privacy en controle) en pragmatisme (sommige Apple-diensten blijven nog te goed geïntegreerd). Het resultaat is een hybride aanpak: kritieke diensten self-hosted, soms (nog) kiezen voor bestaand gemak.
Ik ben niet te trots om te zeggen, dat ik dit hele verhaal niet had kunnen realiseren als ik alleen maar boeken met Debian code tot mijn beschikking had gehad.
De coding skills van Anthropic’s Claude Opus-model kunnen benutten heeft ervoor gezorgd dat ik nu een Raspberry Pi5 lokaal heb draaien. Inclusief (bijna) alle diensten die ik in de toekomst zelf wil kunnen blijven beheren & benutten.
Vibecoding om los te komen van BigTech blijft een mooi streven.
(Eerste versie: 22-11-2025 – Laatste update: 09-01-2026)