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.
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
| Pour | Logiciel nécessaire |
|---|---|
| Projets Laravel / PHP | XAMPP, Laragon, WAMP ou MAMP (PHP et MySQL) et Composer. |
| Next, Nuxt, React, Vue, Angular | Node.js (version LTS recommandée). |
| Ouverture des fichiers | Visual Studio Code (facultatif, recommandé). |
DevLauncher embarque son propre moteur : il n'a besoin d'aucune installation supplémentaire pour fonctionner.
2Installation
- Exécute
DevLauncher-Setup-1.5.0.exe. - 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.
- Conserve le dossier proposé ou choisis-en un autre, puis clique sur Installer.
- Clique sur Terminer. DevLauncher s'ouvre ; il est ensuite accessible depuis le Bureau et le menu Démarrer.
| Sujet | Détail |
|---|---|
| Droits | Aucun droit administrateur requis : installation pour le compte Windows courant. |
| Mise à jour | Exécute le nouvel installateur. Il ferme DevLauncher, remplace les fichiers et conserve les réglages. |
| Désinstallation | Paramètres Windows → Applications → Applications installées → DevLauncher. Les projets ne sont jamais modifiés. |
| Déploiement | Installation silencieuse : DevLauncher-Setup-1.5.0.exe /S, avec /D=C:\chemin pour choisir le dossier. |
| Version portable | Décompresse DevLauncher-1.5.0-portable.zip et lance DevLauncher.exe. |
3Interface
| Zone | Contenu |
|---|---|
| Barre supérieure | Onglets 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 projets | Projets 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 projet | Onglets 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é. |
| Aide | Ce 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'état | Serveurs détectés, versions de PHP, Composer, Node, état d'Apache, de MySQL et de la boîte mail. |
États d'un projet
| Indicateur | Signification |
|---|---|
| Gris | Arrêté. |
| Bleu clignotant | Démarrage en cours (installation des dépendances, compilation). |
| Vert | En ligne, lancé par DevLauncher. |
| Orange | En 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.
- 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).
- Choisis le dossier de destination : le dossier web d'un serveur local (XAMPP, Laragon, WAMP) ou Autre dossier...
- 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é.
- 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é.
- Règle les options proposées, puis clique sur Continuer.
- 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.
| Type | Options | Ce que fait DevLauncher |
|---|---|---|
| Laravel | Base SQLite ou MySQL, dépendances npm | Té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.js | TypeScript, Tailwind CSS, ESLint | Projet avec App Router et dossier src, dépendances installées. |
| React, Vue, Svelte | TypeScript | Projet 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.
5Lancer un projet
- Sélectionne le projet, puis clique sur Lancer (ou sur le bouton lecture dans la liste).
- Si les dépendances sont absentes (
vendor,node_modules), elles sont installées automatiquement avant le lancement. - 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.
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 :
| Action | Effet |
|---|---|
| Ouvrir | Ouvre le site sur le port réellement utilisé. |
| Utiliser le port … pour ce projet | Enregistre ce port comme port du projet. |
| Relancer avec DevLauncher | Arrête le serveur existant puis le relance depuis DevLauncher (console, erreurs et mails capturés). |
| Arrêter | Arrê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.
| Action | Commande | Effet |
|---|---|---|
| Installer les dépendances | composer install | Cré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 caches | optimize:clear | À lancer après une modification du .env. |
| Lien de stockage | storage:link | Rend publics les fichiers envoyés. |
| Migrer | migrate | Crée les tables manquantes ; les données sont conservées. |
| État des migrations | migrate:status | Liste les migrations exécutées et en attente. |
| Remplir (seed) | db:seed | Insère les données de départ ou de test. |
| Annuler la dernière migration | migrate:rollback | Annule le dernier lot de migrations. |
| Réinitialiser la base | migrate:fresh --seed | Supprime toutes les tables puis les recrée. |
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
- Si la base indiquée n'existe pas, clique sur Créer la base (ou sur Nouvelle base… pour un autre nom).
- Vérifie le nom proposé et l'interclassement (
utf8mb4_unicode_cirecommandé pour Laravel). - Option : Créer un utilisateur dédié, avec un mot de passe généré, limité à cette base.
- Laisse cochée l'option d'enregistrement dans le
.env, puis clique sur Créer. - 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.
- 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.
- 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. - Tout lancer (DatabaseSeeder) équivaut à
php artisan db:seed.
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.js | next dev -p PORT |
| Nuxt | nuxt dev --port PORT |
| React, Vue, Svelte (Vite) | vite --port PORT |
| React (Create React App) | react-scripts start avec PORT |
| Vue CLI, Angular, Astro | Commande de développement du framework, avec le port choisi |
| Node, Express, NestJS | Script 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.
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 :
PROJETpour les fichiers de l'application,VUEpour une vue Blade (le fichier.blade.phpd'origine est retrouvé), et les fichiers devendorounode_modulesregroupé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
| Cas | Procédure |
|---|---|
| Projet lancé par DevLauncher | Automatique. 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 main | Boîte mail → Configuration, puis copie les lignes MAIL_* dans le .env. Un exemple Nodemailer est fourni. |
| Configuration en cache | Lance 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ément | Rôle |
|---|---|
| En attente | Chaque é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 échec | Les envois qui ont échoué, avec le message d'erreur. Relancer ou Supprimer, élément par élément ou tous ensemble. |
| Traitement automatique | Dé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.
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
| Diagramme | Source | Contenu généré |
|---|---|---|
| Classes | Modèles Laravel, schéma Prisma, classes TypeScript ou toutes les classes PHP d'un dossier | Classes 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équence | Une 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 TypeScript | Dé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 »…). |
- Clique sur Générer, choisis le type puis la source (route, fichier et fonction…).
- Vérifie le nom proposé et clique sur Générer.
- 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 :
| Choix | Résultat |
|---|---|
| Séquence → Plusieurs | Liste 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é → Plusieurs | Laravel : 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 complet | En 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 :
| Type | Syntaxe principale |
|---|---|
| Classes | class 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équence | actor, 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érification | Détail |
|---|---|
| État et ports | Service 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'erreurs | Analyse 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 tables | Chaque 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 Apache | Test httpd -t : une erreur de syntaxe est signalée avec sa ligne. |
| Historique | Arrê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ème | Réparation |
|---|---|
| « MySQL shutdown unexpectedly », tables système ou InnoDB endommagées | Ré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 local | Arrê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 programme | Arrê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 inaccessibles | Restaurer… depuis une sauvegarde, ou Recréer avec les migrations du projet (migrate:fresh --seed). |
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…).
| Type | Contenu | Quand l'utiliser |
|---|---|---|
| Export SQL | Un 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 data | Copie 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
- Dans la liste des sauvegardes, clique sur Restaurer….
- Choisis la base de la sauvegarde et la base cible. Un autre nom permet de comparer sans rien écraser.
- 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églage | Effet |
|---|---|
| Lancer DevLauncher avec Windows | DevLauncher démarre en arrière-plan à l'ouverture de session. Les services et projets automatiques sont prêts sans intervention. |
| Démarrer MySQL automatiquement | Actif par défaut. Démarre MySQL s'il est arrêté. |
| Démarrer Apache automatiquement | Pour phpMyAdmin et les sites servis par Apache. |
| Garder les serveurs actifs | La 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 :
| Choix | Effet |
|---|---|
| Rechercher sur ce PC | Parcourt 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 dossier | Un 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ément | Emplacement |
|---|---|
| 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 serveur | Documents\DevLauncher\Sauvegardes (modifiable) |
| Réparations MySQL | data_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ôme | Solution |
|---|---|
| « 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 pas | Il 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 engine | Tables 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 database | Onglet Base de données → Créer la base. |
| Access denied for user | Corrige l'utilisateur ou le mot de passe dans Base de données, puis teste la connexion. |
| No application encryption key | Lance Installer les dépendances. |
| Vite manifest not found | Active Vite (assets) et redémarre, ou compile les assets. |
| Mails non capturés | Vé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 satisfy | Installe la version de PHP demandée (par exemple dans Laragon) puis clique sur Actualiser. |