Aplicación Laravel (v13) con Filament, Livewire y Laravel Sail.
- Docker Desktop (o Docker Engine + Compose)
- Git
- Composer 2 (en el host) o Docker para instalar dependencias la primera vez
- Node.js 20+ (opcional en el host; los comandos de front se pueden correr con Sail)
git clone <url-del-repo> ecommerce
cd ecommerceCon Composer en el host:
composer installSi no tenés Composer local, usá Docker (no hay imagen oficial php85-composer; usá php84 + --ignore-platform-reqs):
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
laravelsail/php84-composer:latest \
composer install --ignore-platform-reqsAlternativa con la imagen oficial de Composer:
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/app" \
-w /app \
composer:2 \
composer install --ignore-platform-reqscp .env.example .envAjustá .env para Sail (MySQL del compose.yaml). Ejemplo:
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
REDIS_HOST=redis
REDIS_PORT=6379
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025Los valores de
DB_*deben coincidir con los del serviciomysqlencompose.yaml/ variablesFORWARD_*si las personalizás.
./vendor/bin/sail up -dLa primera vez construye la imagen (sail-8.5/app). Puede tardar varios minutos.
./vendor/bin/sail artisan key:generate
./vendor/bin/sail artisan migrate
./vendor/bin/sail artisan storage:link./vendor/bin/sail npm installEl script prepare de npm instala los hooks de Lefthook automáticamente.
Si los hooks no quedaron activos:
./vendor/bin/sail npx lefthook install
# o, con Node en el host:
npx lefthook install./vendor/bin/sail npm run devPara un build de producción local:
./vendor/bin/sail npm run build./vendor/bin/sail artisan test --compact
./vendor/bin/sail openLa app queda en http://localhost (puerto APP_PORT, por defecto 80).
Mailpit (correos de desarrollo): http://localhost:8025 (puerto por defecto de Sail).
Usá siempre Sail para PHP, Artisan, Composer, tests y Node del proyecto:
| Acción | Comando |
|---|---|
| Subir servicios | ./vendor/bin/sail up -d |
| Bajar servicios | ./vendor/bin/sail stop |
| Artisan | ./vendor/bin/sail artisan … |
| Tests | ./vendor/bin/sail artisan test --compact |
| Pint (formato) | ./vendor/bin/sail bin pint --dirty |
| Composer | ./vendor/bin/sail composer … |
| npm | ./vendor/bin/sail npm … |
| Shell del contenedor | ./vendor/bin/sail shell |
Alias opcional (añadir al shell):
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'Luego podés usar sail up -d, sail artisan migrate, etc.
Definidos en lefthook.yml. Requieren Sail levantado.
| Hook | Qué hace |
|---|---|
| pre-commit | Formatea PHP sucios con Pint y re-stagea los cambios |
| pre-push | Verifica estilo (pint --dirty --test) y corre la suite de tests |
Saltar un hook (solo si es necesario):
LEFTHOOK=0 git commit -m "…"
git push --no-verify- PHP 8.5 / Laravel 13
- Filament 5 / Livewire 4
- Laravel Sail (Docker)
- MySQL 8.4, Redis, Meilisearch, Mailpit, Selenium
- Vite + Tailwind CSS 4
- Laravel Pint + PHPUnit 12
- Lefthook (hooks locales)
Los hooks fallan con error de Docker / sail
Levantá los servicios: ./vendor/bin/sail up -d.
Puerto 80 ocupado
Definí otro en .env: APP_PORT=8080 y usá http://localhost:8080.
Vite no refleja cambios
Asegurate de tener ./vendor/bin/sail npm run dev corriendo, o regenerá assets con npm run build.
Permisos en Linux
Sail usa WWWUSER / WWWGROUP. Si hay problemas de escritura en storage/ o bootstrap/cache, revisá ownership de esos directorios o recreá contenedores con tu UID.