fc61404271
- Wizard: installation 100% offline (WSL bundle, Podman MSI, machine image, docker-compose) - Wizard: suppression de wsl --install --no-distribution - Wizard: .wslconfig avec 8Go RAM / 4 CPU - Wizard: operations asynchrones pour eviter le freeze UI - Wizard: detection automatique de podman.exe - Wizard: version 0.1.1 - Agent: passage en v0.3.18 - Serveur: registry PrestaShop en HTTPS via gitea.alfrednobel.edudeploy.com - Caddy: config gitea.alfrednobel.edudeploy.com - Docs: mise a jour SUIVI_INSTALLER.md, README.md, seed.ts
128 lines
5.5 KiB
Markdown
128 lines
5.5 KiB
Markdown
# Feuille de route — Installateur studioE5 Agent
|
||
|
||
## Objectif
|
||
|
||
Fournir un **installateur professionnel Windows** pour studioE5 Agent, guidé pas à pas, qui gère les prérequis (WSL2 / Podman) et propose une désinstallation complète.
|
||
|
||
## Architecture choisie
|
||
|
||
- **Wizard C# Windows Forms (.NET 8)** : `setup-wizard/`
|
||
- Détecte les prérequis.
|
||
- Installe WSL2 si besoin (avec reprise après redémarrage via `RunOnce`).
|
||
- Installe Podman depuis le MSI officiel.
|
||
- Initialise et démarre la machine Podman.
|
||
- Lance le package Inno Setup de studioE5 Agent.
|
||
- Mode désinstallation via `/uninstall`.
|
||
- **Package agent (Inno Setup)** : `studioE5-agent.iss`
|
||
- Installe `studioE5-agent.exe` + binaires Tailscale.
|
||
- Crée les raccourcis.
|
||
- Gère la désinstallation.
|
||
|
||
## État actuel
|
||
|
||
### ✅ Réalisé
|
||
|
||
- Wizard C# avec 7 étapes guidées.
|
||
- Détection des prérequis : Windows, RAM, disque, WSL2, Podman.
|
||
- Installation WSL2 en plusieurs étapes contrôlées avec suivi visuel :
|
||
1. Activation des fonctionnalités Windows (`Microsoft-Windows-Subsystem-Linux` et `VirtualMachinePlatform`) avec gestion du code 3010 (redémarrage nécessaire).
|
||
2. Installation du package WSL2 complet depuis le bundle Microsoft Store offline (`Microsoft.WSL_*.msixbundle`) via `Add-AppxPackage`.
|
||
3. Mise à jour du noyau WSL2 depuis le MSI bundlé (`wsl_update_x64.msi`) ou, en dernier recours, via `wsl --update`.
|
||
4. Définition de WSL2 comme version par défaut (`wsl --set-default-version 2`).
|
||
5. L’étape `wsl --install --no-distribution` n’est plus utilisée : l’installation est entièrement offline grâce au bundle.
|
||
6. Conversion des distributions WSL1 existantes vers WSL2 (`wsl --set-version <nom> 2`) si nécessaire.
|
||
- Reprise automatique après redémarrage grâce à `RunOnce` (y compris redémarrage post-installation WSL2).
|
||
- Versioning indépendant du wizard (fichier `setup-wizard/VERSION`, affiché dans la fenêtre et la page d’accueil).
|
||
- Amélioration de l’interface : fenêtre agrandie à 800×600, `AutoScaleMode = Dpi`, meilleur rendu sur petits écrans (11 pouces).
|
||
- `RunCommand` capture désormais stdout + stderr pour des diagnostics et fallbacks plus fiables.
|
||
- Détection des prérequis vérifie que WSL2 (et non WSL1) est installé via `wsl --status`.
|
||
- Installation Podman via MSI bundlé.
|
||
- Configuration Podman (`machine init` + `machine start`), avec initialisation offline possible depuis une image locale (`podman-machine.*.wsl.tar.zst`).
|
||
- Lancement du package Inno Setup agent.
|
||
- Mode désinstallation complet.
|
||
- Script Inno Setup de base pour l’agent.
|
||
|
||
### 🔄 En cours / À tester
|
||
|
||
- Compilation et test du wizard sur Windows.
|
||
- Packaging final (wizard + MSI Podman + setup agent) en un seul dossier distribuable.
|
||
|
||
### ⏳ À venir
|
||
|
||
- Signature de l’exécutable pour éviter les alertes SmartScreen.
|
||
- Support macOS et Linux.
|
||
- Installateur silencieux possible pour déploiement GPO.
|
||
|
||
## Build du wizard
|
||
|
||
### Prérequis
|
||
|
||
- Windows 10/11
|
||
- .NET 8 SDK
|
||
- Inno Setup 6 (pour générer `studioE5-agent-setup.exe`)
|
||
|
||
### Fichiers à placer
|
||
|
||
Dans `setup-wizard/Resources/` :
|
||
|
||
```text
|
||
podman-installer-windows-amd64.msi
|
||
studioE5-agent-setup.exe
|
||
Microsoft.WSL_2.7.10.0_x64_ARM64.msixbundle # package WSL2 complet (offline)
|
||
podman-machine.x86_64.wsl.tar.zst # image Podman machine pour WSL (offline)
|
||
docker-compose-windows-x86_64.exe # Docker Compose standalone (offline)
|
||
wsl_update_x64.msi # optionnel, fallback noyau WSL2
|
||
```
|
||
|
||
### Commande
|
||
|
||
```powershell
|
||
cd setup-wizard
|
||
dotnet publish -c Release -r win-x64 --self-contained true /p:PublishSingleFile=true
|
||
```
|
||
|
||
### Sortie
|
||
|
||
```text
|
||
setup-wizard\bin\Release\net8.0-windows\win-x64\publish\StudioE5-SetupWizard.exe
|
||
```
|
||
|
||
## Build du package agent (Inno Setup)
|
||
|
||
Structure attendue :
|
||
|
||
```text
|
||
agent/
|
||
├── studioE5-agent.exe
|
||
├── tailscale-bin/
|
||
│ └── windows/
|
||
│ ├── tailscale.exe
|
||
│ ├── tailscaled.exe
|
||
│ └── wintun.dll
|
||
└── installer/
|
||
└── studioE5-agent.iss
|
||
```
|
||
|
||
Ouvrir `studioE5-agent.iss` avec Inno Setup Compiler et compiler (`Ctrl+F9`).
|
||
|
||
Le fichier généré se trouve dans `installer-output/`.
|
||
|
||
## Notes importantes
|
||
|
||
- Le wizard doit être exécuté **en administrateur**.
|
||
- L’installation de WSL2 nécessite un **redémarrage** de l’ordinateur après l’activation des fonctionnalités Windows.
|
||
- L’installation de WSL2 est découpée en étapes et chaque étape est enregistrée pour permettre la reprise après redémarrage.
|
||
- Podman nécessite WSL2 : le wizard vérifie donc que la version par défaut de WSL est 2.
|
||
- Le MSI Podman officiel pour Windows est `podman-installer-windows-amd64.msi`.
|
||
- Le bundle WSL2 offline est disponible sur <https://github.com/microsoft/WSL/releases> : `Microsoft.WSL_2.7.10.0_x64_ARM64.msixbundle`.
|
||
- L’image Podman machine offline est disponible sur <https://github.com/containers/podman-machine-os/releases> : `podman-machine.x86_64.wsl.tar.zst`.
|
||
- Docker Compose standalone est disponible sur <https://github.com/docker/compose/releases> : `docker-compose-windows-x86_64.exe`.
|
||
- Le wizard crée automatiquement un fichier `.wslconfig` allouant **8 Go de RAM et 4 CPU** à WSL2, ce qui est nécessaire pour des applications lourdes comme PrestaShop.
|
||
- Pour la désinstallation, le MSI Podman doit être présent dans `Resources/`.
|
||
|
||
## Liens utiles
|
||
|
||
- Releases Podman : <https://github.com/containers/podman/releases>
|
||
- Inno Setup : <https://jrsoftware.org/isdl.php>
|
||
- .NET 8 SDK : <https://dotnet.microsoft.com/download/dotnet/8.0>
|