Accélerer la mise en place de l'affichage environnemental
L'application est accessible à cette adresse.
Note: le projet Ecobalyse s'appellait initialement Wikicarbone.
Cette application est écrite en Elm. Vous devez disposer d'un environnement NodeJS 14+ et npm
sur votre machine.
$ npm install
Les variables d'environnement suivantes doivent être définies :
SENTRY_DSN
: le DSN Sentry à utiliser pour les rapports d'erreur.MATOMO_HOST
: le domaine de l'instance Matomo permettant le suivi d'audience du produit (typiquementstats.beta.gouv.fr
).MATOMO_SITE_ID
: l'identifiant du site Ecobalyse sur l'instance Matomo permettant le suivi d'audience du produit.MATOMO_TOKEN
: le token Matomo permettant le suivi d'audience du produit.
En développement, copiez le fichier .env.sample
, renommez-le .env
, et mettez à jour les valeurs qu'il contient ; le serveur de développement node chargera les variables en conséquences.
Le serveur local de développement se lance au moyen des deux commandes suivantes :
& npm run db:build
$ npm start
Deux instances de développement sont alors accessibles :
- localhost:3000 sert le frontend et le backend (API) ;
- localhost:1234 sert seulement le frontend en mode hot-reload, permettant de mettre à jour en temps-réel l'interface Web à chaque modification du code frontend.
Pour lancer le serveur de développement en mode de débogage:
& npm run db:build
$ npm run start:dev
Un server frontend de débogage est alors disponible sur localhost:1234.
Ce projet utilise Husky pour gérer les hooks Git, et Prettier pour le formatage automatique du code. Le build sur le CI échouera si les fichiers javascript et json ne sont pas proprement formattés.
- Husky
- Prettier
Si vous clonez le dépôt pour la première fois, les dépendances devraient être installées automatiquement après avoir exécuté npm install. Si ce n'est pas le cas, vous pouvez les installer manuellement.
$ npm install --save-dev husky prettier
Un hook de pre-commit a été configuré pour vérifier que le code est bien formaté avant de permettre le commit. Si le code n'est pas correctement formaté, le commit sera bloqué.
Pour résoudre ce problème, vous pouvez exécuter la commande suivante :
$ npm run format:json
Si vous ne souhaitez pas que la vérification se fasse de manière automatique, vous pouvez désinstaler les hooks :
$ npx husky uninstall
Pour compiler la partie client de l'application :
$ npm run build
Les fichiers sont alors générés dans le répertoire build
à la racine du projet, qui peut être servi de façon statique.
L'application est déployée automatiquement sur la plateforme Scalingo à chaque mise à jour de la branche master
sur le dépôt.
Chaque Pull Request effectuée sur le dépôt est également automatiquement déployée sur une instance de revue spécifique, par exemple https://ecobalyse-pr44.osc-fr1.scalingo.io/
pour la pull request #44. Ces instances de recette restent actives 72 heures, puis sont automatiquement décommisionnées passé ce délai ou si la pull request correspondante est mergée.
Les variables d'environnement doivent être positionnées via l'interface de configuration Scalingo (voir la section Configuration).
Pour lancer le serveur applicatif complet (frontend + backend), par exemple depuis un environnement de production, la démarche est la suivante :
$ npm run build
$ npm run server:start
L'application est alors servie sur le port défini par la variable d'environnement PORT
(par défaut: 3000
).
Ce dépôt contient aussi les scripts (principalement python) utilisés pour importer et exporter les données du projet Ecobalyse.
Ces scripts se trouvent dans data/
, et un fichier README spécifique
en détaille l'installation et l'utilisation.