Pubblicazione online
Per la pubblicazione web pubblica con ottimizzazione SEO e URL puliti:
Generazione di pagine statiche
Genera pagine statiche ottimizzate per la SEO:
python3 datannur.py staticPer generare le pagine statiche e pubblicarle in un solo passaggio:
python3 datannur.py static-deployConfigurazione in data/static-make.config.json:
- domain: il tuo dominio pubblico (es.
"https://yourdomain.com") - necessario per la generazione della sitemap quandoindexSeo: true - indexSeo:
trueper consentire l'indicizzazione dai motori di ricerca,falseper aggiungere il meta tagnoindex(predefinito:false) - languages: cartelle di lingua da generare, ad esempio
["en", "fr", "de", "it"]; se impostato, le pagine statiche vengono scritte in percorsi con prefisso di lingua come/en/datasets,/fr/datasets,/de/datasetse/it/datasets - entities: per quali tipi di entità generare le pagine statiche
- routes: quali route pre-generare
Nota: questa configurazione richiede un server Apache con mod_rewrite abilitato. La generazione statica crea file HTML ottimizzati per la SEO mantenendo la piena funzionalità SPA. Nell'output statico multilingue, ogni pagina generata registra la propria lingua, così l'app idratata mantiene la stessa lingua d'interfaccia dell'HTML servito.
Modalità Apache / hosting condiviso
Il pacchetto generato include un file .htaccess per le installazioni su Apache, compresi i tipici ambienti di hosting condiviso. Supporta sia le installazioni alla radice del dominio, come https://example.org/, sia quelle in sottocartella, come https://example.org/datannur/.
L'installazione su Apache offre:
- URL puliti dell'applicazione come
/dataset/accident_route - URL statici con prefisso di lingua come
/en/dataset/accident_route,/fr/dataset/accident_route,/de/dataset/accident_routee/it/dataset/accident_routequando la generazione statica multilingue è abilitata - Pagine HTML statiche quando generate, con fallback SPA quando una pagina statica manca
- Punti di accesso API pubblici sotto
/api/, inclusa la documentazione della Raw API e le route della REST API - Endpoint del proxy LLM in PHP sotto
/api/llm/quando l'integrazione web LLM è abilitata
Per le installazioni in sottocartella, carica il contenuto del pacchetto nella directory di destinazione (ad esempio datannur/) e mantieni il file .htaccess incluso accanto a index.html. Link e asset vengono risolti rispetto a quel percorso di installazione, quindi lo stesso pacchetto può essere installato alla radice del dominio o in una sottocartella.
Modalità GitHub Pages
GitHub Pages non supporta le riscritture .htaccess di Apache. Il workflow di pubblicazione del progetto mantiene il routing hash predefinito, quindi i link interni usano URL come /datannur/#/folder/example.
Le pagine HTML statiche pre-generate restano preferibili per le pagine SEO pubbliche. Il routing hash serve principalmente per la navigazione nell'app, i link condivisi e i ricaricamenti diretti su server statici senza riscrittura degli URL.
Pubblicazione
Il comando di pubblicazione python3 datannur.py deploy automatizza la pubblicazione dell'app su un server remoto usando rsync via SSH.
Utilizzo:
python3 datannur.py deployCome funziona:
- Legge le impostazioni di pubblicazione da
deploy.config.json(vediapp/data-template/deploy.config.jsonper un esempio). - Usa
rsyncper sincronizzare i file locali con il server remoto, con opzioni per escludere file ed eliminare i file rimossi. - Supporta l'autenticazione con chiave SSH e la configurazione di una porta personalizzata.
- Mostra avanzamento ed errori direttamente nel terminale.
Opzioni di configurazione:
host,port,username,privateKeyPath: dettagli della connessione SSHremotePath: cartella di destinazione sul serverignore: array di pattern di file/cartelle da escluderesyncOption.delete: se true, i file eliminati in locale vengono eliminati anche in remoto
Se non viene trovata alcuna configurazione, creane una a partire dal template (
app/data-template/deploy.config.json).
Riscrittura degli URL
Il file .htaccess incluso abilita:
- URL puliti:
/dataset/123invece di#/dataset/123 - Fallback su pagine statiche: serve l'HTML pre-generato quando disponibile
- Redirect HTTPS: reindirizzamento automatico alla connessione sicura
- Caching: header di cache ottimizzati per gli asset