From 91fce455199b78ec3f7d0afc487435ef99b040a4 Mon Sep 17 00:00:00 2001 From: pollutri Date: Mon, 8 Jun 2026 15:16:46 +0200 Subject: [PATCH] Procedura di aggiornamento specificata nel readme --- README.md | 50 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index a46aef6..b474bdf 100644 --- a/README.md +++ b/README.md @@ -8,19 +8,20 @@ CMS per portali captive: gestione di card informative, gallerie, flip-book e con 1. [Prerequisiti di sistema](#prerequisiti-di-sistema) 2. [Avvio](#avvio) -3. [Configurazione (`lib/config.ts`)](#configurazione-libconfigts) -4. [Tipi di card](#tipi-di-card) -5. [File consentiti negli upload](#file-consentiti-negli-upload) -6. [Limiti di testo](#limiti-di-testo) -7. [Sicurezza degli input](#sicurezza-degli-input) -8. [Struttura dei dati (`data/`)](#struttura-dei-dati-data) -9. [Stato zero, rilasci e aggiornamenti del codice](#stato-zero-rilasci-e-aggiornamenti-del-codice) -10. [Backup e ripristino](#backup-e-ripristino) -11. [Factory Preset (developer)](#factory-preset-developer) -12. [Font](#font) -13. [Deploy sotto sotto-percorso (basePath) dietro Apache](#deploy-sotto-sotto-percorso-basepath-dietro-apache) -14. [Protezione dell'amministrazione (Keycloak) e routing](#protezione-dellamministrazione-keycloak-e-routing) -15. [Risoluzione problemi](#risoluzione-problemi) +3. [Aggiornamento](#aggiornamento) +4. [Configurazione (`lib/config.ts`)](#configurazione-libconfigts) +5. [Tipi di card](#tipi-di-card) +6. [File consentiti negli upload](#file-consentiti-negli-upload) +7. [Limiti di testo](#limiti-di-testo) +8. [Sicurezza degli input](#sicurezza-degli-input) +9. [Struttura dei dati (`data/`)](#struttura-dei-dati-data) +10. [Stato zero, rilasci e aggiornamenti del codice](#stato-zero-rilasci-e-aggiornamenti-del-codice) +11. [Backup e ripristino](#backup-e-ripristino) +12. [Factory Preset (developer)](#factory-preset-developer) +13. [Font](#font) +14. [Deploy sotto sotto-percorso (basePath) dietro Apache](#deploy-sotto-sotto-percorso-basepath-dietro-apache) +15. [Protezione dell'amministrazione (Keycloak) e routing](#protezione-dellamministrazione-keycloak-e-routing) +16. [Risoluzione problemi](#risoluzione-problemi) --- @@ -104,6 +105,29 @@ Per un deploy reale del CPC, oltre a far girare il processo Next servono altri t --- +## Aggiornamento + +La procedura standard per applicare un nuovo rilascio del CPC in produzione è: + +1. **Backup dei contenuti** — dall'admin: Settings → Backup & Restore → **Save backup (ZIP)**. Conserva lo zip per un eventuale rollback. (Stessa cosa via curl: `curl -O http://localhost:3000/cards/api/admin/backup`.) +2. **Aggiorna il codice sul server** — entra nella cartella del progetto e tira la nuova versione: + ```bash + cd /data/service/captive-portal-cms/captive-portal-cms + git pull + ``` +3. **Stop → rebuild → start** del demone Next: + ```bash + /conf/etc/rc.d/rc.custom stop && npm run build && /conf/etc/rc.d/rc.custom start + ``` + +Note operative: +- I contenuti in `data/` (card, configurazione del portale, media e font caricati) **non vengono toccati** dal rebuild. Il rebuild compila solo il codice; i dati restano dove sono. +- Il bootstrap automatico controlla `data/cards.txt` all'avvio: se è vuoto (es. macchina nuova) e c'è un `factory/preset.zip` nel repo, lo srotola — vedi [Factory Preset → Bootstrap automatico all'avvio](#factory-preset-developer). +- Il sito è momentaneamente offline tra lo stop e lo start (`npm run build` può richiedere fino a un minuto). +- **Se ci sono dipendenze npm nuove** tra una versione e l'altra: `npm install` deve girare **su una macchina con internet** (la produzione è offline). Su quella macchina lancia `npm install`, poi copi la cartella `node_modules` aggiornata sul server, e solo dopo fai il rebuild. + +--- + ## Configurazione (`lib/config.ts`) Tutte le impostazioni globali sono **flag build-time** nel file [`lib/config.ts`](lib/config.ts). Dopo ogni modifica serve ricostruire: `npm run build`.