Sezioni

Aggiornamento e rollback

Esegui backup, prova, aggiornamento e verifica di un'installazione Frontdoor, e torna indietro se qualcosa va storto.

In questa pagina

Frontdoor applica da solo le modifiche allo schema del database all'avvio. Un aggiornamento sicuro resta comunque una routine in cinque passi: backup, prova, aggiornamento, verifica e, se serve, rollback.

1. Backup

In Personalizza → Manutenzione, apri la pagina dei backup e scarica un backup. È un file .tar.gz con righe e schema del database, icone delle app, logo, avatar e file dei plugin, più la versione e il commit di Frontdoor che lo hanno prodotto. Vedi Backup e ripristino.

  • Spunta Escludi i log di accesso e di audit per ottenere un file più piccolo.
  • Imposta una passphrase per cifrarlo. Conserva la passphrase con cura: non si può recuperare.

Per una copia esatta del file del database, usa anche Scarica il file del database (.db) in Opzioni avanzate, che funziona mentre Frontdoor è in esecuzione. A container fermo (docker compose stop), copia anche il file SQLite dal volume, compreso frontdoor.db-wal se presente:

docker compose stop
docker cp <container>:/data/frontdoor.db ./frontdoor.db.bak

Per decifrare un backup cifrato (.enc) da riga di comando:

FRONTDOOR_BACKUP_PASSPHRASE=... npm run backup:decrypt -- <file.enc>

2. Prova (consigliata)

Da una copia della nuova versione, esegui:

npm run backup:rehearse -- <backup or .db file>

Imposta FRONTDOOR_BACKUP_PASSPHRASE per i file .enc. Il comando ricostruisce il database di origine in una cartella temporanea, esegue le migrazioni della nuova versione e stampa le modifiche allo schema, il numero di righe e i controlli di integrità. Termina con un codice diverso da zero se andrebbero perse delle righe o se il database è danneggiato.

I backup creati prima della 1.3.1 non contengono lo schema: per questi, il comando prova invece un ripristino nel nuovo schema.

Puoi anche avviare in locale la nuova immagine su una copia del database e controllare le righe di log [startup].

3. Aggiornamento

Scarica o costruisci la nuova immagine e avviala sullo stesso volume /data:

docker compose up --build

Le migrazioni vengono eseguite all'avvio. Le ricostruzioni delle tabelle avvengono dentro una transazione, quindi un aggiornamento interrotto non lascia mai una tabella mancante o copiata a metà.

Le versioni più recenti di docker-compose.yml passano al container l'intero file .env (env_file, Docker Compose 2.24 o successivo). Le variabili come CORS_ALLOWED_ORIGINS, TIMEZONE o BACKUP_MAX_UPLOAD_MB impostate nel .env ora hanno effetto. I valori elencati sotto environment mantengono la precedenza. Controlla nel .env le variabili che non intendevi applicare. Con un file compose personalizzato, aggiungi lo stesso blocco env_file oppure continua a elencare le variabili in modo esplicito.

4. Verifica

Accedi con Microsoft, apri le pagine di amministrazione e, se ENTRA_GROUP_SYNC=true, esegui Sincronizza gruppi.

5. Rollback, se serve

Avvia l'immagine precedente e ripristina il backup fatto al passo 1.

Il database

Frontdoor usa un database SQLite in modalità WAL con le chiavi esterne attive. Al primo avvio con un database vuoto, le app di esempio vengono inserite in automatico.