ImmichFrame vs Immich Kiosk: quale cornice digitale fa per il tuo setup?

L’anno scorso abbiamo scritto di Immich Kiosk e ImmichFrame. Da allora entrambi i progetti hanno pubblicato molte release. La domanda che riceviamo dagli utenti è cambiata insieme a loro. Prima era «si può fare?» Ora è «quale scelgo?»
In superficie fanno la stessa cosa. Entrambi si collegano al tuo server Immich con una chiave API e mostrano le tue foto a schermo intero su un display da qualche parte in casa. Entrambi sono progetti della community, non affiliati a Immich. Entrambi funzionano con un account PixelUnion esattamente come con un server self-hosted: puntali su https://<username>.pixelunion.eu e dagli una chiave API.
Le liste di funzionalità si sovrappongono quasi del tutto, quindi le lascerò in gran parte da parte. Quello che distingue questi due è l’architettura. Questo articolo tratta le versioni attuali: ImmichFrame v1.0.38 (14 settembre 2026) e Immich Kiosk v0.44.1 (25 settembre 2026).
Due idee diverse di cosa sia una cornice digitale
Immich Kiosk: un server, configurato tramite URL
Immich Kiosk, creato da Damon Golding, è un singolo binario Go. Usa Echo per l’HTTP e templ per i template lato server, e serve una pagina web sulla porta 3000. Questo è l’intero prodotto. Il display è un qualsiasi browser: un Raspberry Pi con Chromium in modalità kiosk, un vecchio tablet con Fully Kiosk Browser, una smart TV, un ricevitore Google Cast.
La scelta progettuale che conta: quasi ogni impostazione in config.yaml può essere sovrascritta con un parametro di query nell’URL. Un solo container Kiosk può gestire ogni schermo della casa, ciascuno con il proprio comportamento:
http://kiosk.local:3000/?album=ALBUM_ID&layout=splitview&transition=cross-fade
http://kiosk.local:3000/?person=PERSON_ID&show_time=true&image_fit=cover
Il tablet in cucina mostra l’album di famiglia con un orologio. Lo schermo nel corridoio mostra le foto di una persona in verticale. Stesso server, stesso file di configurazione, URL diversi. Il rovescio della medaglia è che chiunque sulla tua rete riesca a raggiungere la pagina può cambiare ciò che mostra. Se la cosa ti dà fastidio, disable_url_queries la disattiva.
ImmichFrame: un server più app native
ImmichFrame va nella direzione opposta. Il server è in C# su ASP.NET Core con un frontend SvelteKit, distribuito come ghcr.io/immichframe/immichframe sulla porta 8080. In più, il progetto mantiene client nativi:
- Android, tramite Play Store o un APK installato manualmente, incluso un servizio salvaschermo per Android TV
- Apple TV, iPhone e iPad (iOS 17+) e Mac con Apple Silicon tramite App Store
- App desktop per Windows, macOS e Linux
- Cornici Frameo, quelle cornici Android economiche che si trovano a circa 40 $, installate tramite ADB (Android Debug Bridge)
Le app native sono il motivo per cui ImmichFrame è fatto così. Apple non consente le WebView (componenti browser integrati) su tvOS, quindi l’app per Apple TV ricostruisce la visualizzazione con controlli nativi. Su Android TV, ImmichFrame può sostituire il salvaschermo di sistema, cosa che una scheda del browser non può fare. L’app Android esegue anche un piccolo server HTTP sulla porta 53287 che accetta next, previous, pause, dim, undim e brightness?value=0.5. È quest’ultimo che colleghi a Home Assistant per abbassare la luminosità della cornice quando si spengono le luci.
Il compromesso sta nella configurazione. Vive a livello di istanza. Per quanto posso capire dalla documentazione, non esiste un equivalente degli override per URL di Kiosk, quindi due schermi con album diversi di solito significano due container o due account. Economico da far girare. Più da mantenere.
I dettagli che contano per i power user
Configurazione e stato
Kiosk è configurazione come codice. Un file YAML con uno schema JSON pubblicato per l’autocompletamento nell’editor, variabili d’ambiente per i segreti e watch_config per ricaricare in caso di modifiche. Sta in un repository Git accanto al resto dei tuoi file compose.
ImmichFrame di recente è andato nella direzione opposta. Ora include un’interfaccia di amministrazione su /admin in cui ogni impostazione, compresi gli account Immich, si modifica dal browser e viene applicata subito. Le impostazioni sono salvate in un database SQLite (immichframe.db) in /app/Config. Un Settings.yml viene importato una sola volta, al primo avvio. Dopodiché il database è la fonte di verità e le modifiche al file vengono ignorate.
Quest’ultimo punto coglierà alcuni di sorpresa. Se gestisci il tuo homelab in modo dichiarativo, la configurazione di ImmichFrame ora è uno stato di cui fare il backup, non un file su cui fare un diff. Se preferisci cliccare piuttosto che modificare YAML, è un miglioramento. Nessuno dei due approcci è sbagliato. Sono pensati per persone diverse.
Selezione dei contenuti
Entrambi coprono le basi: album, album esclusi, persone, tag, valutazioni, ricordi, preferiti, intervalli di date e video (ancora sperimentale in ImmichFrame). Le differenze stanno ai margini.
ImmichFrame è costruito attorno a più account. Ogni voce sotto Accounts ha il proprio URL del server, la propria chiave API e i propri filtri. Unisci la tua libreria a quella del tuo partner, o pesca da due server Immich separati, e la cornice li mescola in un’unica presentazione.
Kiosk va più a fondo nel filtraggio all’interno di una libreria. require_all_people mostra solo le foto in cui compaiono insieme tutte le persone indicate, proprio quello che serve per una cornice «nonni con nipoti». Ci sono excluded_people, excluded_partners, filter_exclude_faces per uno schermo di soli paesaggi, e filter_newest per limitare una fonte ai suoi elementi più recenti. Con asset_weighting attivo, un album piccolo non viene sommerso da uno grande quando combini più fonti. Kiosk supporta anche più utenti tramite immich_users_api_keys, selezionabili per schermo tramite URL.
Display e hardware
Entrambi offrono layout a schermo diviso per due foto verticali su uno schermo orizzontale, sfondi sfocati, zoom e panoramica in stile Ken Burns, un orologio e il meteo di OpenWeatherMap. ImmichFrame aggiunge sovrapposizioni del calendario da qualsiasi feed ICS (iCalendar) tramite Webcalendars, il che lo rende una discreta dashboard da cucina.
Kiosk ha più opzioni per l’hardware sempre acceso. burn_in_interval abbassa periodicamente l’opacità dell’interfaccia per proteggere i pannelli OLED dal burn-in. sleep_start e sleep_end spengono lo schermo di notte. offline_mode mette in cache locale un insieme di elementi, così una cornice con un Wi-Fi instabile continua a funzionare. optimize_images ridimensiona sul server, così un Pi Zero non deve decodificare un file da 48 MP ogni 60 secondi.
Con l’hardware Frameo, tieni basse le aspettative. Questi dispositivi girano su Android 6. A meno di aggiornare la WebView di sistema, cosa descritta nella documentazione di ImmichFrame e che richiede di rimontare /system come root, perdi lo schermo diviso, il supporto HEIC (il formato foto dell’iPhone) e i video. Funziona. È un buon modo per dare una seconda vita a una cornice da 40 $. È anche un progetto da smanettoni, non un regalo che si configura in dieci minuti.
Sicurezza
Una cornice digitale resta tutto il giorno sulla tua rete con una chiave per l’intera libreria di foto. La maggior parte delle persone la configura una volta e non la guarda mai più. Questa combinazione merita qualche minuto di riflessione.
- Usa una chiave API dedicata per ogni cornice. Immich ti permette di creare chiavi API con permessi limitati. Dai alla cornice solo ciò che le serve e revoca la chiave se il dispositivo viene perso o sostituito. ImmichFrame supporta anche
ApiKeyFile, così la chiave può arrivare da un secret Docker invece che da un file di configurazione. - Attenzione all’accesso in scrittura. L’overlay «more info» di Kiosk ha pulsanti like e hide che aggiungono ai preferiti, taggano o archiviano elementi in Immich. Utile, ma significa che la chiave ha bisogno di permessi di scrittura. Se non usi quei pulsanti, disattivali e mantieni la chiave in sola lettura.
- Proteggi la cornice stessa. Nessuno dei due server dovrebbe stare esposto su internet. Kiosk ha un’opzione
passwordedisable_url_queries. ImmichFrame ha unAuthenticationSecretper i client e una password di amministrazione separata per/admin. La documentazione di ImmichFrame afferma che l’interfaccia di amministrazione mostra le chiavi API e le trasmette in chiaro, quindi mettila dietro HTTPS se è raggiungibile dall’esterno della tua rete locale. - Sappi cosa esce dalla tua rete. Con PixelUnion, le tue foto viaggiano dai nostri server in Europa al container a casa tua e poi al tuo schermo. Nulla passa da un cloud di terze parti. L’eccezione è il meteo: entrambi i progetti inviano le tue coordinate all’API di OpenWeatherMap. Una piccola fuga di dati, ma reale.
Anche le licenze sono diverse. Kiosk è AGPL-3.0, ImmichFrame è GPL-3.0. Per l’uso personale non cambia nulla. L’AGPL copre anche il software offerto tramite rete, quindi se pensi di far girare uno dei due come servizio ospitato per altri, leggi prima le licenze.
Quindi, quale dovresti usare?
Scegli Immich Kiosk se i tuoi display sono browser (Raspberry Pi, tablet a parete, smart TV) e vuoi che un solo container li gestisca tutti. È adatto a chi tiene il proprio homelab in YAML e Git, vuole filtri precisi e tiene alla protezione dal burn-in, agli orari di sospensione e alla cache offline su hardware sempre acceso.
Scegli ImmichFrame se vuoi app native, in particolare per Apple TV, un salvaschermo Android TV o una cornice Frameo riadattata. È adatto alle famiglie che vogliono unire più account Immich in un’unica presentazione, o che preferiscono gestire le impostazioni da un’interfaccia web anziché da un file di testo.
Molti usano entrambi. Kiosk è intorno alle 1,7k stelle su GitHub, ImmichFrame intorno alle 2,4k, ed entrambi pubblicano release ogni due o tre settimane con canali Discord attivi sul server di Immich. Due maintainer che risolvono lo stesso problema in modi diversi tendono a migliorare entrambi i progetti. È così che dovrebbe funzionare l’open source, e succede meno spesso di quanto si pensi.
Nessuno dei due ti dirà qualcosa sulle tue foto che non sai già. Quello che fanno è portare quelle foto da un server a una parete, dove le guardi davvero. Vale un pomeriggio di smanettamenti.
Se preferisci dedicare quel pomeriggio alla cornice anziché alla gestione di Immich, è quello che facciamo noi. Teniamo il server aggiornato e con backup su infrastruttura europea. Tu ricevi una chiave API a cui puntare la tua cornice.