Este repositorio contiene el backend de la aplicación QSUL (Quality System Universidad Libre), desarrollado en Laravel. Puede ser ejecutado en un entorno con Docker (recomendado para producción) o en un entorno local tradicional (recomendado para desarrollo).
-
PHP 8.2
-
Composer
-
MySQL
-
Extensiones PHP necesarias:
ctype,curl,dom,fileinfo,filter,hash,mbstring,openssl,pcre,session,tokenizer,xml,zip,pdo_mysql,mysqli,pcntl,opcache
-
Clonar el repositorio
git clone https://github.com/esteban389/qsul-backend.git cd qsul-backend -
Crear el archivo
.envcp .env.example .env
Ajusta las siguientes variables clave:
APP_URL=http://localhost FRONTEND_URL=http://localhost:3000 NATIONAL_COORDINATOR_NAME=Alejandro NATIONAL_COORDINATOR_EMAIL=[email protected] NATIONAL_COORDINATOR_PASSWORD=12345678
-
Levantar los contenedores
docker compose up -d --build
Esto iniciará los servicios:
web: servidor PHP + NGINXworker: procesador de colastask: ejecutor de tareas programadasmysql: base de datos
El seeder del coordinador nacional se ejecutará automáticamente.
-
Verificar el estado
Accede al backend en http://localhost.
Esta guía asume que ya se tiene un servidor web instalado y configurado, ya sea apache o nginx + php-fpm
-
Clonar el repositorio
git clone https://github.com/esteban389/qsul-backend.git cd qsul-backendEl contenido de la carpeta qsul-backend es lo que se expone en el servidor, si está usando nginx el contenido debería quedar en la carpeta /var/www/html
-
Instalar dependencias
composer install
-
Crear el archivo
.envcp .env.example .env
Edita las variables según tu entorno:
APP_URL=http://localhost:8000 FRONTEND_URL=http://localhost:3000 DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=qsul-db DB_USERNAME=tu_usuario DB_PASSWORD=tu_contraseña
-
Generar clave de la aplicación
php artisan key:generate
-
Migrar y sembrar la base de datos
php artisan migrate --seed
-
Optimizar archivos de laravel
php artisan optimize
-
Vincular carpeta pública con carpeta de archivos
php artisan storage:link
-
Iniciar el ejecutor de tareas y procesador de colas
nohup php artisan queue:work > storage/logs/queue.log 2>&1 &
nohup php artisan schedule:work > storage/logs/schedule.log 2>&1 &
Laravel Sanctum usa autenticación basada en cookies. Para que funcione:
-
El backend (
APP_URL) y frontend (FRONTEND_URL) deben estar bajo el mismo dominio (ej.app.comyapi.app.com, oapp.com:80yapp.com:81). -
Variables importantes:
SESSION_DOMAIN=localhost SANCTUM_STATEFUL_DOMAINS=localhost:3000
Configura SMTP en el .env:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=[email protected]
MAIL_PASSWORD=tu_contraseña_app
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=[email protected]
MAIL_FROM_NAME="${APP_NAME}"web: NGINX + PHP-FPMworker:php artisan queue:worktask:php artisan schedule:workmysql: base de datos con persistencia en.database/
Durante el proceso de instalación se crea un usuario tipo "Coordinador Nacional" a través del seeder (esto se ejecuta de manera automática si se usa la infraestructura docker que hay por defecto en el proyecto), quien tiene permisos administrativos en el sistema. Este usuario es necesario para acceder inicialmente y no puede crearse desde la interfaz de usuario, por lo que sus credenciales deben estar correctamente definidas en las variables:
NATIONAL_COORDINATOR_NAME=...
NATIONAL_COORDINATOR_EMAIL=...
NATIONAL_COORDINATOR_PASSWORD=...Prueba el endpoint (requiere autenticación):
GET /api/userMIT © Universidad Libre