--- title: "First Deployment (New Project)" type: operation sources: - sources/archives/Premier_deploiement.md related: - operations/vm-installation.md - operations/deployment-existing-app.md - operations/custom-application-management.md - operations/gna-services-license.md - architecture/overview.md - concepts/parameters.md last_compiled: "2026-04-17" --- # First Deployment (New Project) ## Overview Procédure de **premier déploiement** d'un projet EasyWMS sur une VM de développement fraîchement préparée (cf. [vm-installation](vm-installation.md)). Déclinaison des étapes à suivre pour initialiser : - Le fichier de configuration de déploiement **`DeployConfig.yaml`** (choix BDD, version WMS, modules, applications) - Le dépôt GIT du projet (fichier de layout EasyS, paramètres uGNA) - Le script de déploiement **`deploy_repository.ps1`** (script unifié qui remplace les anciens `deploy.ps1` + `commands.ps1`) - La première **custom application** (cf. [custom-application-management](custom-application-management.md)) Cette procédure n'est exécutée qu'**une seule fois par projet**. Pour tous les déploiements ultérieurs (autre dev rejoignant le projet, redéploiement après modif), voir [deployment-existing-app](deployment-existing-app.md). Source : Confluence EasyWMS France — *Premier déploiement* (v39, 07/08/2025). ## Étape 1 — `DeployConfig.yaml` Le fichier **`build/DeployConfig.yaml`** du dépôt GIT du projet pilote le déploiement. S'il est absent, le télécharger et l'y placer. Champs critiques à vérifier : ### TenantName / TenantCode ```yaml TenantName: MonNomProjet TenantCode: MonCodeProjet ``` ### DBEngine Doit correspondre à l'engine défini dans **`C:\deploy\env.secrets.yaml`** de la VM. ```yaml DBEngine: Oracle # SQLServer | MySQL | Oracle | PostgreSQL ``` ### MAPSeed (version WMS) Dernière version publiée sur **[mapdeploy.mecalux.com](https://msscc.mecalux.com/documentation/documentation/master/EN/ReleaseNotes.md)** : ```yaml MAPSeed: 22.9.19.1 ``` ### License ```yaml License: ENTERPRISE # PRO | ADVANCE | ENTERPRISE ``` ### Warehouse (layout EasyS) Chemin relatif au fichier de layout (typiquement `layout_config/`) : ```yaml Warehouse: layout_config/MAPAB_layout.cfg2014 ``` ### Data (paramètres uGNA) Chemin relatif aux fichiers de config WMS (typiquement `test/`) : ```yaml Data: test ``` ### StandardApplications Les applications à installer — reprendre la liste `` du `responses.xml` du projet, en ne gardant que celles avec `Use="Yes"` : ```yaml StandardApplications: - SmartUI ``` ### EnabledModules Liste complète des modules à activer — reprendre la balise `` du `responses.xml`, **sauf `EasyWMS`** (inclus par défaut). > ⚠️ **Problème connu versions 24.xx.xx.xx** : l'étape *"Importing apps with AD..."* peut durer très longtemps et échouer avec une erreur `System.Management.Automation.RuntimeException`. Dans ce cas, ajouter **`ToggleService`** à la liste. ```yaml EnabledModules: - SmartUI - AccountDirective - Billing - CashAndCarry - Dashboard - Deliveries - Ecommerce - GalileoFaults - LaborManagement - Manufacturing - MarketPlace - OwnerExtensions - PalletShuttle - Sage200c - SageX3 - Slotting - TPLPortal - ValueAddedService - YardManagement - EDSService - ExternalDevices - GalileoDesigner - Gateway - GNA - PrinterService - PTLService - PalletShuttleService - VoicePicking - ToggleService # Requis en version >= 24.xx ``` ### Customs (application custom) Laisser **vide pour ce premier déploiement** — renseigné à l'étape 10. ### Users Laisser vide pour conserver uniquement l'utilisateur `mecalux` par défaut ; sinon : ```yaml Users: - UserName: Password: UserPassword Groups: SuperAdmin,Administrators,Managers,Operators ``` ## Étape 2 — Déposer le fichier de layout EasyS Placer le fichier de configuration entrepôt EasyS (ex : `MAPAB_layout.cfg2014`) dans le dossier **`layout_config/`** du dépôt GIT. > ⚠️ Bien **commit et push** après dépôt — le script de déploiement clone le GIT. ## Étape 3 — Vérifier `env.secrets.yaml` sur la VM Dans **`C:\deploy\env.secrets.yaml`** de la VM, vérifier que les paramètres BDD correspondent à la BDD de la VM : | Paramètre | Valeur par défaut | |-----------|-------------------| | `Engine` | `Oracle` ou `PostgreSQL` | | `Server` | `localhost/orcl` (Oracle) / `localhost` (PostgreSQL) | | `Password` (toutes BDD) | `robmec` | ## Étape 4 — Déploiement complet (script unifié) Ouvrir **PowerShell en administrateur** dans **`C:\deploy`** de la VM : ```powershell # Sur Master (par défaut) .\deploy_repository.ps1 NomDuProjetGit # Sur une branche spécifique .\deploy_repository.ps1 NomDuProjetGit Branche ``` Exemple : ```powershell .\deploy_repository.ps1 1707_FRANCE_MA_PIECES_AUTOS_BRETAGNE ``` > D'après l'équipe Espagne, il devrait être possible de déployer n'importe quelle version depuis la **21.1.19.2** via ce script unifié. ### Cas d'erreurs classiques - **VM non connectée à internet** → lancer Internet Explorer pour s'authentifier à Zscaler (VPN désactivé au bureau, actif en télétravail) - **Git absent** sur la VM → installer depuis [git-scm.com/download/win](https://git-scm.com/download/win) - **Autres erreurs** → voir documentation Confluence *Installation machine virtuelle de développement*, paragraphe "Deploy 1" > ✅ Si aucune erreur : les étapes 5, 6, 7 sont à **sauter**. L'étape 8 (Tenants.xml) reste **obligatoire**. ## Étapes 5–7 (anciens scripts uniquement) À n'exécuter que si le projet utilise les **anciens scripts** `deploy.ps1` + `commands.ps1` (pas `deploy_repository.ps1`). ### 5 — Deploy 1 (Complete) ```powershell .\deploy.ps1 # choisir "1. Complete" ``` ### 6 — Load (config entrepôt + paramètres uGNA) ```powershell .\deploy.ps1 # choisir "2. Load" ``` Ce qui est chargé : - Config entrepôt depuis `C:\deploy\Config` - Paramètres uGNA depuis `C:\deploy\Data` > Alternative : charger le layout via **EasyS → Transfert Data** vers la VM. ### 7 — Assignation utilisateur ```powershell .\Commands\commands.ps1 ``` Alternative SmartUI : **Organisation → Utilisateurs** → sélectionner `mecalux` → ajouter les sites autorisés. ## Étape 8 — Désactiver les instances en BDD (OBLIGATOIRE) > ⚠️ **Sans cette modification, les instances ne fonctionnent pas.** Dans **`C:\inetpub\wwwroot\ApplicationService\Tenants.xml`**, remplacer : ```xml ``` par : ```xml ``` Puis redémarrer l'application : `iisreset` ou recyclage du pool **ApplicationService**. ### Astuce Notepad++ (multi-tenant) Activer le mode **Regular expression** dans `Replace` (`Ctrl+H`) : - **Recherche** : `(` Chaque occurrence est remplacée en conservant le nom de Tenant. ## Étape 9 — Créer l'application custom Procéder à la création initiale de la custom app et son premier export sur GIT. Voir [custom-application-management — Création](custom-application-management.md#creation). ## Étape 10 — Compléter `DeployConfig.yaml` avec le Custom Une fois la custom app créée et exportée, renseigner la section `Customs` : ```yaml Customs: - NomApplication: chemin/du/dossier/GIT/de/lapplication ``` Exemple : ```yaml Customs: - CustomApplication: source/CustomApplication ``` Désormais, chaque déploiement ultérieur (`deploy_repository.ps1`) reprendra automatiquement la custom app depuis le GIT. ## Parameters (DeployConfig.yaml) | Clé | Type | Rôle | |-----|------|------| | `TenantName` / `TenantCode` | string | Identifiant du tenant EasyWMS | | `DBEngine` | enum | `Oracle` / `PostgreSQL` / `SQLServer` / `MySQL` — doit matcher `env.secrets.yaml` | | `MAPSeed` | string (version) | Version WMS à déployer depuis mapdeploy | | `License` | enum | `PRO` / `ADVANCE` / `ENTERPRISE` | | `Warehouse` | path | Chemin relatif layout EasyS (`.cfg2014`) | | `Data` | path | Chemin relatif dossier uGNA | | `StandardApplications` | list | Applications à installer (miroir ``) | | `EnabledModules` | list | Modules activés (miroir `` sans `EasyWMS`) | | `Customs` | list | Apps custom à importer (renseigné étape 10) | | `Users` | list | Users additionnels (sinon `mecalux` seul) | ## Common errors - **`RuntimeException` pendant "Importing apps with AD..."** sur versions 24.xx.xx.xx → ajouter **`ToggleService`** dans `EnabledModules`. - **BDD refuse la connexion pendant le deploy** → divergence entre `DBEngine` du `DeployConfig.yaml` et l'engine du template VM. Vérifier `env.secrets.yaml`. - **Deploy OK mais instances WMS inactives** → étape 8 (Tenants.xml → `InMemory`) **non exécutée**. Étape obligatoire, même si tout semble fonctionner. - **`License` non accepté** → la VM fonctionne 7 jours ; au-delà, demander une licence projet (cf. [gna-services-license](gna-services-license.md#license)). - **Script ne trouve pas le projet GIT** → vérifier nom exact du repo (sensible à la casse) et connectivité Zscaler/VPN. - **Plusieurs devs → différents `TenantName`** → pas un bug en soi, mais perturbe les merges. Convenir d'un `TenantName` unique par projet. ## Related - [VM Installation](vm-installation.md) — pré-requis : VM Hyper-V créée et validée - [Deploy Existing Application](deployment-existing-app.md) — déploiements ultérieurs (autres devs, redéploiement, changement de branche) - [Deploy Specific Commit](deployment-specific-commit.md) — déployer un commit figé plutôt que le HEAD d'une branche - [Custom Application Management](custom-application-management.md) — étape 9 (création initiale de la custom app) - [Git Workflow](git-workflow.md) — stratégie de branches pour le projet - [GNA, Services & License](gna-services-license.md) — installation des services GNA, Printer, License WMS après déploiement - [System Architecture Overview](../architecture/overview.md) — stack cible (IIS, BDD, services) - [Parameters](../concepts/parameters.md) — paramètres WMS chargés via uGNA (étape 6)