- Création de docs/app/ pour la documentation de l'application - Création de docs/data/ pour les données utilisées par l'application - Déplacement de la documentation technique vers docs/app/ - Déplacement des données métier vers docs/data/ - Mise à jour de tous les liens et références dans les fichiers - Mise à jour des scripts (extract-technologies.js, analyze-business-metrics.js) - Mise à jour des fichiers JavaScript (custom.js, strategie-link.js) - Création de README.md dans docs/, docs/app/ et docs/data/ - Mise à jour du Readme.md principal avec les nouveaux chemins
7.3 KiB
Guide de déploiement
Vue d'ensemble
Le projet peut être déployé de plusieurs façons :
- Docker Compose (recommandé pour la production)
- Docker simple
- Build statique avec serveur web
- Portainer (pour le Radar Business)
Déploiement avec Docker
Configuration Docker
Le projet contient plusieurs configurations Docker :
docker/Dockerfile: Dockerfile principal avec multi-stage builddocker/docker-compose.yml: Configuration de basedocker/docker-compose.labels.yml: Labels pour le reverse proxydocker/docker-compose.local.yml: Configuration pour développement localDockerfile(racine) : Dockerfile alternatifdocker-compose.yml(racine) : Docker Compose alternatifDockerfile.business: Dockerfile spécifique pour le Radar Businessdocker-compose.business.yml: Docker Compose pour le Radar Business (Portainer)
Build de l'image Docker
Avec le Dockerfile principal
cd docker
docker compose build
Avec build args
docker build \
--build-arg BASE_PATH="/techradar" \
--build-arg UID=1000 \
--build-arg GID=1000 \
-f docker/Dockerfile \
-t techradar:latest \
.
Variables d'environnement
- BASE_PATH : Chemin de base pour l'application (défaut:
/) - UID : User ID pour l'utilisateur dans le conteneur (défaut: 1000)
- GID : Group ID pour l'utilisateur dans le conteneur (défaut: 1000)
Démarrage avec Docker Compose
cd docker
docker compose up -d
L'application sera accessible sur le port 3000.
Configuration du basePath
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
npm install
npm run build
Les fichiers sont générés dans le répertoire build/.
Servir avec un serveur web
Nginx
server {
listen 80;
server_name coeurbox.syoul.fr;
root /chemin/vers/build;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
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.
Configuration Portainer
- Créer une nouvelle stack dans Portainer
- Nom de la stack :
laplank-radar-business(ou autre nom) - Méthode : Git Repository
- Repository URL : URL du dépôt Git (ex:
https://git.open.us.org/AJR/TechradarDev.git) - Branch :
dev-biz(ou la branche appropriée) - Compose path :
docker-compose.business.yml
Configuration Docker Compose Laplank
Le fichier docker-compose.business.yml configure :
- Port : 3006 (mappé depuis le port 3000 du conteneur)
- Image : Construite depuis
Dockerfile.business - Environnement :
NODE_ENV=production - Restart policy :
unless-stopped
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_radarpour incluregray-matter - Pré-installe
.techradarpendant le build - Applique la configuration business (
config-business.json) - Expose le port 3000
- Démarre via
scripts/start-business.sh
Authentification Git pour Portainer
Si le dépôt est privé, utiliser un Personal Access Token (Gitea) :
- Créer un token dans Gitea avec les permissions de lecture
- Utiliser l'URL :
https://<token>@git.open.us.org/AJR/TechradarDev.git
Mise à jour
Pour mettre à jour le Radar Technologique Laplank dans Portainer :
- Pull latest image : Dans Portainer, utiliser "Pull latest image"
- Rebuild : Ou reconstruire la stack depuis Git
Déploiement avec Drone CI
Le projet est configuré pour le déploiement automatique via Drone CI (.drone.yml).
Pipeline de déploiement
- Build : Construction de l'image Docker
- Déploiement : Lancement du conteneur avec Docker Compose
- Notification : Envoi d'une notification Telegram
Configuration Drone
Le pipeline utilise :
- Variables d'environnement dynamiques basées sur le dépôt Git
- Labels pour le reverse proxy (Traefik)
- Notifications Telegram en cas de succès/échec
Variables d'environnement Drone
DRONE_REPO_OWNER: Propriétaire du dépôtDRONE_REPO_NAME: Nom du dépôtDRONE_COMMIT_BRANCH: Branche du commit
Ces variables sont utilisées pour générer le BASE_PATH dynamiquement.
Déploiement en production
Étapes recommandées
-
Préparer l'environnement
git clone https://git.open.us.org/AJR/TechradarDev.git cd TechradarDev -
Configurer les variables
- Définir
BASE_PATHselon votre configuration - Ajuster les ports si nécessaire
- Définir
-
Build et démarrage
cd docker docker compose -f docker-compose.yml -f docker-compose.labels.yml up -d --build -
Vérifier le déploiement
- Accéder à l'URL configurée
- Vérifier les logs :
docker compose logs -f
Reverse proxy
Le projet est configuré pour fonctionner derrière un reverse proxy (Traefik) via les labels dans docker-compose.labels.yml.
Sécurité
- Utiliser HTTPS en production
- Configurer les headers de sécurité appropriés
- Limiter l'accès si nécessaire
- Surveiller les logs
Mise à jour
Mettre à jour le contenu
- Modifier les fichiers dans
radar/ - Rebuild l'image :
docker compose build docker compose up -d
Mettre à jour les dépendances
- Modifier
package.jsonsi nécessaire - Rebuild l'image complète
Monitoring
Logs Docker
# Voir les logs
docker compose logs -f
# Logs du dernier démarrage
docker compose logs --tail=100
Santé de l'application
Radar Principal : Expose le port 3000. Vérifier avec :
curl http://localhost:3000/techradar
Radar Technologique Laplank : Expose le port 3006 (mappé depuis 3000). Vérifier avec :
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.
Rollback
En cas de problème, revenir à une version précédente :
# Arrêter le conteneur actuel
docker compose down
# Checkout une version précédente
git checkout <commit-hash>
# Rebuild et redémarrer
docker compose build
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