From e662ebc1815c24444428f24a13c11b4f9c9ab547 Mon Sep 17 00:00:00 2001 From: RochDLY Date: Mon, 18 Nov 2024 10:23:15 +0100 Subject: =?UTF-8?q?ajout=20du=20billet=20sur=20le=20d=C3=A9ploiement=20d'u?= =?UTF-8?q?ne=20instance=20de=20Stylo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...-11-11-deploiement-d-une-instance-de-stylo.html | 112 +++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 docs/posts/2024-11-11-deploiement-d-une-instance-de-stylo.html (limited to 'docs/posts') diff --git a/docs/posts/2024-11-11-deploiement-d-une-instance-de-stylo.html b/docs/posts/2024-11-11-deploiement-d-une-instance-de-stylo.html new file mode 100644 index 0000000..f5eea83 --- /dev/null +++ b/docs/posts/2024-11-11-deploiement-d-une-instance-de-stylo.html @@ -0,0 +1,112 @@ + + + + + + + + Roch Delannay | Déploiement d’une instance de Stylo + + + + + + + + + + + + +
+
+ + +
+
+
+

Déploiement d’une instance de Stylo

+ + + +
+
+

J’écris ce billet dans le but de garder une archive des étapes par lesquelles je suis passé pour déployer une nouvelle instance de Stylo.

+

L’objectif de cette manipulation était à la fois de tester le guide de déploiement que l’on a sur le dépôt de Stylo et de comprendre un peu mieux le fonctionnement de Stylo.

+

J’ai donc commencé par faire un fork de stylo (voir le lien précédent) et j’ai installé une machine virtuelle ubuntu server 24.04.1 LTS.

+

Liste des problèmes rencontrés

+

Installation de Docker

+

Une fois installée et lancée, la documentation de Stylo nous indique que tout commence avec l’installation de Docker (et Docker compose).

+

Dans la documentation, il y a cette ligne de commande :

+

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose

+

Cette commande est obsolète, elle renvoie à la version 1.25.5 de docker-compose et génère des erreurs lors du build des conteneurs.

+

Pour parer à ce problème, la solution consiste à prendre la dernière version de docker, soit en changeant le 1.25.5 par la dernière version, soit en suivant la documentation officielle de docker

+

En suivant la documentation, on ajoute docker au dépôt et à chaque atp-get update && apt-get upgrade docker est mis à jour (attention que ça ne crée pas de conflit, il ne faut pas faire automatiquement la mise à jour).

+

Désactivation du Apparmor sous Ubuntu

+

Il s’agit là d’un problème récurrent sur Ubuntu avec Docker : il est impossible de stopper un conteneur si l’application apparmor est lancée (et elle tourne automatiquement sous ubuntu).

+

Une solution un peu violente consiste à suivre les lignes de commandes suivantes :

+
sudo aa-remove-unknown
+sudo service apparmor teardrop
+sudo service docker restart
+docker system prune --all --volumes
+docker compose down
+

Avec ces commandes et pour tout le reste de la session, on pourra relancer / stopper les conteneurs autant de fois qu’on le veut.

+

Nginx n’accède pas au répertoire de Stylo

+

sudo chmod -R +x /path/to/stylo

+

Accès à Internet depuis la VM

+

Quelques paramètres réseaux à régler avant de pouvoir déployer l’instance de Stylo. Pour permettre les requêtes et saisir des données, il faut ouvrir les ports 80 et 443 du réseau pour la VM. Dans mon cas, la VM partageait le réseau de la distribution hôte (un windows) et n’était pas rendue visible depuis l’interface du réseau 192.168.1.1. Pour la rendre visible il ne faut pas que la VM profite du réseau hôte mais faire un bridge. De cette manière, la box internet peut détecter la VM comme une entité distincte.

+

Build avec npm

+

Avec les derniers changements de Stylo, il est nécessaire de faire tourner node en parallèle de docker pour builder l’image de Stylo.

+

On peut suivre la documentation comme suit :

+
    +
  1. Copier le fichier de configuration cp stylo-example.env .env
  2. +
  3. Générer le token GraphQL à renseigner en fin de .en avec docker compose run -ti --build --rm graphql-stylo npm run generate-service-token --silent
  4. +
  5. Modifier les URLs dans le .env pour qu’elles correspondent à l’URL de la nouvelle instance de Stylo (attention à bien renseigner SNOWPACK_PUBLIC_GRAPHQL_ENDPOINT)
  6. +
  7. npm clean-install
  8. +
  9. npm --prefix front clean-install
  10. +
  11. npm --prefix export clean-install
  12. +
  13. npm --prefix graphql clean-install
  14. +
+

Renseigner le fichier de configuration nginx

+

Suivre la documentation sur github.

+

Penser à modifier le fichier de configuration : /etc/nginx/sites-enabled/stylo.huma-num.fr.conf.

+

Construire les images docker

+
docker compose up -d mongodb-stylo export-gateway pandoc-api
+npm run dev
+

Le paramètre -d de la commande docker compose permet de faire passer docker en arrière-plan (en daemon). On peut tout de suite lancer npm run dev dans le même terminal pour voir ce qu’il se passe sur cette nouvelle instance Stylo.

+

Lancer npm en parallèle du docker compose permet de sourcer correctement le .env (cf package.json sur github).

+

Attention : cette partie est susceptible de changer bientôt, cf #1097.

+
+
+ + \ No newline at end of file -- cgit v1.2.3