Publication en ligne
Pour un déploiement web public avec optimisation SEO et URL propres :
Génération de pages statiques
Générez des pages statiques optimisées pour le référencement :
python3 datannur.py staticPour générer les pages statiques et déployer en une seule étape :
python3 datannur.py static-deployConfiguration dans data/static-make.config.json :
- domain : votre domaine public (p. ex.
"https://yourdomain.com") — requis pour la génération du sitemap lorsqueindexSeo: true - indexSeo :
truepour autoriser l'indexation par les moteurs de recherche,falsepour ajouter la balise metanoindex(par défaut :false) - languages : dossiers de langues à générer, par exemple
["en", "fr", "de", "it"]; lorsque cette option est définie, les pages statiques sont écrites sous des chemins préfixés par la langue tels que/en/datasets,/fr/datasets,/de/datasetset/it/datasets - entities : les types d'entités pour lesquels générer des pages statiques
- routes : les routes à pré-générer
Remarque : cette configuration nécessite un serveur Apache avec mod_rewrite activé. La génération statique crée des fichiers HTML optimisés pour le SEO tout en conservant l'intégralité des fonctionnalités de la SPA. En sortie statique multilingue, chaque page générée enregistre sa langue afin que l'application hydratée conserve la même langue d'interface que le HTML servi.
Mode Apache / hébergement mutualisé
Le paquet généré inclut un fichier .htaccess pour les déploiements Apache, y compris les environnements d'hébergement mutualisé classiques. Il prend en charge aussi bien les installations à la racine du domaine, comme https://example.org/, que les installations en sous-dossier, comme https://example.org/datannur/.
Le déploiement Apache fournit :
- Des URL d'application propres telles que
/dataset/accident_route - Des URL statiques préfixées par la langue telles que
/en/dataset/accident_route,/fr/dataset/accident_route,/de/dataset/accident_routeet/it/dataset/accident_routelorsque la génération statique multilingue est activée - Des pages HTML statiques lorsqu'elles sont générées, avec repli sur la SPA lorsqu'une page statique est manquante
- Des points d'entrée d'API publics sous
/api/, dont la documentation de l'API Raw et les routes de l'API REST - Des points d'accès du proxy LLM en PHP sous
/api/llm/lorsque l'intégration web LLM est activée
Pour les installations en sous-dossier, téléversez le contenu du paquet dans le répertoire cible (par exemple datannur/) et conservez le fichier .htaccess inclus à côté d'index.html. Les liens et ressources sont résolus relativement à ce chemin d'installation, si bien que le même paquet peut être installé à la racine du domaine ou dans un sous-dossier.
Mode GitHub Pages
GitHub Pages ne prend pas en charge les réécritures Apache .htaccess. Le workflow de déploiement du projet conserve le routage par hash par défaut, si bien que les liens internes utilisent des URL telles que /datannur/#/folder/example.
Les pages HTML statiques pré-générées restent préférables pour les pages SEO publiques. Le routage par hash sert principalement à la navigation dans l'application, aux liens partagés et aux rechargements directs sur des serveurs statiques sans réécriture d'URL.
Déploiement
La commande de déploiement python3 datannur.py deploy automatise la publication de votre application vers un serveur distant à l'aide de rsync via SSH.
Utilisation :
python3 datannur.py deployFonctionnement :
- Lit les paramètres de déploiement depuis
deploy.config.json(voirapp/data-template/deploy.config.jsonpour un exemple). - Utilise
rsyncpour synchroniser vos fichiers locaux vers le serveur distant, avec des options pour exclure des fichiers et supprimer les fichiers retirés. - Prend en charge l'authentification par clé SSH et la configuration d'un port personnalisé.
- Affiche la progression et les erreurs directement dans le terminal.
Options de configuration :
host,port,username,privateKeyPath: détails de la connexion SSHremotePath: dossier de destination sur le serveurignore: tableau de motifs de fichiers/dossiers à excluresyncOption.delete: sitrue, les fichiers supprimés en local sont aussi supprimés côté distant
Si aucune configuration n'est trouvée, créez-en une à partir du modèle (
app/data-template/deploy.config.json).
Réécriture d'URL
Le fichier .htaccess inclus permet :
- URL propres :
/dataset/123au lieu de#/dataset/123 - Repli sur les pages statiques : sert le HTML pré-généré lorsqu'il est disponible
- Redirection HTTPS : redirection automatique vers la connexion sécurisée
- Mise en cache : en-têtes de cache optimisés pour les ressources