Aller au contenu

Instructions d'installation

La plateforme OpenHEXA est composée de plusieurs composants, chacun ayant son propre dépôt :

La méthode recommandée pour déployer OpenHEXA est d'utiliser Kubernetes. Pour une installation de développement local, nous recommandons d'utiliser Docker.

Installation pour le développement

Comme chaque composant nécessite une pile différente, pour le développement local, nous recommandons d'utiliser Docker. Nous fournissons des manifestes Docker Compose pour déployer les apps OpenHEXA et les Notebooks. Quant au frontend, il nécessite un environnement Node local pour être exécuté directement.

En bref, lorsque les 3 dépôts Git des composants ont été clonés localement, vous pouvez les exécuter dans cet ordre :

  1. l'app avec le runner et le scheduler de pipelines,
  2. le notebook, puis
  3. le frontend.

Vous trouverez les instructions détaillées pour le développement local dans le README de chaque composant :

Même si le composant est conteneurisé, les modifications de votre copie de travail locale seront prises en compte.

Ci-dessous, vous trouverez une version courte pour configurer rapidement un environnement de développement pour OpenHEXA :

Prérequis

App

git clone git@github.com:BLSQ/openhexa-app.git
cp .env.dist .env
# editez le fichier .env pour configurer votre instance
docker network create openhexa
docker compose build
docker compose run app fixtures
docker compose --profile pipelines up

Deux points de terminaison URL sont maintenant exposés localement sur le port 8000 :

  • http://localhost:8000/graphql pour l'API GraphQL
  • http://localhost:8000/ready pour le point de terminaison de readiness

Notebooks

git clone git@github.com:BLSQ/openhexa-notebooks.git
docker compose -f docker-compose.yml -f docker-compose-withdockerhub.yml up

Frontend

git clone git@github.com:BLSQ/openhexa-frontend.git
npm install
cp .env.local.dist .env.local
# editez le fichier .env pour configurer votre instance
npm run dev

L'application web est alors servie localement sur le port 3000. Vous pouvez naviguer et vous connecter à http://localhost:3000. Les identifiants par défaut sont root@openhexa.org/root.

Déploiement d'OpenHEXA

Kubernetes est la méthode recommandée pour déployer OpenHEXA.

Kubernetes

🚧 Pour le moment, les différents composants doivent être installés séparément. Nous travaillons actuellement sur un chart Helm qui facilitera le déploiement d'OpenHEXA. En attendant, vous trouverez ci-dessous un aperçu de haut niveau de la façon dont OpenHEXA est déployé sur un cluster Kubernetes. N'hésitez pas à nous contacter si vous avez besoin d'aide pour un déploiement OpenHEXA.

Prérequis

Pour déployer OpenHEXA, vous aurez besoin de :

  • Un cluster Kubernetes
  • Un serveur PostgreSQL
  • Un moyen de provisionner du stockage objet, comme AWS S3, Google Cloud GCS ou un équivalent open source

Déploiement de l'App

Le composant openhexa-app est une application Django plutôt standard. Le déploiement avec Kubernetes consiste à :

  1. Créer un Deployment Kubernetes, un Service et l'exposer avec un Ingress
  2. Créer une ressource Deployment pour la commande datasources_worker
  3. Créer un CronJob dans Kubernetes pour les commandes environment_sync et datasource_sync
  4. Créer un Secret et un ConfigMap pour les valeurs requises par le composant app (voir settings.py pour la référence des paramètres)

Déploiement du Frontend

Le composant openhexa-frontend est une application React NextJS. Le déploiement avec Kubernetes consiste à :

  1. Créer un Deployment Kubernetes, un Service et l'exposer avec un Ingress
  2. Créer un Secret et un ConfigMap pour les valeurs requises par le composant app (voir .env.local.dist pour la référence des paramètres)

Déploiement des Notebooks

La méthode recommandée pour déployer le composant notebooks d'OpenHEXA est d'utiliser le Helm Chart fourni par le projet Zero To Kubernetes.

Déploiement des Pipelines

La méthode recommandée pour déployer le composant pipeline d'OpenHEXA est d'utiliser le Helm Chart fourni par Airflow.

Sur une machine unique

Il est possible d'installer OpenHexa sans Kubernetes sur une machine unique. Cela nécessite une distribution Linux récente basée sur Debian et Docker. Cette méthode est encore en cours de développement. Vous trouverez toutes les instructions directement sur le projet principal OpenHexa.