
Quando si gestiscono diversi servizi self-hosted, dalla NAS al gestionale, dai container Docker agli strumenti di monitoraggio, ci si ritrova presto con una collezione disordinata di indirizzi IP, porte e bookmark sparsi tra browser e appunti.
Tenere tutto sotto controllo diventa rapidamente scomodo, soprattutto quando il numero di applicazioni cresce.
Heimdall nasce proprio per risolvere questo problema: è una dashboard leggera e open source che funge da punto d’accesso unico a tutte le applicazioni e i servizi del nostro homelab o della nostra infrastruttura.
Con un’interfaccia pulita e personalizzabile, permette di organizzare i collegamenti in un’unica pagina, aggiungere icone, e per molti servizi supportati mostra anche informazioni in tempo reale tramite appositi “enhanced links” (ad esempio lo stato di un container, lo spazio su disco di una NAS o le statistiche di un servizio).
In questa guida vedremo come installare e configurare Heimdall su Ubuntu Server 26.04, partendo dai prerequisiti fino alla prima messa in funzione della dashboard.
Affronteremo l’installazione tramite Docker, l’approccio più pulito e replicabile, e vedremo le configurazioni di base per iniziare subito a organizzare i nostri servizi in modo ordinato ed elegante.
PREREQUISITI
Server Ubuntu 26.02
Utente con diritti di sudo
METODO 1 – DOCKER (CONSIGLIATO)
Installare Docker se non presente
|
0 |
sudo apt update |
Rimuovere l’eventuale docker.io già installato e aggiungere il repo Docker:
|
0 1 2 3 4 5 |
sudo apt remove -y docker.io sudo apt update sudo apt install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc |
Aggiungere il repository con il seguente comando:
|
0 1 2 3 4 |
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update |
Installare tutto il pacchetto completo (engine + CLI + compose plugin):
|
0 1 2 3 4 5 6 |
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo systemctl enable --now docker sudo usermod -aG docker $USER newgrp docker |
Creare la struttura e il file Compose con i seguenti comandi:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
mkdir -p ~/heimdall/config cd ~/heimdall cat > compose.yaml << 'EOF' services: heimdall: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/Rome volumes: - ./config:/config ports: - 8080:80 - 8443:443 restart: unless-stopped EOF |
Verificare PUID/PGID con id e correggere se diversi da 1000. Avviare con il comando:
|
0 1 2 |
docker compose up -d docker compose logs -f |
Se è tutto OK dovremmo visualizzare il seguente ouput:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
heimdall | [migrations] started heimdall | [migrations] 01-nginx-site-confs-default: executing... heimdall | [migrations] 01-nginx-site-confs-default: succeeded heimdall | [migrations] 02-default-location: executing... heimdall | [migrations] 02-default-location: succeeded heimdall | [migrations] done heimdall | ─────────────────────────────────────── heimdall | heimdall | ██╗ ███████╗██╗ ██████╗ heimdall | ██║ ██╔════╝██║██╔═══██╗ heimdall | ██║ ███████╗██║██║ ██║ heimdall | ██║ ╚════██║██║██║ ██║ heimdall | ███████╗███████║██║╚██████╔╝ heimdall | ╚══════╝╚══════╝╚═╝ ╚═════╝ heimdall | heimdall | Brought to you by linuxserver.io heimdall | ─────────────────────────────────────── heimdall | heimdall | To support LSIO projects visit: heimdall | https://www.linuxserver.io/donate/ heimdall | heimdall | ─────────────────────────────────────── heimdall | GID/UID heimdall | ─────────────────────────────────────── heimdall | heimdall | User UID: 1000 heimdall | User GID: 1000 heimdall | ─────────────────────────────────────── heimdall | Linuxserver.io version: v2.7.6-ls351 heimdall | Build-date: 2026-06-26T20:11:47+00:00 heimdall | ─────────────────────────────────────── heimdall | heimdall | Setting resolver to 127.0.0.11 heimdall | Setting worker_processes to 2 heimdall | generating self-signed keys in /config/keys, you can replace these w ith your own keys if required heimdall | ..+......+......+...+..+......+...+.+........+...+++++++++++++++++++ ++++++++++++++++++++*........+......+.+...........+....+...+.....+.............. ....+...+......+.+..+.+...........+.........+.........+......+....++++++++++++++ +++++++++++++++++++++++++*.........+...+..+....+........+...+...+.+...+...+..... +.........+...+...............+.+..+...+....+...+........+....+................. .+...+.........+...........+..........+.....+..........+......+.....+...+....... ...+...........+.........+.......+.....+.++++++ heimdall | .+.+........+++++++++++++++++++++++++++++++++++++++*...+............ .....+...+.+...+.....+.+.....+....+...+..+++++++++++++++++++++++++++++++++++++++ *...........+.....+.......+........+.+..+...+.......+..+...+.......+...+........ +.+........+.+.....+......................+...............+...+..+.............+ ..+...+....+......+...........+....+......+...........+...+.+......+.....+...... .......+..+...+................+...+.....+...+...+....+............+...+..+...+. +......+.....+......+.........+......+...+.+....................+.+..+.+........ ...+......+.............+......+...+..+.+..................+...........+......+. ........+.++++++ heimdall | ----- heimdall | New container detected, installing Heimdall heimdall | Creating app key. This may take a while on slower systems heimdall | heimdall | INFO Application key set successfully. heimdall | heimdall | [custom-init] No custom files found, skipping... heimdall | [ls.io-init] done. |
Accedere via http://IP_SERVER:8080 (o https://IP_SERVER:8443).
Se è andato tutto a buon fine dovremmo visualizzare una schermata come quella sovrastante
Dopo aver caricato un po di applicazioni dovremmo visulizzare una schermata simile a quella sovrastante
METODO 2 – INSTALLAZIONE NATIVA CON LEMP
Heimdall è un’app Laravel/PHP. Servono PHP 8.x, un web server e SQLite.
Eseguire i seguenti comandi:
|
0 1 2 |
sudo apt update sudo apt install -y nginx php-fpm php-cli php-sqlite3 php-xml php-mbstring php-zip php-curl php-bcmath git unzip |
Scaricare l’ultima release da GitHub (controlla il tag aggiornato su github.com/linuxserver/Heimdall/releases):
|
0 1 2 3 4 5 6 |
cd /var/www sudo git clone https://github.com/linuxserver/Heimdall.git heimdall cd heimdall sudo git checkout $(git describe --tags --abbrev=0) |
Installare Composer e le dipendenze con i seguenti comandi:
|
0 1 2 3 4 |
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo composer install --no-dev --optimize-autoloader |
Configurare l’ambiente con i comandi:
|
0 1 2 3 4 5 6 |
sudo cp .env.example .env sudo php artisan key:generate sudo chown -R www-data:www-data /var/www/heimdall sudo chmod -R 755 /var/www/heimdall/storage |
Creare il virtual host Nginx in /etc/nginx/sites-available/heimdall con il comando:
|
0 |
sudo nano /etc/nginx/sites-available/heimdall |
Quindi inccolare il seguente output:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
server { listen 80; server_name _; root /var/www/heimdall/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php-fpm.sock; } } |
Verificare il path esatto del socket PHP-FPM con ls /run/php/, poi attivare e riavviare con i comandi:
|
0 1 2 3 4 |
sudo ln -s /etc/nginx/sites-available/heimdall /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx |
Accedere via http://IP_SERVER.
Se è andato tutto a buon fine dovremmo visualizzare una schermata come quella sovrastante
Dopo aver caricato un po di applicazioni dovremmo visulizzare una schermata simile a quella sovrastante
PRO E CONTRO
Pro
Semplicità d’uso — Interfaccia molto intuitiva, aggiungere applicazioni richiede pochi clic. Adatto anche a chi è alle prime armi con il self-hosting.
Leggero — Consuma poche risorse, gira senza problemi anche su hardware modesto come un Raspberry Pi o una piccola VM.
Enhanced links — Per diversi servizi popolari (Pi-hole, Portainer, Nextcloud, Sonarr/Radarr, ecc.) mostra statistiche in tempo reale direttamente sulla tile, non solo un semplice collegamento.
Estetica curata — Sfondi personalizzabili, tile con icone, layout pulito. Visivamente è una delle dashboard più gradevoli.
Setup rapido — Con Docker è operativo in pochi minuti, configurazione persistente in un singolo volume.
Open source e gratuito — Mantenuto attivamente, immagine ufficiale curata da LinuxServer.io.
Contro
Solo bookmark e widget base — Non è un dashboard “data-driven” avanzato. Se cerchi grafici complessi, aggregazione di metriche o widget altamente configurabili, resta limitato.
Catalogo enhanced links limitato — Il numero di integrazioni native è relativamente ristretto e cresce lentamente rispetto ad alternative.
Nessun auto-discovery — Ogni applicazione va aggiunta manualmente. Non rileva automaticamente i container Docker in esecuzione (a differenza di alternative come Homepage o Dashy).
Configurazione non dichiarativa — Tutto si gestisce dalla GUI; non esiste un file di configurazione YAML versionabile. Poco comodo se vuoi un approccio “as code” o replicare il setup tra più ambienti.
Sviluppo lento — Il progetto è stabile ma il ritmo di rilascio di nuove funzionalità è piuttosto contenuto.
Multi-utente assente — Nessuna gestione di utenti o permessi: è pensato per uso personale/singolo, non per team con viste differenziate.
IN SINTESI
Heimdall è una scelta eccellente se vuoi una dashboard bella, semplice e leggera per organizzare i tuoi servizi senza complicazioni. Se invece cerchi configurazione dichiarativa, auto-discovery dei container o widget di monitoraggio ricchi, vale la pena valutare alternative come Homepage, Dashy o Homarr.

0 commenti