project-root/
├── docker/
│ ├── php/
│ │ └── Dockerfile
│ ├── nginx/
│ │ └── default.conf
├── .env
├── docker-compose.yml
├── README.md
├── .github/workflows/phpunit.yml
├── app/
│ ├── Actions/
│ │ └── User/
│ ├── DTOs/
│ │ └── User/
│ ├── Repositories/
│ │ ├── Contracts/
│ │ └── Eloquent/
│ ├── Services/
│ └── Http/Controllers/Api/
└── (archivos Laravel)
- Docker: https://docs.docker.com/get-docker/
- Docker Compose (incluido en Docker Desktop)
git clone <url-del-repo>
cd <nombre-del-proyecto>O crear con Composer:
composer create-project laravel/laravel . "^12.0"cp .env.example .envVariables esenciales:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=secretdocker-compose up -d --buildContenedores levantados:
laravel_app: PHP y Laravellaravel_nginx: Servidor web Nginxlaravel_mysql: Base de datos MySQL
docker exec -it laravel_app php artisan key:generate- Navegador: http://localhost:8000
- Documentación: http://localhost:8000/api/documentation
docker exec -it laravel_app php artisan test- Ejecuta
php artisan testautomáticamente al hacer PR adevelopomain. - Utiliza archivo
.github/workflows/phpunit.yml
APP_ENV=testing
APP_KEY=base64:...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testing
DB_USERNAME=user
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync- Laravel Sanctum con tokens Bearer
Authorization: Bearer <token>
- UI interactiva: http://localhost:8000/api/documentation
- Generar documentación manualmente:
docker exec -it laravel_app php artisan l5-swagger:generate| Endpoint | Método | Función |
|---|---|---|
/api/v1/login |
POST | Iniciar sesión y recibir token |
/api/v1/logout |
POST | Cerrar sesión y revocar token |
/api/v1/me |
GET | Obtener usuario autenticado |
/api/v1/users |
GET | Listar o filtrar usuarios (?search=) |
/api/v1/users/register |
POST | Crear nuevo usuario |
/api/v1/users/update |
PUT | Actualizar información del usuario |
/api/v1/users/delete |
DELETE | Eliminar un usuario |
/api/v1/users/change-password |
POST | Cambiar contraseña del usuario autenticado |
# Ver contenedores activos
docker ps
# Entrar al contenedor Laravel
docker exec -it laravel_app bash
# Ejecutar migraciones
docker exec -it laravel_app php artisan migrate
# Apagar y eliminar contenedores
docker-compose down