# Treasure Hunt API avec Laravel Sail Ce projet se lance via Laravel Sail (Docker). Ce guide explique comment demarrer l'environnement et executer les commandes courantes. ## Prerequis - Docker Desktop ou Engine avec Docker Compose actif. - Si `vendor/` est absent, installez d'abord les dependances pour recuperer Sail: `composer install` (en local) ou `./vendor/bin/sail composer install`. - Copiez le fichier `.env.example` vers `.env` et adaptez les valeurs utiles (`APP_PORT`, `VITE_PORT`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`, `FORWARD_DB_PORT`). ## Demarrage rapide 1. Lancer la stack: `./vendor/bin/sail up -d`. 2. Generer la cle d'application: `./vendor/bin/sail artisan key:generate`. 3. Initialiser la base: `./vendor/bin/sail artisan migrate`. 4. (Optionnel) Ajouter un alias shell pour simplifier: `alias sail="./vendor/bin/sail"`. ## Ports et services - Application: `APP_PORT` (80 par defaut). - Vite: `VITE_PORT` (5173 par defaut). - MySQL 8.0: `FORWARD_DB_PORT` (3306 par defaut). Les donnees sont stockees dans le volume Docker `sail-mysql`. - Les conteneurs sont definis dans `compose.yaml` (service principal `laravel.test` et base `mysql`). ## Commandes courantes - Demarrer: `sail up -d` (ou `./vendor/bin/sail up -d` sans alias). - Arreter: `sail down`. - Rebuild si l'image change: `sail up -d --build` ou `sail build --no-cache`. - Logs: `sail logs -f laravel.test` ou `sail logs -f mysql`. - Shell applicatif: `sail shell` (ou `sail bash`). - Artisan: `sail artisan migrate`, `sail artisan migrate:fresh --seed`, `sail artisan tinker`. - Tests: `sail artisan test`. ## Base de donnees - Acces host: `127.0.0.1:` avec les identifiants definis dans `.env`. - Pour repartir de zero: `sail down -v` (supprime les volumes, donc les donnees) puis `sail up -d` et `sail artisan migrate --seed`. ## Debug et outils - Activer Xdebug en ajoutant dans `.env`: `SAIL_XDEBUG_MODE=develop,debug` et `SAIL_XDEBUG_CONFIG=client_host=host.docker.internal`, puis `sail up -d --build`. - Composer/PHP direct: `sail composer `, `sail php -v`. - Nettoyage des images intermediaires: `sail down` puis `docker system prune` (optionnel).