Esta guía te lleva desde cero hasta tener el stack completo de Biblioteca La Palabra corriendo en tu máquina local. Con un solo comando, Docker Compose levanta la base de datos MySQL 8, aplica el schema con Prisma, ejecuta el seed inicial y arranca tanto el servidor Express como el frontend Astro — todo listo para explorar.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/camiloivcode/biblioteca-la-palabra/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisitos
Antes de comenzar, asegúrate de tener instalado:- Docker y Docker Compose (Docker Desktop incluye ambos)
- Git
- Los puertos 3000, 4000, 8080 y 3307 disponibles en tu máquina
Pasos
Copia el archivo de variables de entorno
Crea tu archivo Los valores por defecto del archivo
.env local a partir del ejemplo incluido:.env.example están configurados para funcionar directamente con Docker Compose en desarrollo local — no necesitas modificar nada para el primer arranque. Las variables clave preconfiguradas incluyen la cadena de conexión a MySQL, los secretos JWT y las credenciales del contenedor de base de datos.Construye e inicia todos los servicios
Levanta el stack completo en modo background:Este comando orquesta los cuatro contenedores en el orden correcto:
db— Inicia MySQL 8 y espera a que el healthcheck confirme que está listo.backend— Una vez que la base de datos responde, ejecutanpx prisma db push --accept-data-losspara aplicar el schema, luegonode prisma/seed.jspara poblar los datos iniciales, y finalmente arranca el servidor Express connpm run devvía Nodemon.frontend— Arranca el servidor de desarrollo de Astro.phpmyadmin— Levanta la interfaz web de administración de MySQL.
Verifica que los servicios estén activos
Confirma que los cuatro contenedores están en estado Deberías ver los contenedores
running:biblioteca_db, biblioteca_backend, biblioteca_frontend y biblioteca_phpmyadmin con estado Up.Accede a la aplicación
Con todos los servicios activos, abre cualquiera de estas URLs en tu navegador:
| Servicio | URL | Descripción |
|---|---|---|
| Frontend | http://localhost:3000 | Interfaz web principal |
| API | http://localhost:4000/api | Endpoint raíz de la API REST |
| phpMyAdmin | http://localhost:8080 | Gestor visual de MySQL |
Credenciales del seed
El seed inicial crea dos usuarios de prueba con sus respectivos roles:| Rol | Contraseña | |
|---|---|---|
| ADMIN | admin@biblioteca.com | Admin2024! |
| BIBLIOTECARIO | bibliotecario@biblioteca.com | Biblio2024! |
El seed está escrito con
upsert en todas las entidades, por lo que es idempotente: puedes ejecutarlo múltiples veces sin generar duplicados.Comandos de desarrollo
Una vez que el entorno está corriendo, puedes ejecutar estos comandos directamente dentro de los directoriosbackend/ o frontend/ para tareas habituales de desarrollo:
| Contexto | Comando | Acción |
|---|---|---|
| Backend | npm run dev | Inicia el servidor Express con hot-reload (Nodemon) |
| Backend | npm run db:generate | Regenera el cliente de Prisma tras cambios en el schema |
| Backend | npx prisma db push | Aplica el schema de Prisma a la base de datos |
| Backend | npm run db:seed | Ejecuta node prisma/seed.js para poblar datos iniciales |
| Backend | npm run db:studio | Abre Prisma Studio (GUI visual del ORM) |
| Frontend | npm run dev | Inicia el servidor de desarrollo de Astro en el puerto 3000 |
| Frontend | npm run build | Genera el build estático en dist/ |