Cette application a pour but de stocker et permettre l'édition de la source de vérité des sites WordPress de l'EPFL :
- la liste des sites, avec leurs attributs techniques et fonctionnels;
- la liste des environnements OpenShift, des unités techniques d'allocation des ressources et de routage dans lesquelles se classent les sites,
- et d'autres listes connexes (liste des professeurs, liste des tags).
Se positionner dans le répertoire app/ et lancer la commande :
cd app/
env WP_VERITAS_BOT_TOKEN=$WP_VERITAS_BOT_TOKEN_TEST WP_VERITAS_ALERTS_TELEGRAM_IDS=$WP_VERITAS_ALERTS_TELEGRAM_IDS_TEST meteor --settings meteor-settings.json
Ensuite aller à l'adresse http://localhost:3000
Vous êtes alors redirigé sur une URL du type https://localhost:3000/?key=aop0wd1yo3abmhr0z5w1wbcz9sj6z9cc il suffit alors de supprimer le s de https://
Se positionner dans le répertoire racine et faire un : docker-compose up
Ensuite aller à l'adresse https://localhost
Afin de garantir que l'environnement node, meteor et mongodb soit similaire pour tout les développeurs, et pour éviter la gestion de version de ces environnements sur l'hôte, il est possible d'utiliser docker-compose-dev.yml.
- Construire l'image docker avec :
docker-compose -f docker-compose-dev.yml build
- Lancer l'image docker avec :
docker-compose -f docker-compose-dev.yml up
Il est possible de lancer des commandes directement dans le container,
par exemple :
docker run -it --entrypoint bash --rm wp-veritas_app -c "meteor --version"
De même, il est possible de rentrer dans le container avec :
docker exec -it --user root wp-veritas_meteor bash
Note: la spécification de l'utilisateur root n'est pas nécessaire, mais le
docker-compose-dev.yml tente de faire matcher
un utilisateur du système avec celui dans le container. Il se peut que votre
utilisateur ait l'identificant 1000, ce qui correspond à l'utilisateur "node"
dans le container. Dans ce cas, les commandes "root" ne fonctionneront pas sans
spécifier l'utiliser à l'aide de l'option --user root
.
L'application se trouve dans le dossier /app
du container. Néanmoins, tous les
fichiers du projet sont également disponible dans le container, dans le dossier
/src
. Cela permet par exemple de tester et d'utiliser veritas-cli
. Pour ce
faire, se rendre dans /src/cli
et suivre les indications ci-dessous.
Pour installer le CLI en local, il faut:
- Se placer dans le répetoire
cli/
- Faire un
npm install
- Faire un
npm install -g ./
Lorsque le CLI est installé :
- Se placer à la racine du projet wp-veritas
- On peut maintenant faire un
veritas-cli --help
greg@epfl:~/workspace-idevfsd/wp-veritas$ veritas-cli --help
Usage: veritas-cli [options] [command]
Options:
-h, --help output usage information
Commands:
clean-all-documents Delete all documents from the local MongoDB
restore-test-db Restore the test MongoDB on local MongoDB
restore-prod-db Restore the production MongoDB on local MongoDB
Les instances sont accessibles ici :
- <wp-veritas.128.178.222.83.nip.io>
- <wp-veritas-test.epfl.ch>
- <wp-veritas.epfl.ch>
On se place à la racine du projet :
- Changer la version dans
package.json
(et lancernpm i
pour mettre à jourpackage-lock.json
). Le plus simple est d'utiliser la commandemake version-major
. - Une fois le commit effectué et pushé dans github, allez dans build de l'image sur l'environment de test et lancer le build.
- Une fois le build terminé, promouvoire l'image en production avec
./ansible/wpveritasible -t promote --prod
. Automatiquement wp-veritas.epfl.ch redémarrera.
Lancer le déploiement => ce qui va exécuter updateRoles
qui supprime la
collection roles
et qui supprime l'attribut roles dans chaque user. La
collection est re-créée par les fixtures.
(Obsolète, utiliser veritas-cli)
Vous devez être positionné dans le répertoire app/ et avoir lancé l'application.
meteor shell
importVeritas()
Vous devez être positionné dans le répertoire app/ et avoir lancé l'application.
meteor mongo
db.sites.deleteMany({})
docker push epflsi/wp-veritas:latest
- Pour se connecter à l'application, il se faut s'authentifier Tequila.
- Pour obtenir le rôle 'admin' il faut appartenir au groupe 'wp-veritas-admins' de l'application groups.epfl.ch
- Pour obtenir le rôle 'editor' il faut appartenir au groupe 'wp-veritas-editors' de l'application groups.epfl.ch
make test
La mise à jour du paquet alanning:roles
de la version 1 à la version 3 a necessité des changements en DB.
En effet, il faut supprimer la collection roles
et la re-créée via le fichier server/fixtures.js
De plus, le user n'a plus d'attributs roles mais une nouvelle collection role-assignement