Note : La compréhension de l'architecture technique du projet peut être utile pour appréhender le fonctionnement général.
Télécharger le code source de ce dépôt Git:
git clone https://github.com/AtelierCartographie/eatlas.git eatlas
cd eatlas
Pour préparer un poste de développement, l'application doit tourner en local. Le plus simple est d'utiliser l'image Docker :
- Éventuellement configurer le projet pour les contraintes locales (port, url, chemins…)
- Installer les dépendances requises manquantes :
yarn
docker
docker-compose
- Les dépendances Node avec la commande
yarn install
- Lancer le projet avec la commande
yarn dev
- Les images Docker
eatlas_es_dev
eteatlas_redis_dev
seront construites si besoin, puis démarrées - Le navigateur principal sera ouvert sur l'URL du backoffice
- Si tout fonctionne correctement, les modifications sur le serveur le redémarrent, et les modifications sur le client rechargent la page du navigateur
- Les images Docker
Le site web front est généré au fur et à mesure de la création de rubriques et de la (dé)publication de ressources sur http://localhost:3000/generated (par défaut)
La production tourne dans des conteneurs Docker orchestrés par le fichier docker-compose.prod.yml
.
Des images sont construites directements via le Docker Hub lors d'un évènement push
sur le dépôt Git:
- Client: https://hub.docker.com/r/sciencespo/eatlas-frontend/
- API: https://hub.docker.com/r/sciencespo/eatlas-backend/
- Configurer l'application
- Installer les dépendances requises manquantes :
yarn
docker
docker-compose
- Un serveur web comme
nginx
qui aura plusieurs rôles :- servir le dossier du site généré (dit dossier public)
- probablement servir de proxy pour le serveur node (backoffice, api)
- servir la page 404 du site (page
notFound
, soit par défaut le fichiernot-found.html
)
- Construire les images Docker
- Recommandé: Télécharger nos images déjà construites depuis le Docker Hub:
docker-compose -f docker-compose.prod.yml pull
- Alternative: Construire vos propres images à partir du code source (utile pour du développent ou si vous éditez le code):
docker-compose -f docker-compose.prod.yml build
- Recommandé: Télécharger nos images déjà construites depuis le Docker Hub:
- Pour démarrer l'application :
docker-compose -f docker-compose.prod.yml up # Supprimer le flag "-d" pour lancer au premier plan
- Pour relancer l'application (après une mise à jour par exemple) :
docker-compose -f docker-compose.prod.yml stop docker-compose -f docker-compose.prod.yml up -d
Voir le fichier docker-compose.prod.yml
pour la liste des volumes (à cette date : esbackup
, esdata
, redisdata
, uploadsdata
) et des containers attendus.
L'application nécessite une connexion via Google OAuth et l'accès à Google Drive, il faut donc créer une application Google avec les bons paramètres :
- Créer une application sur https://console.developers.google.com
- Menu burger → APIs & Services → Credentials → créer un nouveau projet :
- Create credentials > OAuth client ID > Copier la clé d'API
- Menu burger → APIs & Services → Library → activer les APIs suivantes :
- Google Picker API
- Google Drive API
- Menu buger → APIs & Services → Credentials → créer une nouvelle clé d'API :
- Réstreindre la clé aux API "Google Picker" et "Google Drive"
- Modifier la configuration client pour y entrer les clés fournies :
REACT_APP_GOOGLE_CLIENT_ID
est la clé Oauth Client IDREACT_APP_GOOGLE_DEV_KEY
est la clé d'API
Une fois l'application configurée, les services démarrés, il faut au moins un utilisateur pour pouvoir commencer à administrer l'application. L'ajout du tout premier utilisateur se fait en ligne de commande :
yarn add-user "[email protected]" "Nom Complet" admin
ou avec Docker:
docker-compose -f docker-compose.prod.yml exec backend node ./bin/add-user "[email protected]" "Prénom NOM" admin
On peut dès lors se connecter avec ce compte et effectuer tout le reste depuis l'interface Web.