docs: mise à jour complète de la documentation dans docs/app/

- architecture.md : structure Next.js, modifications Navigation.tsx, page équipe
- configuration.md : rings standards adopt|trial|assess|hold, migration
- deploiement.md : script Python, Navigation.tsx, processus de build détaillé
- developpement.md : nouvelles commandes, scripts, gestion profils équipe
- contribution.md : format business, rings standards, métadonnées complètes
- guide-page-equipe.md : architecture hybride, script Python, troubleshooting
- guide-radar-business.md : rings standards, migration, navigation
- troubleshooting.md : nouveau document avec problèmes courants et solutions
- README.md : liens mis à jour, nouvelles fonctionnalités
- FORMAT-BLIP.md : rings standards adopt|trial|assess|hold
This commit is contained in:
syoul
2025-12-09 11:01:29 +01:00
parent 9a055add6f
commit 005ed9ee7f
10 changed files with 1284 additions and 436 deletions

View File

@@ -63,49 +63,6 @@ L'application sera accessible sur le port 3000.
Le script `docker-entrypoint.sh` modifie dynamiquement le `basePath` dans `config.json` au démarrage du conteneur en utilisant la variable d'environnement `BASE_PATH`.
## Déploiement statique
### Build des fichiers statiques
```bash
npm install
npm run build
```
Les fichiers sont générés dans le répertoire `build/`.
### Servir avec un serveur web
#### Nginx
```nginx
server {
listen 80;
server_name coeurbox.syoul.fr;
root /chemin/vers/build;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
```
#### Apache
```apache
<VirtualHost *:80>
ServerName coeurbox.syoul.fr
DocumentRoot /chemin/vers/build
<Directory /chemin/vers/build>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
```
## Déploiement du Radar Technologique Laplank avec Portainer
Le Radar Technologique Laplank est déployé via Portainer en utilisant une stack Docker Compose.
@@ -137,15 +94,52 @@ Le fichier `docker-compose.business.yml` configure :
### Dockerfile Business
Le `Dockerfile.business` :
- Utilise Node.js 20 Alpine
- Configure les variables d'environnement pour désactiver Husky
- Installe les dépendances avec `--ignore-scripts`
- Patche le package `aoe_technology_radar` pour inclure `gray-matter`
- Pré-installe `.techradar` pendant le build
- Applique la configuration business (`config-business.json`)
- Expose le port 3000
- Démarre via `scripts/start-business.sh`
Le `Dockerfile.business` effectue les opérations suivantes :
1. **Installation des dépendances** :
- Node.js 20 Alpine
- Git et Python3 pour les scripts
- Variables d'environnement pour désactiver Husky
2. **Préparation du framework** :
- Copie de `node_modules/aoe_technology_radar` vers `.techradar/`
- Patch du package pour inclure `gray-matter` et `postcss`
3. **Configuration des données** :
- Purge des données de démo : `rm -rf .techradar/data/radar/*`
- Copie des blips business : `radar-business/2025-01-15/*``.techradar/data/radar/2025-01-15/`
- Copie de la config : `radar-business/config-business.json``.techradar/data/config.json`
4. **Modifications personnalisées** :
- Création de `.techradar/src/pages/team.tsx` (page Next.js pour `/team`)
- Modification de `.techradar/src/components/Navigation/Navigation.tsx` via script Python :
- Suppression de tous les liens Équipe existants (évite les doublons)
- Ajout d'un seul lien "👥 Équipe" après le lien "Vue d'ensemble"
5. **Build Next.js** :
- `npm run build:data` : Génère les données du radar
- `npm run build` : Build de l'application Next.js
6. **Copie des fichiers publics** :
- Copie de `public/team.html` et `public/team-visualization-data.json` vers `.techradar/public/`
- Les fichiers sont ensuite copiés dans `out/` après le build
7. **Démarrage** :
- Exécution de `scripts/start-business.sh` qui :
- Vérifie que `team.html` et `team-visualization-data.json` sont dans `out/`
- Les copie depuis `public/` si nécessaire
- Démarre le serveur statique `serve` sur le port 3000
### Script Python pour Navigation.tsx
Le script `/tmp/add_team_link.py` dans le Dockerfile :
1. **Vérifie l'existence du fichier** : `.techradar/src/components/Navigation/Navigation.tsx`
2. **Supprime tous les liens Équipe existants** : Évite les doublons même si le script s'exécute plusieurs fois
3. **Ajoute un seul lien Équipe** : Après le lien "Vue d'ensemble"
4. **Vérifie le résultat** : S'assure qu'il n'y a qu'un seul lien après l'opération
Le script shell `/tmp/add_team_link.sh` orchestre l'exécution et vérifie le résultat.
### Authentification Git pour Portainer
@@ -190,19 +184,58 @@ Pour mettre à jour le Radar Technologique Laplank dans Portainer :
6. Cliquer sur **Editor****Update the stack**
7. L'image sera reconstruite depuis zéro
**Option 4 : Utiliser le CACHE_BUST automatique**
Le `docker-compose.business.yml` inclut maintenant un `CACHE_BUST` avec timestamp qui change automatiquement. Cependant, Portainer peut ne pas interpréter les variables shell `$(date +%s)`. Dans ce cas :
1. Utiliser l'**Option 1** avec `--no-cache`
2. Ou modifier manuellement le `CACHE_BUST` dans le compose avant de mettre à jour
**Vérification après mise à jour :**
- Vérifier les logs : **Containers**`laplank-radar-technolologique`**Logs**
- Tester l'application : `http://<votre-serveur>:3006`
- Vérifier que les changements sont visibles (par exemple, le contenu de `about.md` ou `custom.css`)
- Vérifier qu'il n'y a qu'un seul lien "Équipe" dans la navigation
**Pourquoi le cache pose problème ?**
Docker utilise un système de cache par couches. Si les fichiers copiés n'ont pas changé selon l'algorithme de détection de Docker, il réutilise les couches en cache. C'est pourquoi il faut forcer un rebuild complet avec `--no-cache` pour garantir que tous les fichiers sont bien copiés et que l'application est reconstruite avec les dernières modifications.
## Déploiement statique
### Build des fichiers statiques
```bash
npm install
npm run build
```
Les fichiers sont générés dans le répertoire `build/`.
### Servir avec un serveur web
#### Nginx
```nginx
server {
listen 80;
server_name coeurbox.syoul.fr;
root /chemin/vers/build;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
```
#### Apache
```apache
<VirtualHost *:80>
ServerName coeurbox.syoul.fr
DocumentRoot /chemin/vers/build
<Directory /chemin/vers/build>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
```
## Déploiement avec Drone CI
Le projet est configuré pour le déploiement automatique via Drone CI (`.drone.yml`).
@@ -262,22 +295,32 @@ Le projet est configuré pour fonctionner derrière un reverse proxy (Traefik) v
- Configurer les headers de sécurité appropriés
- Limiter l'accès si nécessaire
- Surveiller les logs
- Le Radar Business est protégé par un mot de passe client-side
## Mise à jour
### Mettre à jour le contenu
1. Modifier les fichiers dans `radar/`
1. Modifier les fichiers dans `radar-business/2025-01-15/`
2. Rebuild l'image :
```bash
docker compose build
docker compose build --no-cache
docker compose up -d
```
### Mettre à jour les dépendances
1. Modifier `package.json` si nécessaire
2. Rebuild l'image complète
2. Rebuild l'image complète avec `--no-cache`
### Mettre à jour les profils équipe
1. Modifier les fichiers dans `docs/data/team/*.md`
2. Régénérer les données :
```bash
node scripts/generate-team-visualization-data.js
```
3. Rebuild l'image Docker
## Monitoring
@@ -307,6 +350,21 @@ curl http://localhost:3006/
Note : Le Radar Technologique Laplank est protégé par un mot de passe, donc la réponse peut être l'écran d'authentification.
### Vérifications post-déploiement
1. **Vérifier la navigation** :
- Le lien "👥 Équipe" doit apparaître une seule fois
- Tous les liens doivent fonctionner
2. **Vérifier les données** :
- Tous les blips doivent être affichés (38 blips)
- Les rings doivent être corrects (adopt, trial, assess, hold)
3. **Vérifier la page équipe** :
- `/team` doit être accessible
- Les visualisations doivent se charger
- Les données doivent être présentes
## Rollback
En cas de problème, revenir à une version précédente :
@@ -319,29 +377,10 @@ docker compose down
git checkout <commit-hash>
# Rebuild et redémarrer
docker compose build
docker compose build --no-cache
docker compose up -d
```
## Troubleshooting
### Problème de basePath
Si l'application ne se charge pas correctement :
- Vérifier la variable `BASE_PATH`
- Vérifier les logs du conteneur
- Vérifier la configuration du reverse proxy
### Problème de permissions
Si des erreurs de permissions apparaissent :
- Vérifier les UID/GID dans le Dockerfile
- Vérifier les permissions des volumes montés
### Problème de build
Si le build échoue :
- Vérifier la version de Node.js
- Vérifier les dépendances npm
- Nettoyer le cache : `docker system prune -a`
Voir [troubleshooting.md](./troubleshooting.md) pour les problèmes courants et leurs solutions.