No description
- Python 95.8%
- Vue 2.9%
- TypeScript 1.3%
|
Some checks are pending
Monorepo Kapteva CI/CD / build (push) Blocked by required conditions
Monorepo Kapteva CI/CD / package-backend (push) Blocked by required conditions
Monorepo Kapteva CI/CD / package-frontend (push) Blocked by required conditions
Monorepo Kapteva CI/CD / deploy-preprod (push) Blocked by required conditions
Monorepo Kapteva CI/CD / deploy-prod (push) Blocked by required conditions
Monorepo Kapteva CI/CD / 🔍 Vérifier les variables d'environnement (push) Successful in 2s
Monorepo Kapteva CI/CD / test (push) Has started running
|
||
|---|---|---|
| .forgejo/workflows | ||
| apps | ||
| configs | ||
| docs | ||
| presentation | ||
| tests/backend | ||
| .env.example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .gitmodules | ||
| Caddyfile | ||
| docker-compose.prod.yml | ||
| docker-compose.yml | ||
| nx.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
Monorepo Kapteva
Ce dépôt est un monorepo géré avec Nx, regroupant le backend FastAPI (Litestar) et le frontend (Plugin Grafana).
📂 Structure du Projet
apps/backend/: API backend en Python (Litestar) - [Sous-module Git].apps/frontend/: Plugin Grafana en TypeScript (React) - [Sous-module Git].presentation/: Support de présentation Slidev.docs/: Documentation centralisée et organisée.tests/: Tests centralisés (notamment pour le backend).configs/: Fichiers de configuration de projet pour Nx.
🚀 Initialisation du projet
Après avoir cloné le monorepo, vous devez initialiser les sous-modules :
git submodule update --init --recursive
npm install
📖 Documentation
La documentation a été centralisée et organisée pour faciliter l'accès aux différentes thématiques du projet :
- Conception et Architecture : Modélisation des données et flux de transformation (Architecture).
- Backend (Python) : Détails de l'API et Guide complet.
- Frontend (Grafana) : Guide du plugin et Spécifications.
- Dossier Jury CDA : Préparation au titre (Référentiel).
- Déploiement et CI : Stratégies de mise en production et Conseils CI.
🎡 CI/CD (GitLab)
Le projet utilise un pipeline GitLab CI/CD unifié à la racine gérant les sous-modules récursivement :
- Test : Validation de l'ensemble du monorepo via Nx (incluant
tests/backend). - Build : Compilation du frontend et génération des artefacts (incluant le backend).
- Package : Création d'images Docker (déclenché par
$CI_COMMIT_TAG). - Deploy Preprod : Déploiement automatique sur
preprod-front.$DOMAIN_NAME(déclenché par$CI_COMMIT_TAG). - Deploy Prod : Déploiement manuel sur
grafana.$DOMAIN_NAME(déclenché par$CI_COMMIT_TAG).
Variables requises (GitLab CI/CD Variables)
Consultez le fichier .env.example pour la liste exhaustive des variables et leur niveau de sécurité recommandé.
SSH_PRIVATE_KEY: Clé SSH pour accéder au VPS (Niveau : Critique).
Prérequis
- Node.js (v22+)
- Docker et Docker Compose
Installation
npm install
Utilisation avec Nx (Orchestration)
| Commande | Action |
|---|---|
npm run dev |
Lance tout le monorepo en mode dev |
npm run build |
Compile tous les projets |
npm run test |
Exécute tous les tests |
npm run presentation |
Lance le support de présentation Slidev |
Utilisation avec Docker (Recommandé)
docker compose up --build
Cela lancera :
- Le backend sur
http://localhost:8000 - Grafana sur
http://localhost:3000(Plugin pré-installé)