La plateforme est constituée de plusieurs serveurs qui communiquent entre eux. Cet article fait le point sur leurs configurations et la manière d'implanter les données qui permettent ces connexions.
serveur | dev. host | prod. host | rôle |
---|---|---|---|
Gatsby | local | comp. app. DO maquisdoc-site |
front: office principal |
GraphQl | local | comp. app. DO maquisdoc-graphql |
intermédiaire: interface graphql-neo4j |
Neo4j | Aura | Aura | back: base de donnée en graphe neo4j |
Gunicorn-Flask | local | comp. app. DO maquisdoc-rapidexo |
intermédiaire: interface avec les repos GitHub |
GitHub | GitHub | GitHub | back: repos pour les scripts et les sources LateX |
L'abbréviation "comp. app. DO" signifie qu'il s'agit d'un composant de l'application maquisdoc-site
sur Digital Ocean.
On peut remarquer que, en production, tous les serveurs ("front" et "intermédiaires") qui forment des requêtes vers d'autres serveurs sont des composants de l'application sur Digital Ocean. Ce sont ces serveurs qui ont besoin des données de connexion.
À la suite d'une mise à jour du paquetage fedora, le serveur neo4j de développement ne démarre plus correctement sur une machine sous fedora. Il est remplacé par un serveur distant Aura utilisé aussi en production et créé à partir d'une sauvegarde. Il n'y a plus de serveur neo4j de développement, il convient de procéder à des backups de la base en ligne. Les variables d'environnement utilisées par le serveur graphql apollo ont été modifiées.
Elles sont formées des url et des credentials et sont passées aux serveurs intermédiaires avec des variables d'environnement.
variables | implantation dans l'environnement de | rôle |
---|---|---|
NEO4J_URL , NEO4J_USERNAME , NEO4J_PASSWORD |
GraphQl | credentials serveur neo4j |
MQD_GRAPHQL_SERVER_URL |
Gatsby | URL serveur graphql |
GITHUB_TOKEN , GITHUB_USER |
Gunicorn-Flask | credentials for GitHub repos |
FLASK_URL ,FLASK_ENV , FLASK_APP |
Gunicorn-Flask | configuration du serveur flask |
En développement, comme tous les serveurs intermédiaires sont implantés sur la machine de travail locale, les variables sont exportées (à partir du fichier ~/.bashrc
) dès le login vers les processus engendrant les serveurs. Après une modification du fichier, utiliser source ~/.bashrc
pour modifier les varables.
En production, les variables sont implantées au niveau supérieur dans l'environnement de l'application (APP-LEVEL VARIABLES
) plutôt que dans les environnements des composants. On les édite dans l'interface Digital Ocean avec l'onglet settings
de l'application.