Full-stack app with Laravel (API) + Next.js (frontend) + MySQL, running via Docker and routed through devproxy with clean .localhost domains.
- Docker Desktop
- devproxy running — handles routing to
.localhost domains
git clone <repo-url>
cd netflix
make setup
That's it. make setup will:
- Start devproxy (Traefik)
- Build and start all containers
- Install Composer dependencies
- Generate app key
- Wait for MySQL to be ready
- Run migrations and seeders
All accounts use password romacode:
| Email |
Role |
romacode@gmail.com |
Provider (admin) |
test@gmail.com |
Client |
Once done, the app is available at:
| URL |
Description |
http://netflix.localhost:8090 |
Laravel API |
http://netflix-front.localhost:8090 |
Next.js frontend |
http://phpmyadmin.localhost:8090 |
phpMyAdmin |
| Command |
Description |
make up |
Start containers |
make stop |
Stop containers |
make down |
Stop and remove containers |
make restart |
Restart containers |
make build |
Rebuild images (no cache) |
make ps |
List running containers |
| Command |
Description |
make migrate |
Run migrations |
make fresh |
Drop all tables, re-migrate and seed |
make seed |
Run seeders |
make rollback |
Rollback last migration |
| Command |
Description |
make logs |
Follow all logs |
make log-app |
Follow PHP app logs |
make log-web |
Follow Nginx logs |
make log-front |
Follow frontend logs |
make log-db |
Follow database logs |
| Command |
Description |
make app |
Shell into PHP container |
make web |
Shell into Nginx container |
make front |
Shell into frontend container |
make db |
Shell into MySQL container |
make sql |
Open MySQL CLI |
| Command |
Description |
make cache |
Run php artisan optimize |
make cache-clear |
Clear all caches |
make rate-clear |
Clear rate limiter cache |
make test |
Run PHPUnit tests |
make tinker |
Open Laravel Tinker |
| Command |
Description |
make npm-install |
Install npm dependencies |
make npm-dev |
Run dev server |
make npm-build |
Build for production |
| Service |
Image |
| PHP |
php:8.2-fpm-bookworm |
| Nginx |
nginx:1.24-alpine |
| MySQL |
mysql:8.0 |
| Frontend |
node:18-alpine |
| phpMyAdmin |
phpmyadmin:latest |