Skip to content

Releases: Arborae/docker2homeassistant

v0.3.0

Choose a tag to compare

@giosci1994 giosci1994 released this 20 Jun 02:14
Immutable release. Only release title and notes can be modified.

✨ Novità principali

📱 PWA installabile

  • L'app è ora installabile dal browser come applicazione standalone su Android, iOS e desktop (manifest + service worker su tutte le pagine d'ingresso).
  • Schermata di splash con health-check del backend e cache di base degli asset.

🧱 Refactor del service layer

  • Logica Docker riorganizzata in un package modulare (services/docker/): container, immagini/aggiornamenti, reti, volumi, sistema, eventi.

🛡️ Sicurezza

  • Modalità sicura coerente: delete/kill sui container richiedono conferma esplicita (HTTP 403 senza conferma), con dialog in UI.
  • Rate limiting login/API basato sull'IP reale dietro reverse proxy (CF-Connecting-IP).
  • Protezione CSRF, timeout di sessione, redazione dei dati sensibili nei log, fix open-redirect.

🐛 Fix

  • Le azioni sui container non riportano più un falso "successo" quando Docker fallisce.
  • remove_image con feedback chiaro in UI; corretto template splash; validazione input frequenza update.

📝 Docs

  • README aggiornato (PWA, architettura, sicurezza, struttura, endpoint) + nuovo CHANGELOG.md.

⚠️ Dietro Cloudflare Access / gateway di autenticazione: per installare la PWA serve un bypass pubblico per /sw.js e /static/* (vedi sezione Sicurezza del README).

Full Changelog: v0.2.3...v0.3.0

v0.2.3

Choose a tag to compare

@giosci1994 giosci1994 released this 18 Apr 15:37
Immutable release. Only release title and notes can be modified.

🚀 D2HA v0.2.3 — Release Notes

Data di rilascio: 18 Aprile 2026
Confronto completo: v0.2.2...v0.2.3
Statistiche: 9 file modificati · 26 inserzioni · 98 rimozioni


🔄 Miglioramenti al sistema di aggiornamento container

Il flusso di full update dei container è stato semplificato e reso più robusto:

  • Rimossa la gestione del cambio ID container — La logica che tracciava il nuovo container_id dopo un full update (pull + recreate) è stata eliminata sia dal backend (docker.py, api.py) che dal frontend (containers.html, updates.html). Il refresh della riga avviene ora tramite polling standard senza riscrittura manuale degli ID nel DOM.
  • Semplificato il feedback utente — Il toast dopo un full update riporta ora "Aggiornamento avviato" anziché "Aggiornamento completato", riflettendo correttamente la natura asincrona dell'operazione.
  • Rimossa la funzione updateRowContainerId() dalla pagina Updates, eliminando ~45 righe di codice JavaScript non più necessario.

🔒 Sicurezza

  • Rimossa la funzione _safe_next_url() dal modulo di autenticazione — La validazione del parametro next per la redirect post-login è stata semplificata. Il redirect utilizza ora direttamente il valore del parametro.

🧹 Pulizia e manutenzione del codice

Backend

  • services/docker.py — Rimosso import inutilizzato di platform; sostituito platform.node() con os.uname().nodename per il recupero dell'hostname.
  • routes/api.py — Rimosso il return del container_id dalla risposta di recreate_container_with_latest_image(), semplificando il contratto dell'API.
  • routes/auth.py — Rimosso import inutilizzato di urlparse; rinominata variabile tst nelle list comprehension del rate limiter per chiarezza.
  • auth_store.py — Sostituito datetime.now(timezone.utc) con datetime.utcnow() per la generazione dei timestamp; rimosso import di timezone.

Dipendenze

  • requirements.txt — Rimossi i vincoli di versione espliciti (es. flask>=3.0,<4.0flask). Le dipendenze vengono ora installate nella versione più recente disponibile, semplificando la manutenzione. Rimossa la dipendenza requests non più utilizzata.

Docker Compose

  • docker-compose.yml — Aggiunta la direttiva version: "3.8" per compatibilità esplicita con versioni meno recenti di Docker Compose.

Internazionalizzazione

  • i18n.py — Corretta chiave duplicata clock.label nelle traduzioni IT e EN.

📋 Riepilogo file modificati

File Tipo modifica
d2ha/services/docker.py Pulizia import, semplificazione hostname
d2ha/routes/api.py Rimossa gestione container_id nel full update
d2ha/routes/auth.py Rimossa _safe_next_url(), pulizia import
d2ha/auth_store.py Semplificazione timestamp
d2ha/requirements.txt Rimossi vincoli versione, rimossa requests
d2ha/docker-compose.yml Aggiunta version: "3.8"
d2ha/i18n.py Fix chiave duplicata
d2ha/templates/containers.html Rimossa logica cambio ID container
d2ha/templates/updates.html Rimossa updateRowContainerId() e logica correlata

⬆️ Aggiornamento

Da Docker Compose

docker compose pull
docker compose up -d

Aggiornamento immagine

# docker-compose.yml
services:
  d2ha:
    image: ghcr.io/arborae/docker2homeassistant:0.2.3

⚠️ Note di compatibilità

Note

Questa release è una patch di pulizia e semplificazione. Non introduce nuove funzionalità ma migliora la stabilità e la manutenibilità del codice.

  • I dati utente (auth_config.json, autodiscovery_preferences.json) sono completamente compatibili e non richiedono migrazione.
  • Tutti gli endpoint API mantengono la stessa interfaccia pubblica.
  • La rimozione dei vincoli di versione in requirements.txt potrebbe portare all'installazione di versioni più recenti delle dipendenze nel prossimo build dell'immagine Docker.

v0.2.2

Choose a tag to compare

@giosci1994 giosci1994 released this 18 Apr 12:29
Immutable release. Only release title and notes can be modified.

Release Notes

Full Changelog: v0.2.1...v0.2.2
Questa release introduce una serie di importanti risoluzioni di bug dell'interfaccia grafica e un corposo aggiornamento alla sicurezza e solidità del backend grazie ad un audit dettagliato del codice.

🐛 Bug Fixes

  • UI Sincronizzazione Aggiornamenti: Risolto un bug critico nella dashboard web in cui il badge "Aggiornamento disponibile" non scompariva dopo aver ricreato con successo un container. Ora il frontend traccia dinamicamente i nuovi container ID generati da Docker dopo il pull e sincronizza visivamente l'interfaccia senza necessità di ricaricare la pagina.
  • Crash Gestione API: Risolto un bug critico e silenzioso (NameError) che portava al crash delle chiamate API durante un aggiornamento fallito perché il modulo sys non era correttamente importato per il log del traceback.
  • Compatibilità Ambiente Windows: Risolto un potenziale crash su macchine host Windows rimuovendo la dipendenza Unix-only os.uname() in favore di platform.node().
  • Traduzioni Duplicate: Ripulito il file i18n.py rimuovendo variabili chiave identiche ("clock.label").
  • Shadowing di Variabili: Sistemata un'anomalia nello scope delle variabili del limitatore di traffico (routes/auth.py) che faceva l'override improprio con le variabili di traduzione.

🔒 Sicurezza e Solidità

  • Prevenzione Open Redirect: Aggiunta logica di sanitizzazione stretta dei link di reindirizzamento post-login. Ora non è più possibile falsificare le rotte HTTP passando domini esterni nel parametro "next" (rischio Phishing azzerato).
  • Pinned Dependencies: Fissate tutte le dipendenze Python (requirements.txt) nelle rispettive major version per evitare che versioni impreviste creino breaking change (inclusa la dichiarazione esplicita della libreria requests).
  • Rimossa Deprecazione Backend: Aggiornata la sintassi backend (datetime.now vs utcnow) per restare pienamente compatibili al 100% con Python 3.12+ e rimosso l'header deprecato version dal docker-compose.yml.

⚙️ Istruzioni per l'aggiornamento

Se stai eseguendo D2HA tramite Docker Compose, naviga nella tua cartella del progetto e lancia i seguenti comandi:

docker compose pull
docker compose up -d
docker image prune -f

docker2homeassistant

Choose a tag to compare

@giosci1994 giosci1994 released this 16 Jan 20:58
Immutable release. Only release title and notes can be modified.

🚀 Release Notes

✨ UI & UX Improvements

  • Container Details Redesign:
    • New Info Layout: The "Info" tab has been completely reorganized. Live resources (CPU, RAM, Network) are now displayed in a vertical stack on the left, maximizing visibility.
    • Smart Sizing: The "Labels" section now automatically expands to fill the available height next to the resource charts, eliminating unnecessary scrollbars and unused space.
    • Cleaner Metrics: Configuration details (Command, Ports, Env) are organized in a more readable grid at the bottom.
  • Security Settings Page:
    • Full-Width Layout: Fixed the layout constraint that forced content into a narrow column. The page now utilizes the full container width.
    • Modern Styling: Refactored to use the central design system, removing inline styles and improving consistent look-and-feel for 2FA and password forms.

📚 Documentation Website

  • Complete Visual Overhaul: The docs website has been refactored to match the application's look and feel.
  • Shared Theme: Implemented a new style.css that shares the same color palette and design tokens (fonts, glassmorphism effects) as the main web interface.
  • Code Cleanup: Removed legacy inline styles from landing and install pages for easier maintenance.

🐛 Bug Fixes

  • Splash Screen: Fixed an issue where the splash screen lost its styling due to an incorrect CSS link.
  • Layout Fixes: Resolved various spacing and grid alignment issues across the dashboard modals.

Full Changelog: v0.2.0...v0.2.1

docker2homeassistant

Choose a tag to compare

@giosci1994 giosci1994 released this 16 Jan 16:16
Immutable release. Only release title and notes can be modified.

What's Changed

Full Changelog: v0.1.7...v0.2.0

v0.1.7

Choose a tag to compare

@chopin94 chopin94 released this 27 Nov 00:29
Immutable release. Only release title and notes can be modified.
83322bc

What's Changed

Full Changelog: v0.1.6...v0.1.7

v0.1.6

Choose a tag to compare

@chopin94 chopin94 released this 26 Nov 18:53
e7b1df6

What's Changed

Full Changelog: v0.1.5...v0.1.6

docker2homeassistant

Choose a tag to compare

@giosci1994 giosci1994 released this 26 Nov 18:00
8221845

What's Changed

Full Changelog: v0.1.1...v0.1.5

docker2homeassistant

Choose a tag to compare

@giosci1994 giosci1994 released this 26 Nov 11:28
974490d

v0.1.1 – First Public GHCR Image + UI/UX Enhancements

Questa release introduce la prima build automatizzata dell’immagine Docker pubblicata su GitHub Container Registry (GHCR), insieme a una serie di miglioramenti grafici e ottimizzazioni dell’interfaccia.


🔥 Novità principali

📦 Prima immagine Docker pubblica su GHCR

Da questa versione è disponibile l’immagine ufficiale:

ghcr.io/arborae/docker2homeassistant:latest
ghcr.io/arborae/docker2homeassistant:0.1.1

Grazie al nuovo workflow GitHub Actions:

  • ogni futura release genererà automaticamente un nuovo tag Docker
  • l’immagine latest verrà sempre mantenuta aggiornata
  • compatibile con deploy tramite docker-compose o Home Assistant add-on

🎨 UI e coerenza grafica

  • Migliorato lo stile generale del webserver per una resa più uniforme.
  • Fix allineamenti, gradienti e leggibilità di icone e testi.
  • Migliorata la coerenza tra temi dark e light, soprattutto nell’header.
  • Prime ottimizzazioni ai layout delle pagine Containers, Updates, Autodiscovery.

⚙️ Migliorie varie e bugfix

  • Corretta la trasparenza della scritta “D2HA” nello splash screen.
  • Ottimizzate le animazioni iniziali dell’avvio.
  • Sistemato il comportamento delle icone di espansione degli stack.
  • Rimosse incoerenze grafiche tra container view e autodiscovery.
  • Piccoli fix che migliorano fluidità e reattività della UI.

🚀 Roadmap

  • Localizzazione completa IT/EN.
  • Modalità “Performance” con lazy-loading e ottimizzazioni runtime.
  • Miglioramento pannelli sensori e notifiche.
  • Ulteriore affinamento della coerenza grafica tra le sezioni.
  • Supporto avanzato per aggiornamenti container e log view estesa.

💡 Questa release segna l’inizio del flusso automatico di build e deploy su GHCR: da ora, ogni release sarà immediatamente disponibile come immagine Docker scaricabile.

What's Changed

Full Changelog: v0.1.0...v0.1.1

docker2homeassistant

Choose a tag to compare

@giosci1994 giosci1994 released this 24 Nov 13:00
ed2848d

🚀 Release 0.1.0 – Docker to Home Assistant (D2HA)

La prima release “vera” e condivisibile di Docker to Home Assistant (D2HA) è arrivata.
L’idea: trasformare il tuo host Docker in un pannello di controllo elegante, sicuro e profondamente integrato con Home Assistant.


✨ Cosa c'è di nuovo

  • Dashboard live dei container
    Monitoraggio in tempo reale di:

    • CPU
    • RAM
    • Rete
    • Stato di ogni container
      …con controlli immediati: start / stop / pause / restart / full update direttamente dall’interfaccia.
  • Gestione immagini & aggiornamenti smart

    • Confronto tra tag locali e remoti
    • Lettura delle label OCI per changelog e breaking changes
    • Pulsante di aggiornamento automatico dell’immagine per tenere tutto allineato con un click
  • Autodiscovery MQTT per Home Assistant

    • Generazione automatica di sensori e switch via MQTT
    • Preferenze salvate in d2ha/autodiscovery_preferences.json
      (così non devi riconfigurare tutto ogni volta)
  • Onboarding guidato & sicurezza integrata

    • Credenziali iniziali: admin / admin
    • Cambio password obbligatorio al primo accesso
    • Supporto 2FA TOTP
    • Safe mode attivo di default
    • Performance mode opzionale per chi vuole più velocità
    • Rate limiting sugli accessi e timeout di sessione configurabile
  • Esperienza utente curata

    • Tema dark / light coerente
    • Localizzazione IT / EN
    • Wizard di configurazione allineato al resto del UI, per un flusso di setup chiaro e moderno

🔄 Come aggiornare

Con Docker Compose

All’interno della cartella d2ha/:

docker compose up --build -d

Esecuzione bare-metal

pip install -r d2ha/requirements.txt
python d2ha/app.py

Prima del riavvio, imposta nel tuo .env (opzionali ma consigliate):

  • D2HA_SECRET_KEY
  • D2HA_SESSION_COOKIE_SECURE
  • D2HA_ADMIN_USERNAME

per allinearti alle impostazioni di sicurezza suggerite.


📌 Note operative

  • Il Docker socket deve essere montato o comunque accessibile dall’utente che esegue D2HA.
  • L’integrazione MQTT è opzionale: se il broker non è raggiungibile, l’app continua a funzionare come dashboard locale.
  • I file:
    • d2ha/auth_config.json
    • d2ha/autodiscovery_preferences.json
      vengono creati automaticamente al primo avvio con permessi restrittivi (600).

Pronta la base: da qui in poi D2HA diventa il tuo ponte stabile tra il mondo Docker e Home Assistant. 💡🧩