Homelab

Server domestico su ZimaBlade e Raspberry Pi, con un VPS svizzero e una VPN mesh per portare il cloud self-hosted oltre il CGNAT.

Ruolo
System Administrator & DevOps
Anno
2025
Stato
Rilasciato
Homelab

Questo progetto rappresenta la spina dorsale della mia infrastruttura personale. Si tratta di un ecosistema di macchine interconnesse e servizi self-hosted, disegnati per il deployment di applicazioni, streaming multimediale e memorizzazione sicura dei dati, il tutto orchestrato scavalcando le restrizioni di rete imposte dall’ISP (CGNAT) grazie a una VPN Mesh avanzata.

Architettura e Nodi del Cluster

1. Server Principale (ZimaBlade 7700)

Immagine dello ZimaBlade 7700 Il cuore operativo dell’Home Lab si basa sullo ZimaBlade 7700 con 16GB di RAM, con il sistema nativo ZimaOS installato.

  • Storage Tiering: Sistema diviso tra un NVMe M.2 ultraveloce da 1TB dedicato al sistema e ai container Docker, unito a due HDD NAS da 8TB (in RAID 1 per la ridondanza totale dei dati gestita da ZimaOS).
  • Servizi Principali:
    • Seafile: Sincronizzazione dei file fra i miei dispositivi e il server. Ha preso il posto di Nextcloud, troppo pesante.
    • Jellyfin & Suite Arr: Streaming multimediale assistito da automazioni come Radarr/Sonarr e Prowlarr/qBittorrent.
    • Immich: Archivio delle foto personali.
    • FranzPLAY: Piattaforma web custom per lo streaming video, sviluppata per la gestione e riproduzione di contenuti multimediali personali.

2. Server Secondario (Raspberry Pi 4)

Immagine del Raspberry casalingo Tiene i servizi leggeri e sempre accesi, su Debian 13 con Docker rootless, gestito da Portainer.

  • Servizi Principali:
    • SiYuan: La mia wiki personale, con appunti e documentazione di tutto il lab.
    • Homepage: Dashboard con tutti i servizi a colpo d’occhio.
    • Geek Country: Un eCommerce Laravel + Vue in produzione.

3. Gateway, Reverse Proxy e VPN NetBird (VPS)

Immagine del servizio Infomaniak VPS Lite Essendo il router domestico sotto l’impossibilità di aprire le porte (limitazioni ISP Ehiweb/CGNAT), tutti i nodi comunicano verso l’esterno tramite un server in Svizzera (VPS Infomaniak). Il VPS fa da ponte di rete, con NetBird self-hosted:

  • VPN mesh NetBird: Il VPS ospita il server NetBird: dashboard, gestione dei nodi e login integrato, tutto sul mio dominio. ZimaBlade, Raspberry, PC e VPS si parlano in P2P con tunnel WireGuard, su una rete privata con indirizzi scelti a mano.
  • Relay sul VPS: Quando la connessione diretta P2P non riesce, il traffico passa dal relay NetBird sul VPS svizzero, non da server pubblici.
  • Reverse proxy integrato: I servizi pubblici sotto franzpage.it passano dal proxy di NetBird, con Traefik davanti e certificati Let’s Encrypt. Il proxy raggiunge i container di casa dentro il tunnel: a casa non si apre nessuna porta.
  • Accessi per gruppi: Le policy decidono quali dispositivi si vedono. Senza una regola, il traffico fra i nodi è bloccato.
  • Prima Headscale, ora NetBird: La prima versione usava Headscale + Tailscale, con un relay DERP personale e Nginx Proxy Manager. Sono passato a NetBird perché permette di assegnare gli IP dei nodi dalla dashboard e include già reverse proxy, policy a gruppi e SSH.

Ogni singolo servizio del lab, dal front-end ai database fino all’infrastruttura di routing, è containerizzato su Docker, garantendo migrazioni fluide e azzerando i conflitti di dipendenze.

Stack

  • ZimaOS
  • Raspberry Pi
  • Docker
  • NetBird
  • WireGuard
  • Traefik