Thème
Déploiement — Superviseur
Scripts et ressources pour compiler, packager et générer l'installateur Windows de la solution.
Prérequis sur la machine de build
| Outil | Requis | Notes |
|---|---|---|
| .NET 9 SDK | Oui | Pour compiler backend, client, manager |
| Node.js 20+ | Oui | Pour compiler le frontend Vue |
| Inno Setup 6 | Oui | Pour générer l'installateur .exe |
| Internet | Recommandé | Pour télécharger WebView2 automatiquement |
Inno Setup 6 : C:\Program Files (x86)\Inno Setup 6\ ou %LocalAppData%\Programs\Inno Setup 6\
Lancer le build
powershell
cd deployment
.\build-all.ps1Options :
powershell
.\build-all.ps1 -SkipFrontend # Saute la build Vue (utile si frontend inchangé)
.\build-all.ps1 -SkipWebView2 # Saute le téléchargement WebView2 (~150 Mo)
.\build-all.ps1 -SkipPostgreSQL # Saute la copie des binaires PostgreSQL portablesÉtapes du build
| # | Étape | Description |
|---|---|---|
| 1 | Génération setup.iss | Depuis app.config.json via generate-setup.ps1 |
| 2 | Nettoyage | Suppression de staging/ et Installer/ |
| 3 | Compilation | Backend, Client, Manager (self-contained), Frontend (npm build) |
| 3b | WebView2 | Téléchargement du runtime Standalone depuis Microsoft (optionnel, ~150 Mo) |
| 3c | PostgreSQL | Copie des binaires PostgreSQL portables dans staging/pgsql/ (optionnel, -SkipPostgreSQL) |
| 4 | Installateur | Génération via Inno Setup → Installer/Superviseur-Setup.exe |
| 5 | Résumé | Tailles des artefacts produits |
Artefacts produits
staging/
├── backend/ Superviseur-Service.exe (self-contained)
│ app.config.json, appsettings*.json, wwwroot/
├── client/ Superviseur.exe (self-contained)
├── manager/ Superviseur-ServiceManager.exe (self-contained)
├── pgsql/ Binaires PostgreSQL portables (si non sauté)
└── webview2/ MicrosoftEdgeWebView2RuntimeInstallerX64.exe (si téléchargé)
Installer/
└── Superviseur-Setup.exe ← Installateur final livrable
staging/etInstaller/sont gitignorés.
Ce que fait l'installateur chez le client
- Fermeture automatique des instances en cours (
taskkill /f, arrêt service) - Copie des fichiers dans
C:\Program Files\Superviseur\ - Installation silencieuse de WebView2 (si embarqué dans l'installateur)
- PostgreSQL embarqué : initialisation de la base (
initdb), enregistrement du serviceSuperviseur-Service-PostgreSQL, création du rôle applicatif et de la base (mot de passe dérivé du secret applicatif). Une mise à jour préserve la base existante. - Création du service Windows
Superviseur-Service(démarrage auto, redémarrage auto sur crash) - Raccourcis bureau et menu Démarrer
- Registre : démarrage automatique du gestionnaire à l'ouverture de session
Données utilisateur — jamais modifiées par l'installateur
Stockées dans C:\ProgramData\Superviseur\ :
pgdata/— cluster PostgreSQL embarqué (centrales, utilisateurs, logs, plans)logs/— journaux du serviceUploads/— images de plans interactifs
Une mise à jour par-dessus une installation existante préserve toutes ces données.
Désinstallation
Panneau de configuration → Programmes → Superviseur → DésinstallerL'installateur ferme l'application, supprime le service et les fichiers programme. C:\ProgramData\Superviseur\ est conservé pour permettre une réinstallation sans perte.
Fichiers de configuration
| Fichier | Rôle | Versionné |
|---|---|---|
app.config.json | Configuration générale (nom, version, Modbus, ports) | Oui |
backend/appsettings.json | Config runtime ASP.NET (JWT, logs, polling) | Oui |
backend/appsettings.Crypto.json | Clés revendeurs + secret applicatif (SuperAdmin + rôle PostgreSQL) | Non (gitignored) |
appsettings.Crypto.jsondoit être présent dansbackend/au moment dudotnet publish— il est inclus automatiquement dans le build.
Modifier le nom ou la version
Éditer app.config.json à la racine du projet, puis relancer build-all.ps1. Le setup.iss est régénéré automatiquement à chaque build via generate-setup.ps1.