Dietro le quinte

Due vie di installazione. Un solo sistema dichiarato.

Nixorium trasforma la configurazione del laboratorio in sistemi NixOS completi, costruiti sul controller. Una macchina vuota si installa con PXE o con la ISO ufficiale di NixOS tramite USB/SSH, dopo una verifica; una macchina già installata riceve un aggiornamento separato con Colmena; il normale lavoro al desktop si svolge in locale.

Prima leggi la panoramica generale 

Configurazione del laboratorioConfigurazione del laboratorio + Nixorium (versione fissata)impostazioni · moduli · chiavi pubbliche · risorse
Controller
  1. 01Valuta
  2. 02Compila
  3. 03Distribuisci
PC nuovo o ricreatoInstallazione PXE o USB/SSHcache firmata · disco confermato · Disko
PC gestitoAggiornamento del sistemaHarmonia · Colmena · SSH
Sistemi clientinstallati localmente · attivati come generazioni NixOS
Un’unica configurazione del laboratorio serve sia per installare una macchina vuota con PXE o USB/SSH, sia per aggiornare un client già installato.
01 · Percorsi operativi

Installa, aggiorna o avvia in locale.

Il controller prepara tutto per entrambe le strade, ma non è un server di desktop remoto per l’aula. Ogni postazione installata esegue il proprio sistema NixOS e le proprie applicazioni.

Macchina vuota

Installazione PXE o USB/SSH

PXE carica l’installer su molte macchine. USB/SSH verifica una ISO ufficiale di NixOS quando l’avvio da rete non è disponibile. Entrambi portano allo stesso sistema firmato e al controllo del partizionamento con Disko.

Segui i due percorsi di installazione ↓
Macchina già installata

Distribuzione del sistema

Colmena si collega via SSH, i client ricevono da Harmonia i percorsi dello store già pronti e NixOS attiva una nuova generazione.

Segui il percorso di aggiornamento ↓
Uso normale

Avvio e applicazioni locali

La postazione si avvia dal proprio disco ed esegue il desktop localmente. PXE, l’installazione da USB, Colmena e la vista d’aula non intervengono nell’esecuzione ordinaria delle applicazioni.

Guarda il desktop degli studenti →
02 · Modello del sistema

Framework e configurazione del laboratorio restano separati.

Il bootstrap genera la configurazione del laboratorio, un repository privato che fissa la versione di Nixorium. Impostazioni e credenziali appartengono al laboratorio, non al framework pubblico.

  1. 01 · Ambiente live

    Scegli la sorgente e il disco del controller

    Il controller parte dalla ISO ufficiale di NixOS, Minimal o Graphical, in modalità UEFI e con accesso a Internet. Il bootstrap individua la sorgente di Nixorium scelta, imposta la tastiera della console, raccoglie account e impostazioni regionali e chiede conferma del disco che cancellerà.

  2. 02 · Configurazione del laboratorio

    Crea il repository privato del laboratorio

    La configurazione del laboratorio nasce dal modello e fissa Nixorium come sorgente a monte. La macchina installata parte in modalità solo controller, con l’account e le impostazioni regionali scelti nel bootstrap, mentre la rete del laboratorio resta disattivata.

  3. 03 · Gestione del laboratorio

    Definisci il laboratorio quando la rete è pronta

    Dopo il riavvio, Installation → Network boot (PXE) raccoglie la topologia della rete, crea le chiavi del controller che mancano, attiva il controller e prepara i client configurati. Le chiavi private restano sul controller.

Framework pubblico

Nixorium

Moduli versionati, programmi di installazione, impostazioni predefinite e la funzione che genera tutti i computer del laboratorio.

Versione fissata dalla configurazione del laboratorio
Configurazione del laboratorio

Il tuo laboratorio

Impostazioni del laboratorio, personalizzazioni per singolo computer, risorse, hash delle password e chiavi pubbliche della cache e di SSH.

Le chiavi private restano sul controller
Risultato della valutazione

Sistemi con nome

Le configurazioni valutate e gli artefatti usati per l’installazione e la distribuzione.

Un’unica fonte dello stato desiderato

La configurazione del laboratorio fissa la sorgente di Nixorium e le dipendenze. Cambiare un valore non modifica sul posto una macchina accesa: cambia l’input da cui il sistema interessato viene valutato e compilato.

lab-settings.json

Topologia gestita, nomi locali dei ruoli, hash delle password, rete, lingua e formati, tastiera, pagina iniziale e altri valori tipizzati del laboratorio.

lab-software.json

Dichiarazioni dei pacchetti gestiti, ciascuna con il suo ambito esplicito: condiviso, controller, gruppo di client o singolo client.

workspace-profile.json

L’ambiente di lavoro degli studenti: dock, aspetto, estensioni e impostazioni di VS Code e browser predefinito, modificati nell’editor guidato del menu testuale e ripristinati a ogni avvio.

flake.lock

Le revisioni esatte di Nixorium e dei pacchetti NixOS. Update Nixorium e Update system and packages le cambiano solo dopo una tua verifica.

modules/ + assets/

Regole avanzate decise dal laboratorio per postazioni, sviluppo, profili della home, singoli computer, identità grafica, editor e desktop.

keys/ + controller secrets

Le chiavi pubbliche autorizzate della cache e di SSH possono essere versionate. Le chiavi private corrispondenti restano sul controller, fuori dai commit, e vengono installate dalla procedura gestita.

03 · Preparazione

Valuta, compila e pubblica.

  1. 01

    Valuta il laboratorio

    La configurazione del laboratorio genera una configurazione NixOS con nome per ogni client, una configurazione separata per il controller, un ambiente di avvio da rete, i metadati di distribuzione per Colmena e un pacchetto di installazione autonomo.

  2. 02

    Compila sul controller

    Gli input fissati e la configurazione condivisa producono ogni sistema client con tutte le sue dipendenze, più gli artefatti di avvio PXE e l’installer remoto USB/SSH, uguale per qualsiasi computer di destinazione.

  3. 03

    Pubblica sulla rete locale

    Harmonia espone i percorsi firmati dello store Nix. PXE pubblica la sua piccola catena di avvio; USB/SSH trasferisce un helper verificato nella ISO ufficiale di NixOS. I client usano in locale risultati già pronti, invece di risolverli e compilarli da Internet.

04 · Installazione da rete

Due strade per un’installazione locale.

PXE è consigliato quando le macchine sono molte. USB/SSH serve per una singola macchina, identificata di persona, senza avvio da rete. Nessuno dei due è una normale distribuzione, ed entrambi sostituiscono il disco di destinazione, scelto e confermato esplicitamente.

Il Wi-Fi potrebbe non essere compatibile con PXE, a seconda di hardware, firmware e configurazione di rete. USB/SSH può usare Ethernet o Wi-Fi: il controller deve raggiungere il client live tramite SSH e il client deve raggiungere la cache firmata.

Segui il percorso PXE
  1. 01
    DHCP + ProxyDHCP

    Individua il servizio di avvio

    Il server DHCP della scuola continua ad assegnare gli indirizzi. Il processo dnsmasq di Nixorium risponde solo alla richiesta di avvio da rete e indirizza il firmware UEFI verso il controller.

  2. 02
    TFTP

    Passa a iPXE

    Il firmware riceve un piccolo eseguibile UEFI iPXE. iPXE riceve poi lo script di avvio generato dallo stesso controller.

  3. 03
    HTTP

    Carica l’ambiente di installazione

    Lo script di avvio scarica via HTTP il kernel NixOS e il ramdisk iniziale già preparati. Il ramdisk contiene il sorgente dell’installer specifico di questa distribuzione.

  4. 04
    Disko + NixOS

    Installa la postazione scelta

    L’operatore identifica il PC e conferma il disco di destinazione. Disko applica lo schema UEFI e Btrfs dichiarato; NixOS installa la configurazione di quel PC usando i percorsi firmati serviti da Harmonia.

  5. 05
    Disco locale

    Lascia l’installer di rete

    Dopo l’installazione la postazione si avvia dal proprio disco. PXE è la via d’ingresso per installare e ricreare il sistema, non serve a ogni avvio normale.

Segui il percorso con la ISO ufficiale di NixOS via SSH
  1. 01
    ISO ufficiale di NixOS

    Avvia in locale ed esponi una sessione live

    L’operatore avvia NixOS 26.05 (Minimal o Graphical) in modalità UEFI, si collega via Ethernet o Wi-Fi, imposta una password temporanea e legge sulla console fisica l’IP e l’impronta Ed25519 della sessione live.

  2. 02
    Identità SSH fissata

    Associa identità fisica e logica

    Il controller controlla proprio quell’impronta prima di autenticarsi con la password, installa una chiave valida solo per questa operazione e associa alla sessione live l’identità di un client configurato.

  3. 03
    Cache Harmonia firmata

    Prepara il sistema esatto

    Il controller compila la closure selezionata. Il client live accetta solo percorsi firmati da quel controller e non ripiega su Internet.

  4. 04
    Disko + NixOS

    Rivedi e sostituisci un disco

    Il supporto di avvio viene escluso. L’operatore sceglie esplicitamente un disco idoneo e conferma un riepilogo legato alla sessione fisica, al computer logico, alla revisione e al disco.

  5. 05
    Riavvio e verifica separati

    Avvia il sistema installato

    Al termine dell’installazione l’operatore rimuove la chiavetta USB o ne abbassa la priorità di avvio, autorizza a parte il riavvio e verifica il computer installato e la revisione esatta del sistema. Le credenziali Wi-Fi della sessione live non vengono copiate: prepara la connessione del sistema installato prima della verifica.

Il client non contatta Internet in nessuno dei due percorsi.

Gli artefatti PXE, o l’helper remoto, e tutti i percorsi firmati dello store Nix arrivano dal controller attraverso il traffico locale consentito. Il controller ha comunque bisogno di Internet per l’installazione iniziale e per i nuovi input; Nixorium non si autentica ai captive portal e non aggira le regole della rete.

05 · Aggiornamenti del sistema

Distribuisci con Colmena.

Una volta installata la postazione, i normali aggiornamenti del sistema la raggiungono via SSH al suo indirizzo statico di laboratorio. Non ripetono l’installazione del disco, né con PXE né con USB/SSH.

  1. 01ModificaModifica o aggiorna la configurazione del laboratorio
  2. 02CompilaGenera i sistemi selezionati sul controller
  3. 03DistribuisciPubblica i percorsi firmati dello store tramite Harmonia
  4. 04ApplicaColmena raggiunge un client o il gruppo del laboratorio via SSH
  5. 05AttivaNixOS registra la nuova generazione del sistema

La configurazione del controller si applica a parte. Poi l’operatore sceglie uno o più client configurati; conviene provare prima su una postazione rappresentativa.

06 · Componenti

Componenti e responsabilità.

Nixorium installa e configura questi componenti come parte della gestione del laboratorio.

Sugli schermi stretti scorri di lato per leggere tutte le colonne. Puoi anche selezionare la tabella e usare i tasti freccia.

ComponenteCompito in NixoriumFase
Nix + NixOS Fissa gli input, valida i moduli, compila sistemi completi e conserva le generazioni attivate.Definizione e compilazione
Sistema di moduli NixOS + mkLab Valida la configurazione del laboratorio e genera le configurazioni di controller, client, avvio da rete, installer e distribuzione.Valutazione
Builder e store Nix Compila sul controller le closure dei sistemi e gli artefatti di avvio, a partire dalla definizione fissata.Compila
Harmonia Distribuisce i percorsi firmati dello store Nix dal controller ai client sulla rete locale.Installazione e aggiornamento
dnsmasq, TFTP, HTTP e iPXE Indirizza i client UEFI al kernel e al ramdisk già preparati senza sostituire il DHCP dell’istituto.Installa
OpenSSH + installer remoto Verifica una ISO ufficiale di NixOS, associa la sua impronta fisica a un client configurato e avvia un’installazione già controllata, con ricevute che sopravvivono a un riavvio.Installa
Disko Applica lo schema dichiarato di partizioni e filesystem al disco di installazione confermato dall’operatore.Installa
Colmena + OpenSSH Raggiunge un client o il gruppo del laboratorio e coordina l’attivazione remota dal controller.Aggiorna
Generazioni NixOS Registra le configurazioni di sistema attivate, così una generazione precedente resta disponibile per tornare indietro. Free disk space tiene le dieci più recenti su ogni computer e il menu di avvio ne mostra al massimo dieci.Attivazione
age Cifra con una passphrase il backup del controller: configurazione con cronologia Git, chiavi private e chiavi dei computer attendibili.Backup
Vista d’aula Mostra al docente gli schermi degli studenti e gestisce blocco, condivisione dello schermo e consegna dei file attraverso l’accesso SSH già esistente; non installa né distribuisce sistemi NixOS.Gestione dell’aula
07 · Limiti

Limiti di rete e di fiducia.

Connessione del controller
Internet serve per il bootstrap e per i nuovi input software non ancora disponibili.
Connessione dei client
Per l’installazione e gli aggiornamenti già preparati non serve un accesso diretto a Internet; serve l’accesso al controller sulla rete locale consentita.
Indirizzi PXE
Gli artefatti di avvio generati puntano all’indirizzo DHCP del controller. Se cambia prima di una sessione di avvio da rete, vanno ricostruiti.
Identità USB/SSH
L’operatore deve essere presente per avviare la ISO ufficiale di NixOS, leggere sullo schermo l’IP e l’impronta Ed25519, scegliere il disco e gestire il supporto di installazione.
Aggiornamenti ordinari
Colmena raggiunge i client installati via SSH, ai loro indirizzi statici di laboratorio.
Avvio e disco
L’installer standard attuale richiede x86_64 UEFI e cancella il disco di destinazione confermato dall’operatore.
Fiducia e controllo
Firme della cache, confronto delle impronte davanti al PC, chiavi SSH, configurazione del laboratorio, scelta dei computer, controllo del disco e distribuzione restano responsabilità dell’operatore.
Limite delle credenziali
I client ricevono il materiale pubblico autorizzato. Le credenziali private della cache e di SSH restano sul controller, fuori dal codice pubblico versionato.
Backup del controller
Il backup cifrato contiene tutto quello che serve per sostituire il controller senza reinstallare i client. Tienilo separato dalla sua passphrase: chi li ha entrambi può gestire il laboratorio.
Monitoraggio dell’aula
L’agente della vista d’aula gira nella sessione dello studente su un socket privato e non apre porte di rete. Il controller lo raggiunge solo attraverso l’accesso SSH già esistente, e GNOME mostra il suo avviso di condivisione mentre lo schermo viene catturato.