
La gestione centralizzata dei desktop virtuali rappresenta un elemento strategico per ottimizzare risorse, sicurezza e manutenzione in ambienti IT complessi.
IsardVDI si propone come soluzione open source basata su container, progettata per offrire un’infrastruttura VDI leggera, scalabile e facilmente integrabile in contesti educativi, aziendali o di laboratorio.
In questo articolo verranno illustrati i passaggi per l’installazione e configurazione base di IsardVDI in modalità All-In-One, ovvero l’esecuzione dell’intero stack (frontend, backend e hypervisor) su un unico nodo.
Questa modalità è particolarmente indicata per test, ambienti pilota o scenari a bassa scala, e consente di valutare rapidamente le funzionalità principali della piattaforma senza la necessità di una distribuzione multi-nodo.
Verranno descritti i prerequisiti hardware e software, le fasi di setup dei container e le configurazioni iniziali indispensabili per avviare i primi desktop virtuali.
PREREQUISITI
Sistema operativo: Linux 64bit (es. Ubuntu 20.04/22.04 LTS, Debian 11/12, CentOS/AlmaLinux 8/9).
- CPU: processore con supporto VT-x/AMD-V (virtualizzazione hardware).
- RAM: minimo 8 GB (meglio 16+ se vuoi più desktop simultanei).
- Disco: almeno 100 GB (SSD raccomandato).
- GPU (opzionale): utile per accelerazione grafica (es. SPICE con passthrough).
- Rete: connessione stabile e accesso TCP/IP ai client.
Software:
- docker e docker-compose
- qemu-kvm e libvirt (per l’hypervisor)
- bridge-utils (se usi bridge networking)
ATTENZIONE: Per verificare che la virtualizzazione sulla CPU sia attiva eseguire il comando:
0 |
egrep '(vmx|svm)' /proc/cpuinfo
|
Dovremmo visualizzare un output simile al seguente:
0 |
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat vnmi md_clear flush_l1d arch_capabilitiesvmx flags : vnmi invvpid ept_x_only ept_ad tsc_offset vtpr mtf ept vpid unrestricted_guest ple ept_mode_based_execflags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves arat vnmi md_clear flush_l1d arch_capabilitiesvmx flags : vnmi invvpid ept_x_only ept_ad tsc_offset vtpr mtf ept vpid unrestricted_guest ple ept_mode_based_exec
|
INSTALLAZIONE DI DOCKER/COMPOSE
La prima cosa da fare è installare Docker/Compose con i seguenti comandi:
0 |
sudo apt-get remove -y docker docker-engine docker.io containerd runc curlsudo apt-get updatesudo apt-get install -y ca-certificates curl gnupg lsb-releasesudo mkdir -m 0755 -p /etc/apt/keyringscurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get updatesudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl enable --now docker
|
Verificare la versione del docker/compose installata con il seguente comando:
0 |
docker --version && docker compose version
|
Dovremmo visualizzare un output simile al seguente:
0 |
Docker version 28.3.3, build 980b856Docker Compose version v2.39.1
|
INSTALLAZIONE DI ISARDVDI ALL IN ONE
A questo punto procedere con l’installazione di Isard con i seguenti comandi:
0 |
git clone https://gitlab.com/isard/isardvdicd isardvdicp isardvdi.cfg.example isardvdi.cfg./build.sh
|
Attendere che il PULL termini fino a quando dovremmo vedere un output come il seguente:
0 |
Generated the code successfullyYou have the docker-compose files. Have fun!You can download the prebuild images and bring it up:docker compose pull && docker compose up -dOr build it yourself:docker compose build && docker compose up -d
|
Eseguire quindi il comando:
0 |
docker compose pull
|
In ultimo avviare i container con il comando:
0 |
docker compose up -d
|
Attendere circa un minuto per l’inizializzazione del DB quindi da un qualsiasi browser richiamare il seguente link:
https://IP-O-FQDN-SERVER
Inserire le credenziali di default:
USER: admin
PASSWORD: IsardVDI
Quindi cliccare Login
Cliccare su Administrator quindi selezionare Profile
Cliccare Change Password
Inserire la password di default quindi due volte la nuova password e cliccare Update
DOWNLOAD DEI DOMAINS
In questa sezione è possibile scaricare delle macchine virtuali (domini) già preconfigurate, che è possibile usare come base per creare rapidamente nuovi desktop virtuali.
Per procedere al Download dei Domains cliccare su Administration dal menù in alto
Cliccare Downloads
Registrare IsardVDI cliccando sul pulsante Register with only click!
Dopo aver effettuato la registrazione dovremmo visualizzare la lista dei Domains che è possibile scaricare come mostrato nell’immagine sovrastante
Cliccare sul link Download relativo al Domain che intendiamo scaricare
Attendere il termine del Download del Domain scelto
Al termine del download dovremmo visualizzare una schermata come quella sovrastante
DOWNLOAD DEI MEDIA
Sempre dalla pagina Download è possibile procedere al Download dei Media
Da qui è possibile scaricare le ISO e i Floppy presenti
DOWNLOAD DEI VIDEO
Nella documentazione tecnica di IsardVDI è presente un’area dedicata ai video e alle conferenze
Tutti i video dovrebbero essere scaricati di Default
DOWNLOAD DEGLI OS HARDWARE TEMPLATES
Si parla di modelli di configurazione hardware già pronti per diversi sistemi operativi.
Sono file/template che definiscono le caratteristiche hardware virtuali di una VM (dominio) che vuoi creare.
In pratica dicono a virt-install (il comando che genera VM su KVM/Libvirt) quali parametri usare:
- numero di CPU
- quantità di RAM
- tipo di scheda di rete
- tipo di scheda grafica (es. QXL, virtio-gpu)
- dischi (VirtIO, IDE, SATA)
- periferiche USB o SPICE
Dovremmo vedere tutti i Templates in ordine alafabetico come mostrato nell’immagine sovrastante
DOWNLOAD DEI VIEWERS
In questa sezione parliamo di strumenti che servono a collegarsi alle macchine virtuali in modo grafico.
Scaricare il Viewer per Windows desiderato
CAMBIO CONFIGURAZIONE DA LOCALOHOST A IP O FQDN DEL SERVER
Dopo aver deploiato una VM accedere alla pagina dei Persistent Desktop e avviarla cliccando su Start
Se si prova a cliccare su VNC Browser come mostrato nell’immagine sovrastante verra aperta una pagina nel browser che punta al seguenti link:
https://localhost/viewer/noVNC/
Per poter far puntare la pagina all’IP o al nome del server è necessario eseguire le modifiche che riposrto di seguito:
Editare il file isardvdi.cfg con il comando:
0 |
nano isardvdi/isard.confisardvdi.cfg
|
Individuare la riga
0 |
DOMAIN=localhost
|
quindi sostituire localhost con l’IP o l’FDQN del Server
0 |
DOMAIN=192.168.100.174
|
Salvare e chiudere il file di configurazione.
Quindi sostituire localhost hardcoded nel docker-compose.yml con i seguenti comandi:
0 |
sudo sed -i 's/DOMAIN: localhost/DOMAIN: 192.168.100.174/g' docker-compose.ymlsudo sed -i 's/BASTION_DOMAIN: localhost/BASTION_DOMAIN: 192.168.100.174/g' docker-compose.yml
|
NOTA BENE: al posto di 192.168.100.174 inserire l’IP o l’FQDN corretto del server
Per verificare che sia tutto corretto eseguire il comando:
0 |
grep -n "DOMAIN:" docker-compose.yml
|
Dovremmo visualizzre un output simile al seguente dove mostra solo l’IP del server:
0 |
22: DOMAIN: 192.168.100.174213: DOMAIN: 192.168.100.174359: DOMAIN: 192.168.100.174420: DOMAIN: 192.168.100.174465: DOMAIN: 192.168.100.174572: API_DOMAIN: ""589: DOMAIN: 192.168.100.174607: VIDEO_DOMAIN: null783: BASTION_DOMAIN: 192.168.100.174791: DOMAIN: 192.168.100.1741069: DOMAIN: 192.168.100.1741226: DOMAIN: 192.168.100.1741242: STATS_DOMAIN: null1256: VIDEO_DOMAIN: null1360: API_DOMAIN: null1365: DOMAIN: 192.168.100.1741376: STORAGE_DOMAIN: null1446: API_DOMAIN: ""1459: DOMAIN: 192.168.100.1741565: DOMAIN: 192.168.100.1741596: API_DOMAIN: null
|
Allineare anche Nginx “default.conf” (server_name)
Nel repo di default c’è docker/static/default.conf con server_name localhost;. Aggiornarlo con il comando:
0 |
sudo sed -i 's/server_name localhost;/server_name 192.168.100.174;/' docker/static/default.conf
|
A questo punto ricostruire e riavviare tutto perché alcuni file vengono copiati in immagine con i seguenti comandi:
0 |
docker compose downdocker compose build --no-cachedocker compose up -d
|
Collegarsi alla Web Gui quindi riavviare il server e cliccare su VNC Browser
Se è andato tutto a buon fine dovremmo visualizzare la console del nostro server come mostrato nell’immagine sovrastante
VANTAGGI (PRO)
1. Open Source e gratuita
IsardVDI è distribuito come software libero sotto licenza AGPL v3.0, il che consente utilizzo commerciale, modifica, distribuzione e personalizzazione con obbligo di mantenere il codice aperto
2. Facilità di installazione
L’installazione richiede solo Docker e Docker Compose, e si può mettere in piedi il tutto con pochi comandi. Il quick‑start include anche un accesso demo via browser tramite SPICE o VNC
3. Leggero, veloce e scalabile
Progettato per essere leggero, IsardVDI consente di avviare un desktop virtuale in pochi secondi. Supporta il management dinamico di più hypervisor, permettendo lo scaling orizzontale
4. Elevata compatibilità e versatilità
Supporta sistemi operativi Windows, Linux e qualunque OS compatibile con KVM/QEMU. Permette l’uso di vari viewer tra cui SPICE, noVNC (web), RDP e Guacamole RDP
5. Funzionalità avanzate per utenti e amministratori
Per gli utenti: creazione rapida di template da desktop snapshot, interfaccia web reattiva, redirezione USB (tramite SPICE), modalità kiosk, gestione quote, permessi granulari, monitoring via Grafana ecc.
isard-vdi.github.io
Per gli amministratori: uso di hardware non proprietario, pooling di hypervisor, storage distribuito con caching smart, VLAN mapping, proxies ad alte prestazioni, cluster DB
isard-vdi.github.io
6. Utilizzo in contesti reali con budget ridotto
IsardVDI è stato utilizzato in contesti educativi (es. Escola del Treball a Barcellona) per gestire migliaia di desktop con infrastrutture economiche (hardware di recupero, NAS cluster, GPU e CPU commoditizzate)
SVANTAGGI (CONTRO)
1. Comunità e sviluppo non massicci
Secondo Open Hub, negli ultimi 12 mesi (fino ad agosto 2025) ci sono stati 1414 commit con appena 24 contributori, in calo rispetto all’anno precedente
Questo indica una comunità attiva ma non particolarmente vasta, con possibili ritardi negli aggiornamenti o nel supporto.
2. Esperienze d’uso su VM limitate
Alcuni test su hypervisor virtuali (per esempio su NethServer) hanno mostrato lentezza con immagini di dimensioni maggiori o difficoltà nella gestione di desktop pesanti: per prestazioni ottimali serve installazione su hardware reale
3. Documentazione e interfaccia non sempre “enterprise ready”
Anche se la documentazione è completa e divisa tra versioni (v14 e v15), alcune parti richiedono familiarità con Docker, reti, storage condiviso ecc. — il che può rappresentare una barriera per chi non ha competenze approfondite
4. Maturità relativa
Il progetto è attivo dal 2016 ed è ancora considerato in sviluppo; l’interfaccia e le funzionalità evolvono, ma l’esperienza segnala che si tratta di una soluzione robusta per il suo ambito, più che di un prodotto completo come soluzioni commerciali consolidate
5. Supporto e certificati
In una discussione relativa all’installazione su NethServer, è stato segnalato un certificato scaduto sul sito ufficiale, segno che alcuni aspetti di gestione e supporto potrebbero essere meno curati
CONCLUSIONE
IsardVDI è una soluzione open-source potente, leggera e versatile per il VDI particolarmente adatta a contesti educativi o strutture con budget contenuto e accesso a infrastrutture KVM.
Tuttavia, per ambienti enterprise che richiedono supporto formale, stabilità assoluta o migliori performance in ambienti virtualizzati, potrebbe essere preferibile valutare alternative più “mature” o con ecosistemi più ampi.
0 commenti