← Retour au site DevLauncher
DevLauncher Documentation v1.5 Novatech Solution

Documentation de DevLauncher

DevLauncher lance, surveille et débogue les projets web de ton serveur local (XAMPP, Laragon, WAMP…) depuis une seule fenêtre, chacun sur son propre port.

Version 1.5 · Windows 10 et 11 · Novatech Solution

1Présentation

Au démarrage, DevLauncher recherche les serveurs locaux sur tous les disques, liste les projets qu'ils contiennent et identifie leur type. Depuis l'application, tu peux :

  • lancer et arrêter chaque projet sur le port de ton choix, sans terminal ;
  • exécuter les commandes courantes (installation, migrations, seeders, caches) ;
  • configurer et créer la base de données d'un projet Laravel ;
  • lire les erreurs expliquées, avec les fichiers concernés, et les fichiers de log ;
  • capturer les mails envoyés par tes projets pour voir leur rendu ;
  • démarrer automatiquement MySQL, Apache et tes projets ;
  • diagnostiquer et réparer MySQL et Apache, et sauvegarder tes bases ;
  • produire les diagrammes UML du projet (classes, séquence, activité) en PNG ou PDF.

Prérequis

PourLogiciel nécessaire
Projets Laravel / PHPXAMPP, Laragon, WAMP ou MAMP (PHP et MySQL) et Composer.
Next, Nuxt, React, Vue, AngularNode.js (version LTS recommandée).
Ouverture des fichiersVisual Studio Code (facultatif, recommandé).

DevLauncher embarque son propre moteur : il n'a besoin d'aucune installation supplémentaire pour fonctionner.

2Installation

  1. Exécute DevLauncher-Setup-1.5.0.exe.
  2. Si Windows affiche Windows a protégé votre ordinateur, clique sur Informations complémentaires puis Exécuter quand même. Ce message s'affiche pour les logiciels non signés par un certificat commercial.
  3. Conserve le dossier proposé ou choisis-en un autre, puis clique sur Installer.
  4. Clique sur Terminer. DevLauncher s'ouvre ; il est ensuite accessible depuis le Bureau et le menu Démarrer.
SujetDétail
DroitsAucun droit administrateur requis : installation pour le compte Windows courant.
Mise à jourExécute le nouvel installateur. Il ferme DevLauncher, remplace les fichiers et conserve les réglages.
DésinstallationParamètres Windows → Applications → Applications installées → DevLauncher. Les projets ne sont jamais modifiés.
DéploiementInstallation silencieuse : DevLauncher-Setup-1.5.0.exe /S, avec /D=C:\chemin pour choisir le dossier.
Version portableDécompresse DevLauncher-1.5.0-portable.zip et lance DevLauncher.exe.
NoteLe premier lancement peut prendre une dizaine de secondes, le temps que l'antivirus de Windows analyse les fichiers.

3Interface

ZoneContenu
Barre supérieureOnglets Projets, Boîte mail, Serveur et Aide, boutons Nouveau projet, Ajouter un dossier, Actualiser, Paramètres et thème clair/sombre. Le logo ouvre la fenêtre À propos.
Liste des projetsProjets regroupés par dossier racine, avec type, sous-dossier, port et bouton Lancer/Arrêter. Recherche et filtre par type ou par état.
Détail du projetOnglets Vue d'ensemble, Console, Erreurs, Logs, Base de données et File d'attente (Laravel), Diagrammes UML. Le bouton Aide à droite des onglets ouvre ce guide sur la section de l'onglet affiché.
AideCe guide, intégré à l'application. Les boutons de situation (« Un projet ne démarre pas », « Port déjà utilisé »...) mènent directement à la bonne section ; la recherche surligne chaque occurrence (Entrée : suivante, Maj+Entrée : précédente). La touche F1 ouvre l'aide de l'écran affiché, depuis n'importe où.
Barre d'étatServeurs détectés, versions de PHP, Composer, Node, état d'Apache, de MySQL et de la boîte mail.

États d'un projet

IndicateurSignification
GrisArrêté.
Bleu clignotantDémarrage en cours (installation des dépendances, compilation).
VertEn ligne, lancé par DevLauncher.
OrangeEn ligne, lancé en dehors de DevLauncher (voir section 7).
RougeÉchec du lancement ; la cause est affichée dans la vue d'ensemble.

4Créer un projet

Le bouton Nouveau projet de la barre du haut crée un projet complet sans taper de commande. DevLauncher exécute lui-même les outils officiels de création (Composer, npm) et affiche leur progression.

  1. Choisis le type : Laravel, Next.js, Nuxt, React, Vue, Svelte, Angular, Astro, API Express ou site PHP. Un type grisé indique l'outil manquant (PHP 8.2, Composer ou Node.js).
  2. Choisis le dossier de destination : le dossier web d'un serveur local (XAMPP, Laragon, WAMP) ou Autre dossier...
  3. Saisis le nom du projet. Les espaces deviennent des tirets ; les projets JavaScript sont en minuscules (règle de npm). Un nom déjà pris est signalé.
  4. Choisis la version : Laravel 12, 11, 10 ou 9 ; Next.js (dernière, 15 ou 14) ; Angular (dernière, 19, 18 ou 17) ; React 19 ou 18 ; Express 5 ou 4. Pour Laravel, DevLauncher utilise le PHP du poste compatible avec la version choisie ; une version barrée signale qu'aucun PHP compatible n'est installé.
  5. Règle les options proposées, puis clique sur Continuer.
  6. L'écran Vérification récapitule le dossier, l'adresse locale, la version de PHP et les étapes prévues. Clique sur Créer le projet.
TypeOptionsCe que fait DevLauncher
LaravelBase SQLite ou MySQL, dépendances npmTélécharge Laravel avec le PHP 8.2+ le plus récent, renseigne le nom et l'adresse dans le .env. En MySQL : crée la base (nom du projet) sur le serveur local et crée les tables.
Next.jsTypeScript, Tailwind CSS, ESLintProjet avec App Router et dossier src, dépendances installées.
React, Vue, SvelteTypeScriptProjet Vite, dépendances installées.
Nuxt, Angular, Astro—Modèle minimal officiel, dépendances installées.
API Express, site PHP—Fichiers de départ prêts à modifier (route /api/sante, page index.php).

La création peut prendre plusieurs minutes (téléchargements) : la durée de chaque étape s'affiche en direct. La fenêtre peut être fermée : la création continue et le bouton Nouveau projet la réaffiche. Une fois terminé, le projet apparaît dans la liste avec un port libre déjà attribué ; Voir le projet l'ouvre directement.

InterruptionSi une étape échoue ou si tu annules, le dossier déjà créé est conservé et l'étape en échec est indiquée. Les étapes restantes (dépendances, tables) se relancent depuis les actions du projet.

5Lancer un projet

  1. Sélectionne le projet, puis clique sur Lancer (ou sur le bouton lecture dans la liste).
  2. Si les dépendances sont absentes (vendor, node_modules), elles sont installées automatiquement avant le lancement.
  3. Lorsque le serveur répond, l'état passe au vert et une notification affiche l'adresse. Clique dessus pour ouvrir le site.

Arrêter coupe le serveur et Vite ; Redémarrer applique une modification de configuration. Plusieurs projets peuvent tourner en même temps, sur des ports différents. À la fermeture de la fenêtre, les serveurs lancés par DevLauncher sont arrêtés, sauf réglage contraire (section 20).

6Ports

Chaque projet reçoit un port libre à sa première détection : 8000+ pour Laravel, 3000+ pour Next et Nuxt, 5173+ pour Vite, 4200 pour Angular. Pour le changer : Vue d'ensemble → Serveur → Port → Modifier.

La fenêtre de modification vérifie le port pendant la saisie : libre, déjà attribué à un autre projet, ou occupé par un programme (dont le nom est indiqué). Trouver un port libre en propose un. Le réglage est conservé.

Mise à jour automatique de l'environnement. Quand tu changes le port, DevLauncher corrige lui-même les adresses locales des fichiers .env, .env.local et .env.development : APP_URL, toute adresse localhost:<ancien port> et la clé PORT. Une notification liste les lignes modifiées et une copie .env.devlauncher.bak est conservée. Les ports de la base de données et des mails ne sont jamais touchés, ni les adresses distantes. Pour Laravel, si APP_URL ne correspond pas au port au lancement, la bonne adresse est appliquée pour la session.

AttentionUn port affiché en rouge dans la liste est attribué à deux projets. Modifie l'un d'eux avant de lancer.

7Projets lancés à la main

Un projet démarré depuis un terminal ou VS Code (php artisan serve, npm run dev…) est détecté automatiquement en quelques secondes : notification, bandeau sous la barre supérieure et indicateur orange. Sa vue d'ensemble indique le port, le programme et son numéro de processus, et propose :

ActionEffet
OuvrirOuvre le site sur le port réellement utilisé.
Utiliser le port … pour ce projetEnregistre ce port comme port du projet.
Relancer avec DevLauncherArrête le serveur existant puis le relance depuis DevLauncher (console, erreurs et mails capturés).
ArrêterArrête le serveur, après confirmation.

8Terminal et éditeur

Les trois boutons en haut à droite du détail ouvrent le dossier du projet, un terminal et VS Code. Le terminal s'ouvre directement dans le dossier du projet, avec la version de PHP et Composer choisie pour ce projet : php artisan, composer et npm y fonctionnent sans configuration.

9Laravel : version de PHP et actions

DevLauncher lit la version de PHP exigée par composer.json et utilise celle du serveur du projet si elle convient, sinon la plus récente disponible sur le poste. Exemple : un projet qui exige PHP 8.3 placé dans XAMPP (PHP 8.2) est lancé avec le PHP 8.3 de Laragon. La version utilisée figure sous le nom du projet.

Chaque action ouvre une fenêtre qui décrit son effet et la commande exacte. Après confirmation, la sortie s'affiche en direct, puis le résultat.

ActionCommandeEffet
Installer les dépendancescomposer installCrée aussi le .env depuis .env.example, génère la clé si elle est vide et exécute npm install si le projet utilise Vite.
Vider les cachesoptimize:clearÀ lancer après une modification du .env.
Lien de stockagestorage:linkRend publics les fichiers envoyés.
MigrermigrateCrée les tables manquantes ; les données sont conservées.
État des migrationsmigrate:statusListe les migrations exécutées et en attente.
Remplir (seed)db:seedInsère les données de départ ou de test.
Annuler la dernière migrationmigrate:rollbackAnnule le dernier lot de migrations.
Réinitialiser la basemigrate:fresh --seedSupprime toutes les tables puis les recrée.
AttentionLes actions en rouge suppriment des données. Elles ne s'exécutent qu'après avoir coché la case de confirmation.

Le bon serveur MySQL

Chaque projet appartient au serveur dont il est dans le dossier (htdocs de XAMPP, www de Laragon…). Avant une action sur la base (migrer, seed, rollback, réinitialiser, état), DevLauncher vérifie quel MySQL répond sur le port du .env :

  • si c'est celui du serveur du projet, l'action s'exécute normalement (le serveur utilisé est indiqué dans la fenêtre) ;
  • si c'est celui d'un autre serveur (par exemple le MySQL de XAMPP pour un projet Laragon), l'action est bloquée : Basculer vers le MySQL de … arrête l'autre MySQL, démarre le bon, puis exécute l'action. Exécuter quand même reste possible, en connaissance de cause.

La vue d'ensemble du projet affiche la même alerte, avec le bouton de bascule.

10Base de données

L'onglet Base de données d'un projet Laravel regroupe la connexion, l'état de la base et sa création.

Configurer la connexion

La carte Connexion (.env) affiche le type (MySQL, MariaDB, SQLite, PostgreSQL), l'hôte, le port, la base, l'utilisateur et le mot de passe lus dans le .env.

  • Tester la connexion vérifie les valeurs saisies sans les enregistrer, et indique si la base existe.
  • Enregistrer dans .env affiche les lignes qui seront modifiées, puis les écrit. Le reste du fichier est conservé et l'ancienne version est sauvegardée dans .env.devlauncher.bak.
  • Un champ mot de passe vide signifie « inchangé ».

Créer la base

  1. Si la base indiquée n'existe pas, clique sur Créer la base (ou sur Nouvelle base… pour un autre nom).
  2. Vérifie le nom proposé et l'interclassement (utf8mb4_unicode_ci recommandé pour Laravel).
  3. Option : Créer un utilisateur dédié, avec un mot de passe généré, limité à cette base.
  4. Laisse cochée l'option d'enregistrement dans le .env, puis clique sur Créer.
  5. Clique sur Migrer maintenant pour créer les tables.

La création utilise le compte du .env (souvent root sous XAMPP) ; un autre compte administrateur peut être indiqué dans la fenêtre. Pour SQLite, DevLauncher crée le fichier de base.

État et outils

La carte État de la base indique la version du serveur, l'existence de la base, le nombre de tables, la taille et le nombre de migrations exécutées. La liste Bases du serveur permet de rattacher le projet à une base existante. phpMyAdmin ouvre la base dans phpMyAdmin (Apache est démarré si besoin).

Seeders

L'onglet Seeders liste les fichiers de database/seeders : pour chacun, ce qu'il remplit (en clair : Devises, Rôles, Comptes utilisateurs…), sa place dans DatabaseSeeder et son code, consultable à droite ou dans l'éditeur.

  1. Coche les seeders à lancer : un numéro indique leur ordre d'exécution, modifiable avec les flèches ▲ ▼. Ordre de DatabaseSeeder coche d'un coup ceux qu'il appelle, dans le même ordre.
  2. Lancer la sélection : DevLauncher vérifie que c'est bien le MySQL du serveur du projet qui répondra, puis exécute les seeders un par un (db:seed --class), avec la durée et la sortie de chacun. Au premier échec, les suivants ne sont pas lancés.
  3. Tout lancer (DatabaseSeeder) équivaut à php artisan db:seed.
Données ajoutéesUn seeder ajoute des lignes dans la base : relancé, il peut créer des doublons, sauf s'il utilise firstOrCreate ou updateOrCreate.

11Assets Vite

Pour un projet Laravel qui utilise Vite, l'option Vite (assets) démarre le serveur Vite avec Laravel, sur son propre port, afin que le CSS et le JavaScript se chargent. Désactive-la si les assets sont déjà compilés (npm run build).

12Next, Nuxt, React, Vue et autres

Type détectéCommande lancée
Next.jsnext dev -p PORT
Nuxtnuxt dev --port PORT
React, Vue, Svelte (Vite)vite --port PORT
React (Create React App)react-scripts start avec PORT
Vue CLI, Angular, AstroCommande de développement du framework, avec le port choisi
Node, Express, NestJSScript dev ou start, avec la variable PORT

Actions disponibles : installation des dépendances (npm, yarn ou pnpm selon le projet) et compilation. Avec Prisma : génération du client, migrations, état, seed et réinitialisation.

NoteUn serveur Node/Express n'utilise le port choisi que si son code lit process.env.PORT.

13Erreurs

L'onglet Erreurs analyse le log Laravel et la console du projet, et regroupe les erreurs identiques (×8 : survenue 8 fois). Pour chaque erreur :

  • le message et le type d'exception (clique sur un message long pour le déplier) ;
  • une explication pour les erreurs courantes, avec un bouton de correction lorsqu'il en existe une : démarrer MySQL, migrer, installer les dépendances, changer de port ;
  • les fichiers concernés : PROJET pour les fichiers de l'application, VUE pour une vue Blade (le fichier .blade.php d'origine est retrouvé), et les fichiers de vendor ou node_modules regroupés à part. Un clic ouvre le fichier dans VS Code à la ligne indiquée ;
  • la trace complète.

L'analyse est relancée automatiquement lorsqu'une erreur apparaît dans la console. Les trois dernières erreurs figurent dans la vue d'ensemble.

14Logs

L'onglet Logs liste les fichiers *.log du projet (storage/logs pour Laravel) et affiche les entrées de la plus récente à la plus ancienne.

  • Filtre par niveau (erreurs, avertissements, informations, debug) et par texte.
  • Clique sur une entrée pour afficher son détail ; les chemins de fichiers y sont cliquables.
  • En direct relit le fichier toutes les 3 secondes.
  • Boutons pour relire, ouvrir le fichier dans l'éditeur ou le vider (après confirmation).

Pour les fichiers volumineux, seuls les 2 derniers Mo sont lus.

15Mails de test

DevLauncher intègre un serveur d'envoi de test (SMTP, port 2525 par défaut). Les mails envoyés par les projets y sont capturés au lieu d'être envoyés.

Configuration

CasProcédure
Projet lancé par DevLauncherAutomatique. La redirection est appliquée au lancement, sans modifier le .env. Désactivable par projet (option Mails de la vue d'ensemble).
Projet lancé à la mainBoîte mail → Configuration, puis copie les lignes MAIL_* dans le .env. Un exemple Nodemailer est fourni.
Configuration en cacheLance Vider les caches pour que Laravel prenne en compte la redirection.

Consultation

  • Chaque mail indique l'expéditeur, l'objet, les destinataires et le projet qui l'a envoyé.
  • Aperçu : rendu HTML réel en format ordinateur, tablette ou mobile. Les scripts sont bloqués et les liens s'ouvrent dans le navigateur.
  • Texte brut et En-têtes pour les vérifications techniques.
  • Pièces jointes : un clic les ouvre dans DevLauncher (images, PDF, fichiers texte, CSV, JSON), sans les enregistrer sur l'appareil. Les autres formats peuvent être téléchargés.
  • Le bouton .eml exporte le mail pour Outlook ou Thunderbird.

Le bouton d'envoi (avion en papier) génère un mail d'exemple. Les 300 derniers mails sont conservés.

16File d'attente des e-mails

Quand un projet Laravel met ses e-mails et notifications en file d'attente (ShouldQueue), ils attendent dans la base avant d'être envoyés. L'onglet File d'attente les rend visibles et pilotables, sans commande.

ÉlémentRôle
En attenteChaque élément est décrit en clair : nature (e-mail, notification, tâche), titre, destinataires, nombre d'essais. Envoyer maintenant traite la file une fois ; Vider la file supprime les éléments non commencés.
En échecLes envois qui ont échoué, avec le message d'erreur. Relancer ou Supprimer, élément par élément ou tous ensemble.
Traitement automatiqueDémarre un traitement continu de la file. L'option Au lancement le démarre avec le projet.

Si le projet n'utilise pas encore de file (QUEUE_CONNECTION=sync), l'onglet propose de l'activer et de créer la table nécessaire. Seule la migration de cette table est exécutée : les autres migrations en attente ne sont pas lancées.

Envoi réelAvec l'interception des mails active (section 15), les e-mails traités arrivent dans la Boîte mail. Sinon, ils partent réellement : l'onglet l'indique avant tout envoi. Comme pour les migrations, DevLauncher vérifie que c'est bien le MySQL du serveur du projet qui répond.

17Diagrammes UML

L'onglet Diagrammes UML d'un projet crée des diagrammes de classes, de séquence et d'activité. Ils sont enregistrés dans le dossier docs/uml du projet (fichiers .puml), ce qui permet de les versionner avec le code.

Langage courant ou technique

Par défaut, les diagrammes générés sont rédigés en langage courant, lisibles par un client ou un chef de projet : aucune méthode HTTP (GET, POST…), aucun nom de méthode, de contrôleur ni de commande. Exemples : « Créer une facture », « Vérifier les informations saisies », « Envoyer l'e-mail d'activation », classe « Facture » avec ses champs « montant : nombre décimal », « date d'échéance : date ». Les identifiants techniques, mots de passe et clés étrangères sont masqués ; les relations sont nommées « possède », « a », « est lié à ».

Le sélecteur Technique de la fenêtre de génération revient aux noms du code (routes, méthodes, types), utile pour la documentation des développeurs.

Générer depuis le code

DiagrammeSourceContenu généré
ClassesModèles Laravel, schéma Prisma, classes TypeScript ou toutes les classes PHP d'un dossierClasses avec attributs (colonnes typées lues dans les migrations, clés {PK} / {FK}), méthodes, héritage, interfaces et relations Eloquent avec multiplicités (hasMany, belongsTo, belongsToMany…).
SéquenceUne route Laravel (routes/*.php, routes resource comprises)Utilisateur → routeur → contrôleur → FormRequest, modèles, services injectés, façades (Auth, Mail, DB…), avec les blocs alt / loop issus des conditions et boucles, et la réponse (vue, redirection, JSON).
ActivitéN'importe quelle fonction ou méthode PHP, JavaScript ou TypeScriptDébut, actions, décisions (if / else), boucles, gestion d'erreurs et fins (return). Les instructions courantes sont reformulées (« Valider les données de la requête », « Créer User »…).
  1. Clique sur Générer, choisis le type puis la source (route, fichier et fonction…).
  2. Vérifie le nom proposé et clique sur Générer.
  3. Le diagramme s'affiche ; modifie le texte à gauche pour l'ajuster, l'aperçu se met à jour en direct.

Générer plusieurs diagrammes

Quand le projet contient plusieurs actions, inutile de les traiter une par une :

ChoixRésultat
Séquence → PlusieursListe de toutes les routes à cocher (filtre, Tout cocher / Tout décocher sur les routes affichées) : un diagramme de séquence par route cochée.
Activité → PlusieursLaravel : liste des actions de contrôleur appelées par les routes (avec leurs URL) ; un diagramme d'activité par action. Autres projets : coche des fichiers, chacune de leurs fonctions donne un diagramme.
Projet completEn une fois : le diagramme de classes, une séquence par route et une activité par action (chaque partie peut être décochée).

Les noms sont attribués automatiquement (sequence-post-invoices, activite-InvoiceController-store…). Les diagrammes déjà présents sont conservés, sauf si l'option Remplacer les diagrammes qui existent déjà est cochée ; tes modifications manuelles ne sont donc pas écrasées par défaut. Une barre de progression puis un récapitulatif (créés, remplacés, conservés, en erreur) s'affichent. La liste des diagrammes est classée par type (Classes, Séquence, Activité) avec leur nombre.

Écrire un diagramme

Nouveau crée un diagramme à partir d'un exemple. La syntaxe est celle de PlantUML :

TypeSyntaxe principale
Classesclass Nom { +attribut: type +methode(): type }, abstract class, interface, enum ; relations A <|-- B (héritage), A <|.. B (réalisation), A "1" --> "*" B : libellé (association), A *-- B (composition), A o-- B (agrégation), A ..> B (dépendance).
Séquenceactor, participant, database, entity, control ; messages A -> B : texte, réponses B --> A : texte, asynchrone A ->> B ; blocs alt … else … end, opt, loop ; note over A : texte.
Activitéstart, :action;, if (condition ?) then (oui) … else (non) … endif, elseif, while (condition ?) is (oui) … endwhile (non), repeat … repeat while (…), fork … fork again … end fork, stop.

Les lignes non reconnues sont signalées sous l'éditeur. Ctrl + S enregistre.

Exporter

  • PNG : image haute définition (échelle 2), fond blanc.
  • PDF : document vectoriel au format exact du diagramme, texte sélectionnable.

Les exports sont enregistrés à côté du diagramme dans docs/uml ; la notification permet de les ouvrir directement.

18Serveur local : diagnostic et réparation

L'onglet Serveur analyse MySQL et Apache de chaque serveur détecté (XAMPP, Laragon, WAMP). Le sélecteur en haut à droite permet de passer d'un serveur à l'autre ; Diagnostiquer relance l'analyse.

Ce que le diagnostic vérifie

VérificationDétail
État et portsService démarré ou non, et programme qui occupe le port s'il ne s'agit pas de ce serveur (autre MySQL, IIS, Skype, l'Apache d'un autre serveur…).
Journal d'erreursAnalyse de la dernière session de démarrage de mysql_error.log (ou du fichier .err) et de error.log d'Apache.
Accès aux tablesChaque table est testée réellement (sans lire de données). Les tables déclarées mais illisibles (« doesn't exist in engine ») sont listées par base, avec le projet qui utilise la base.
Configuration ApacheTest httpd -t : une erreur de syntaxe est signalée avec sa ligne.
HistoriqueArrêts brutaux répétés, corruptions InnoDB passées, présence d'un fichier de crash mysqld.dmp.

Réparations proposées

Chaque réparation affiche ses étapes avant de s'exécuter et propose une sauvegarde préalable lorsque MySQL est démarré.

ProblèmeRéparation
« MySQL shutdown unexpectedly », tables système ou InnoDB endommagéesRéparer MySQL (méthode XAMPP) : le dossier data est renommé en data_old_<date> et conservé, les tables système saines de mysql\backup sont copiées, puis tes bases et ibdata1 sont remis en place.
Journaux Aria endommagés (MariaDB)Réinitialiser les journaux Aria : aria_log_control et aria_log.* sont déplacés dans un dossier devlauncher-reparation-<date> ; MariaDB les recrée.
Port pris par l'autre serveur localArrêter l'autre serveur et démarrer celui-ci : arrêt propre de l'autre MySQL ou Apache, puis démarrage.
Port pris par un autre programmeArrêter ce programme, ou Changer le port d'Apache (XAMPP : httpd.conf et httpd-ssl.conf, copie .devlauncher.bak gardée).
MySQL bloquéForcer l'arrêt de MySQL, puis redémarrage.
Tables inaccessiblesRestaurer… depuis une sauvegarde, ou Recréer avec les migrations du projet (migrate:fresh --seed).
AttentionLa méthode XAMPP remet les comptes MySQL d'origine (root sans mot de passe) : les utilisateurs créés à la main sont à recréer. Les bases et leurs données sont conservées.

Arrêter proprement

Arrêter demande à MySQL de s'arrêter normalement (journaux écrits, fichiers fermés). Couper MySQL brutalement, en fermant XAMPP ou l'ordinateur, est la cause la plus fréquente de corruption. Si l'arrêt propre est refusé (mot de passe root), DevLauncher le demande ou propose l'arrêt forcé.

En cas d'échec au démarrage, la fenêtre de résultat affiche l'extrait du journal correspondant et la cause reconnue.

19Sauvegardes

Les sauvegardes sont des fichiers .zip datés, enregistrés par défaut dans Documents\DevLauncher\Sauvegardes (modifiable avec Changer…).

TypeContenuQuand l'utiliser
Export SQLUn fichier .sql par base (structure, données, procédures, déclencheurs), sans bloquer les tables.Cas général, MySQL démarré.
Copie du dossier dataCopie brute des fichiers de MySQL.Quand MySQL ne démarre plus. MySQL doit être arrêté.

Les fichiers de configuration (my.ini, httpd.conf, httpd-ssl.conf, httpd-vhosts.conf, php.ini) peuvent être inclus. Les tables illisibles sont ignorées et signalées : le reste de chaque base est sauvegardé.

Restaurer une base

  1. Dans la liste des sauvegardes, clique sur Restaurer….
  2. Choisis la base de la sauvegarde et la base cible. Un autre nom permet de comparer sans rien écraser.
  3. Si la base cible existe, elle est d'abord sauvegardée automatiquement (sauvegarde « avant restauration »), puis remplacée.

Sauvegarde automatique

Active Automatique pour une sauvegarde SQL de toutes les bases une fois par jour, lorsque MySQL est démarré. Les 7 dernières sauvegardes automatiques sont conservées.

20Démarrage automatique

Réglages disponibles dans Paramètres :

RéglageEffet
Lancer DevLauncher avec WindowsDevLauncher démarre en arrière-plan à l'ouverture de session. Les services et projets automatiques sont prêts sans intervention.
Démarrer MySQL automatiquementActif par défaut. Démarre MySQL s'il est arrêté.
Démarrer Apache automatiquementPour phpMyAdmin et les sites servis par Apache.
Garder les serveurs actifsLa fermeture de la fenêtre n'arrête plus les projets. Quitter DevLauncher arrête tout.

Pour démarrer un projet automatiquement, active Démarrage : Lancer à l'ouverture de DevLauncher dans sa vue d'ensemble. MySQL et Apache restent actifs après la fermeture de DevLauncher.

21Dossiers supplémentaires

Les dossiers des serveurs (htdocs, www) sont analysés automatiquement jusqu'à 4 niveaux de sous-dossiers. Pour les projets situés ailleurs, utilise Ajouter des projets :

ChoixEffet
Rechercher sur ce PCParcourt ton dossier personnel (Bureau, Documents, Téléchargements, OneDrive, Herd…) et tes autres disques, sans toucher à Windows ni aux programmes. Les projets trouvés s'affichent au fur et à mesure, cochés : décoche ceux que tu ne veux pas, puis Ajouter. Rien n'est modifié dans les dossiers.
Choisir un dossierUn dossier de projet est ajouté seul ; un dossier qui contient plusieurs projets est analysé comme un dossier racine (bouton Retirer pour l'enlever).

Un projet lancé à la main hors des serveurs est aussi trouvé automatiquement (groupe Détectés hors des serveurs). Le bouton corbeille d'un projet ajouté le retire de la liste, sans supprimer ses fichiers.

Types reconnus : Laravel, PHP (avec index.php, composer.json ou public/index.php), sites HTML (index.html, servis par le petit serveur intégré avec rechargement automatique du navigateur à chaque modification), Next.js, Nuxt, Angular, Astro, SvelteKit, Remix, React / Vue / Svelte (Vite, CRA, Vue CLI), Node / Express / NestJS.

22Données enregistrées

ÉlémentEmplacement
Réglages (ports, dossiers, paramètres)%APPDATA%\DevLauncher\config.json
Mails capturés%APPDATA%\DevLauncher\mails
Sauvegarde du .env.env.devlauncher.bak, dans le projet
Sauvegardes du serveurDocuments\DevLauncher\Sauvegardes (modifiable)
Réparations MySQLdata_old_<date> et devlauncher-reparation-<date>, à côté du dossier data

Toutes les données restent sur le poste. Supprimer le dossier %APPDATA%\DevLauncher réinitialise l'application.

23Dépannage

Commence par l'onglet Erreurs du projet ; la Console affiche les messages bruts.

SymptômeSolution
« Le port X est déjà utilisé »Le message indique le programme concerné. Arrête-le ou choisis un autre port.
Un projet n'apparaît pasIl doit contenir artisan, composer.json, index.php ou un package.json reconnu. Sinon, ajoute-le avec Ajouter un dossier.
PHP ou Composer marqué ✗Installe le logiciel manquant puis clique sur Actualiser.
« MySQL shutdown unexpectedly »Onglet Serveur → Diagnostiquer, puis la réparation proposée.
Table … doesn't exist in engineTables inaccessibles : restaure la base depuis une sauvegarde ou recrée-la avec les migrations (onglet Serveur).
Apache ne démarre pas (port 80)Onglet Serveur : arrête le programme indiqué ou change le port d'Apache.
SQLSTATE[HY000] [2002]MySQL est arrêté : démarre-le depuis la barre d'état.
Unknown databaseOnglet Base de données → Créer la base.
Access denied for userCorrige l'utilisateur ou le mot de passe dans Base de données, puis teste la connexion.
No application encryption keyLance Installer les dépendances.
Vite manifest not foundActive Vite (assets) et redémarre, ou compile les assets.
Mails non capturésVérifie l'option Mails du projet, relance-le depuis DevLauncher et vide les caches Laravel.
« Le port 2525 est déjà utilisé »Un autre outil (Mailpit, MailHog) utilise ce port : modifie le port SMTP dans les paramètres.
Your PHP version does not satisfyInstalle la version de PHP demandée (par exemple dans Laragon) puis clique sur Actualiser.