- LBA - La bonne alternance
Consultez la Fiche Produit pour plus d'informations sur le projet.
Avant d'installer le projet, assurez-vous d'avoir les éléments suivants :
- Bash 5+
- Docker 23.03.0+
- Git LFS
- GnuPG
- pwgen
- 1password-cli
- yq
- shred
- sshpass
- NodeJS 20+
- Ansible 2.7+
brew install n
brew install yq
brew install coreutils
brew install git-lfs
brew install 1password-cli
brew install ansible
brew install pwgen
brew install bashbrew tap esolitos/ipa
brew install esolitos/ipa/sshpassPour décrypter les variables d'environnement, vous avez besoin d'une clé GPG. Si vous n'en avez pas, vous pouvez en créer une en suivant la documentation GitHub ici.
Voici les étapes pour créer votre clé GPG :
-
Lors de la création de la clé, choisissez les options suivantes :
Please select what kind of key you want>ECC (sign and encrypt)Please select which elliptic curve you want>Curve 25519Please specify how long the key should be valid>0Real Name:<Prenom> <Nom>Email Address:[email protected]
-
Pour utiliser votre clé au sein du projet, publiez-la en exécutant la commande suivante :
gpg --list-secret-keys --keyid-format=long
L'identifiant de votre clé correspond à la valeur
sec ed25519/<identifiant>. -
Pour utiliser votre clé au sein de la mission apprentissage, vous devez la publier en exécutant la commande suivante :
gpg --send-key <identifiant>
-
Pour une meilleure sécurité, il est recommandé de sauvegarder les clés publique et privée nouvellement créées. Vous pouvez les exporter en exécutant les commandes suivantes :
gpg --export <identifiant> > public_key.gpg gpg --export-secret-keys <identifiant> > private_key.gpg
Ces deux fichiers peuvent être sauvegardés, par exemple, sur une clé USB.
-
Communiquez votre clé à votre équipe afin d'être autorisé à décrypter le vault.
Une fois autorisé, vous aurez accès aux fichiers suivants :
.infra/vault/.vault-password.gpg
- Installer 1password cli et connecter votre compte
- brew install 1password-cli https://developer.1password.com/docs/cli/get-started/
Avant de lancer l'application, assurez-vous d'installer toutes les dépendances nécessaires en exécutant la commande suivante :
yarn
yarn setupCette commande mettra à jour les dépendances du projet.
Le script vous demandera plusieurs fois la phrase secrète de votre clé GPG pour décrypter les variables d'environnement du vault.
Il est possible que vous rencontriez un problème avec le fichier .infra/local/mongo_keyfile lors du démarrage du container de mongodb (vous auriez des erreurs dans les logs du démarrage du container).
Si c'est le cas, vérifiez que les droits du ficher sont bien 440 pour MacOS et 400 pour Linux et que le fichier appartient à l'utilisateur lançant docker.
yarn dev
yarn seedVous pouvez maintenant accéder à l'application via l'URL http://localhost:3000
Vous pouvez maintenant accéder à l'API via l'URL http://localhost:5001
Vous pouvez maintenant accéder au SMTP via l'URL http://localhost:8025
Les principales opérations sont regroupées dans le package.json.
yarn setupinstallation ou mise à jour de vos fichiers d'environnement de développement depuis le vault.yml (server/.env et ui/.env)
Pour démarrer l'application en mode local, exécutez la commande suivante :
yarn devLance la stack local de développement (server, ui, services)
Cette commande démarre les containers définis dans le fichier docker-compose.yml.
yarn cli <command>commande pour lancer les commandes du cli mna-lba
yarn server:devLance le server en dev indépendamment de la stack
yarn ui:devLance l'ui en dev indépendamment de la stack
Lance les services docker en local
yarn services:startStopper les services docker en local
yarn services:stopSupprimer les services docker en local
yarn services:clean yarn seed <OPTIONAL:DB_URL>Pour créer des jeux de test facilement il suffit de lancer les commandes suivante. Applique la base de données seed sur la base de données cible (par défaut la base de données locale)
Mise à jour de la base de données seed depuis votre local
yarn seed:updateDeploie l'application sur l'environnement cible
yarn deploy <environnement> <OPTIONAL:--user USERNAME>TODO: Optional only if 1password is configured
Cli pour créer une migration
yarn migration:create -d <name>Ajouter une exception à talisman
yarn talisman:add-exceptionÉdition du vault ansible
yarn vault:editLint global du projet
yarn lintCréation d'une release
yarn release:interactiveLes variables d'environnement local du server sont stocké dans le vault (peut contenir des secrets). Si vous souhaitez overwwrite certaines variables ou changer le port de l'api par exemple, il est possible de créer un fichier server/.env.local et ui/.env.local
Pour exécuter les tests localement, utilisez la commande suivante :
yarn testCette commande exécutera tous les tests du projet et vous affichera les résultats.
Assurez-vous:
-
D'avoir installé toutes les dépendances via la commande
yarn installavant de lancer les tests -
D'avoir lancé l'application car les tests utilisent la base de donnée.
Pour mettre à jour les snapshots, utilisez la commande suivante dans /shared
yarn test --update