Skip to content

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

OutilRequisNotes
.NET 9 SDKOuiPour compiler backend, client, manager
Node.js 20+OuiPour compiler le frontend Vue
Inno Setup 6OuiPour générer l'installateur .exe
InternetRecommandé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.ps1

Options :

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

#ÉtapeDescription
1Génération setup.issDepuis app.config.json via generate-setup.ps1
2NettoyageSuppression de staging/ et Installer/
3CompilationBackend, Client, Manager (self-contained), Frontend (npm build)
3bWebView2Téléchargement du runtime Standalone depuis Microsoft (optionnel, ~150 Mo)
3cPostgreSQLCopie des binaires PostgreSQL portables dans staging/pgsql/ (optionnel, -SkipPostgreSQL)
4InstallateurGénération via Inno Setup → Installer/Superviseur-Setup.exe
5Ré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/ et Installer/ sont gitignorés.

Ce que fait l'installateur chez le client

  1. Fermeture automatique des instances en cours (taskkill /f, arrêt service)
  2. Copie des fichiers dans C:\Program Files\Superviseur\
  3. Installation silencieuse de WebView2 (si embarqué dans l'installateur)
  4. PostgreSQL embarqué : initialisation de la base (initdb), enregistrement du service Superviseur-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.
  5. Création du service Windows Superviseur-Service (démarrage auto, redémarrage auto sur crash)
  6. Raccourcis bureau et menu Démarrer
  7. 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 service
  • Uploads/ — 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ésinstaller

L'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

FichierRôleVersionné
app.config.jsonConfiguration générale (nom, version, Modbus, ports)Oui
backend/appsettings.jsonConfig runtime ASP.NET (JWT, logs, polling)Oui
backend/appsettings.Crypto.jsonClés revendeurs + secret applicatif (SuperAdmin + rôle PostgreSQL)Non (gitignored)

appsettings.Crypto.json doit être présent dans backend/ au moment du dotnet 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.

Documentation Technique