Homelab rev. 0

Dopo quasi 10 mesi posso dire di aver raggiunto una situazione abbastanza stabile e sono discretamente orgoglioso del risultato.

La storia è iniziata dal router RB5009UPr+S+IN che costituisce un po la sala controllo per il traffico del sistema. Alla fine Mikrotik ha vinto la selezione contro Unifi per motivi essenzialmente di costo, ma anche per assicurarmi che non mi facessi trascinare da soluzioni precotte. Alla fine poi ho usato una AI per configurare ma almeno il controllo è rimasto in mano mia.

Ho suddiviso la mia rete in 6 VLAN:

Admin: configurazione dei device di rete, aperta solo via cavo.
Home: server e device fidati.
Media: traffico di contenuti multimediali.
Guest: ospiti e collegamenti temporanei senza accesso alla LAN.
IoT: device con collegamento internet senza accesso alla LAN.
NoT: device senza accesso a internet e alla LAN.

La VLAN Media in particolare mi ha lasciato un poco perplesso perché quasi un doppione della IoT. Il motivo per cui l’ho creata è che tutti i server che ho acquistato avevano un doppio NIC e ho scelto di differenziare il traffico tra NAS, Jellyfin, Lyrion Music Server, Smart TV e in futuro altri device. Non sono sicuro sia una scelta giustificata, anche visto il traffico molto limitato della mia rete, e puo essere che in futuro torni sui miei passi.

Ho dedicato anche un po di tempo alla configurazione del firewall con regole dedicate per ogni servizio.

Un altro pezzo che ho aggiunto quasi subito e stato il cAP ax, probabilmente un overkill per i miei usi ma comunque un ottimo acquisto. Una cosa che ho apprezzato è CAPsMAN, una feature di Router OS per gestire in modo centralizzato dal RB5009 tutti gli AP.

Lo switch CRS418-8P-8G-2S+RM è arrivato in ultimo, dopo il trasloco, ma era pianificato da tempo viste il numero dei device coinvolti e la decisione di non utilizzare la rete wireless per i servizi principali. Collegato al router con fibra via SFP distribuisce le VLAN nella LAN. Ho fatto anche questa configurazione con l’aiuto dell’AI senza troppe difficolta.

Lo sviluppo dei server è avvenuto gradualmente, sono partito da esperimenti fatti con Raspberry Pi5, che stavo già utilizzando per altri progetti e un po alla volta quasi casualmente ho virato verso i Beelink che si sono rivelati fino a qui affidabili e pienamente compatibili con le distribuzioni Linux e le applicazioni che ho utilizzato. Complice poi il fatto che mi trovavo in Cina e i prezzi dell’elettronica in generale erano molto più bassi di ora ho pagato il tutto probabilmente quasi un terzo di quello che pagherei ora per le stesse cose qui in Europa.

La prima pietra della struttura è stato l’ME Mini, che nella versione cinese monta un N200 e 12GB di memoria saldata. Ha 6 slot M.2 SSD che supportano NVMe fino a 4TB. Io ne ho occupati 4 con SSD da 2TB e ho installato Truenas. L’esperienza e stata buona, con un RAID Mirror ho a disposizione 3.8TB, piu che sufficienti per le mie attuali esigenze. L’unico problema l’ho riscontrato quando ho cercato di installare Frigate ed un chip Hailo8 utilizzato per il riconoscimento degli oggetti. Essendo Truenas un sistema abbastanza blindato per renderlo sicuro non permette di compilare e caricare moduli del kernel diversi da quelli precompilati. Avevo trovato il modo poi di bypassare le sicurezze e compilare il modulo ma per altre ragioni di sicurezza il sistema non permetteva al container Frigate di accedere all’hardware per cui ho dovuto rinunciare. Alla fine mi sono deciso a prendere un’altra macchina per Frigate e lasciare in Truenas solo Jellyfin per lo streaming di immagini e video.

La seconda scatoletta arrivata era un EQ14 che per qualche tempo è stato in gara con degli equivalenti GMKTec e Morefine. Le cose che mi hanno fatto decidere di continuare con Beelink sono state principalmente la silenziosità e il migliore raffreddamento riconosciuta in diversi forum, la presenza dell’alimentatore interno e in generale una migliore qualità percepita dagli utilizzatori. Caratteristiche che sono tutte state confermate durante il mio utilizzo. L’ho equipaggiato con 16GB di RAM e una SSD NVMe da 1TB che al tempo ho pagato veramente poco, ora anche in Cina li pagherei almeno il doppio. Dato che puntavo ad usare Docker container per tutti i server ho installato un Ubuntu Server base che occupa veramente pochissimo spazio.

Dopo un po’ di prove però mi sono reso conto di avere bisogno di altre risorse, sia per alcuni limiti di spazio fisico che rendevano difficoltosa l’installazione del modulo Hailo8 sia perché nel frattempo avevo aumentato la mia lista di server da installare e questa macchina da sola si era rivelata un po’ piccola. Infatti oltre al server Frigate e altri per gestione multimedia avevo aggiunto Home Assistant, un server di automazione media Servarr assieme a file sharing qBittorrent e un server Portainer per controllare

Ho valutato diverse opzioni tra cui riutilizzare il Pi5 da cui ero partito, ancora i mini PC valutati l’altra volta, ma alla fine una promozione per il Doppio 11 davvero imperdibile mi ha convinto a prendere un EQi12. Quindi la configurazione finale è stata:

  • MeMini – Truenas con app Jellyfin (container).
  • EQi12 – Ubuntu server e Docker con container Frigate, Lyrion Music Server, Portainer e da pochi giorni Vikunja.
  • EQ14 – Home Assistant Operating System con integrazioni per tutti i server e broker MQTT per comandare devices, che ancora non ci sono.
  • Pi5 – RaspberryPi OS Lite e Docker con container qBittorrent e Gluetun per file sharing via VPN, Prowlarr e Flaresolverr per indicizzare le fonti, Sonarr, Lidarr e Radarr per l’automazione delle ricerche. Un container Portainer agent permette di collegare tutti i container al server Portainer per la gestione centralizzata

Nel tempo poi ho collegato alcune periferiche principalmente con funzioni di test:

  • Telecamera Dahua DH-X14V-Pro per il server Frigate
  • Smart TV Philips 40PF6000-12, che pero non è abbastanza smart da permettere una gestione diretta da Jellyfin o HA.
  • Per proiettare i media facilmente ho preso un tv box HK1 RBOX su cui ho installato CoreELEC 23.1
  • Un Zigbee dongle CH9102x con un cavo USB da un metro. Al dongle per ora è collegato solamente un sensore ambiente Aqara
  • Sempre con cavo USB ho collegato un DAC Scarlett 2i2 per inviare l’uscita di LMS al mio amplificatore Lector VFI70

Mentre stavo lavorando a questo progetto il mio lavoro principale mi ha portato da Hangzhou a Dalmine ed infine a Oriago. A Dalmine dove ho ancora una casa ho un collegamento in fibra a 2,5GB/s, mentre Oriago dove sto ora ho ancora un collegmento misto fibra/rame che raggiunge solo i 300 MB/s. Ho pensato bene quindi di lasciare la mia seedbox con torrent e servarr a Dalmine dove posso condividere e scaricare i file a velocita maggiori e collegarla alla NAS e al server Portainer via tunnel wireguard.

Ora sto continuando le fasi di test dei vari server, ancora qualche problemino nel direzionamento del traffico e firewall ce liho, non sono certo un esperto e sto imparando le cosa strada facendo. I prossimi pezzi che sto valutando di aggiungere al progetto sono:

  1. Assistente vocale autocostruito con ESP32-S3. Ho gia comperato tutti i componenti dalla Cina e sto facendo pratica con il saldatore Alientek T90, breadboard, connettori e altri aggeggi. Non semplice ma ci arriverò.
  2. Pi-hole per bloccare la pubblicita nella mia rete.
  3. Reverse proxy con Nginx per raggiungere più facilmente tutti i servizi di casa.

Devo anche scrivere un howto per questo progetto, spero di poterlo presto condividere con voi: stay tuned!

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *