| @@ -8,19 +8,20 @@ CMS per portali captive: gestione di card informative, gallerie, flip-book e con | |||||
| 1. [Prerequisiti di sistema](#prerequisiti-di-sistema) | 1. [Prerequisiti di sistema](#prerequisiti-di-sistema) | ||||
| 2. [Avvio](#avvio) | 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`) | ## 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`. | Tutte le impostazioni globali sono **flag build-time** nel file [`lib/config.ts`](lib/config.ts). Dopo ogni modifica serve ricostruire: `npm run build`. | ||||