Ejecuta el restaurante en local
Instala e inicia cada aplicación con Node.js y Yarn, una terminal por aplicación.
Para el paquete Full Stack
Antes de empezar: instala Node.js 24 o una versión más reciente y ejecuta corepack enable una vez. No hace falta ningún servidor de base de datos.
Abre cada terminal donde lo esperan los comandos de abajo: dentro de food-studio-full-stack para el paquete completo, o junto a la carpeta de la aplicación para un paquete de una sola aplicación.
| Aplicación | Carpeta | Dirección |
|---|---|---|
| API | back-end | localhost:8000Local |
| Sitio web de pedidos | storefront | localhost:3030Local |
| Panel del personal | admin-dashboard | localhost:3031Local |
Inicia primero la API: ambos frontends obtienen de ella todos sus datos.
Inicia la API
Instala y configura
.env.examplefunciona tal cual para el desarrollo local: SQLite en el puerto8000.¿Tienes problemas?Terminalcorepack enable cd back-end yarn install cp .env.example .envCrea la base de datos
yarn seedcreadatabase.sqlite, sus tablas y el restaurante de demostración: ocho categorías, 64 platos con sus imágenes, el combo, cuatro cocinas, el personal, y seis semanas de pedidos, reseñas y puntos de recompensa. Si lo vuelves a ejecutar, solo añade lo que falta.Terminalenback-endyarn seedInicia el servidor
Terminalenback-endyarn devResultado esperado: localhost:8000/api/healthLocal responde
¿Tienes problemas?{"success":true,"data":{"status":"ok","database":"up"},"message":""}.
Inicia la API
Instala y configura
.env.examplefunciona tal cual para el desarrollo local: SQLite en el puerto8000.¿Tienes problemas?Terminalcorepack enable cd food-studio-backend yarn install cp .env.example .envCrea la base de datos
yarn seedcreadatabase.sqlite, sus tablas y el restaurante de demostración: ocho categorías, 64 platos con sus imágenes, el combo, cuatro cocinas, el personal, y seis semanas de pedidos, reseñas y puntos de recompensa. Si lo vuelves a ejecutar, solo añade lo que falta.Terminalenfood-studio-backendyarn seedInicia el servidor
Terminalenfood-studio-backendyarn devResultado esperado: localhost:8000/api/healthLocal responde
¿Tienes problemas?{"success":true,"data":{"status":"ok","database":"up"},"message":""}.
Inicia el sitio web de pedidos
En una segunda terminal:
Instala y configura
El
.envcopiado apunta el sitio web a la API en el puerto8000.Terminalcd storefront yarn install cp .env.example .envInícialo
Terminalenstorefrontyarn devResultado esperado: localhost:3030Local abre el sitio web en inglés con el menú de demostración; el árabe está en
¿Tienes problemas?/ar.
Inicia el sitio web de pedidos
La API no forma parte de este paquete. Iníciala primero; el .env copiado la espera en http://localhost:8000/api.
Instala y configura
Si tu API funciona en otro lugar, configura
NEXT_PUBLIC_API_BASE_URLen.envcon su dirección, incluido/api.¿Tienes problemas?Terminalcorepack enable cd food-studio-website yarn install cp .env.example .envInícialo
Terminalenfood-studio-websiteyarn devResultado esperado: localhost:3030Local abre el sitio web con el menú de tu API; el árabe está en
¿Tienes problemas?/ar.
Inicia el panel del personal
En una tercera terminal:
Instala y configura
El
.envcopiado apunta el panel a la API y a sus notificaciones en directo en el puerto8000.Terminalcd admin-dashboard yarn install cp .env.example .envInícialo e inicia sesión
Terminalenadmin-dashboardyarn devResultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Inicia sesión con
¿Tienes problemas?owner@foodstudio.exampley la contraseñaFoodDemo2026!.
Inicia el panel del personal
La API no forma parte de este paquete. Iníciala primero; el .env copiado la espera en http://localhost:8000/api.
Instala y configura
Si tu API funciona en otro lugar, configura en
.envNEXT_PUBLIC_API_BASE_URL(con/api) yNEXT_PUBLIC_WEBSOCKET_BASE_URL(sin él) con su dirección.¿Tienes problemas?Terminalcorepack enable cd food-studio-staff-dashboard yarn install cp .env.example .envInícialo e inicia sesión
Terminalenfood-studio-staff-dashboardyarn devResultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Inicia sesión con la cuenta del propietario
¿Tienes problemas?owner@foodstudio.exampley la contraseñaFoodDemo2026!, que acepta una API con los datos de demostración cargados.
Versión de producción
Las mismas carpetas, construidas una vez y luego iniciadas. Primero configura el .env de la API para producción: con NODE_ENV=production la API no crea tablas al iniciar, y se niega a iniciar mientras JWT_SECRET esté vacío o siga con el valor del ejemplo, o mientras CORS_ORIGIN esté vacío.
NODE_ENV=production
JWT_SECRET=paste-the-generated-secret-here
CORS_ORIGIN=http://localhost:3030,http://localhost:3031
FRONTEND_URL=http://localhost:3031
STOREFRONT_URL=http://localhost:3030Genera el secreto con node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Luego, en la carpeta de la API, constrúyela, crea sus tablas una vez e iníciala. yarn seed:prod añade el restaurante de demostración y sus cuentas; yarn db:sync:prod en su lugar crea tablas vacías sin cuentas.
yarn build
yarn seed:prod
yarn start:prodConstrucción de producción de los frontends
En la carpeta de cada frontend, construye una vez e inicia. El sitio web funciona en el 3030 y el panel en el 3031.
yarn build
yarn startLos frontends incorporan su .env al construirse, así que vuelve a ejecutar yarn build después de cambiarlo. Antes de publicar en cualquier lugar público, lee la lista de comprobación para pasar a producción.
Empieza de cero con datos de demostración nuevos
Detén la API, elimina el archivo de la base de datos y vuelve a cargar los datos, en la carpeta de la API. Esto elimina todo lo que creaste.
rm -f database.sqlite* && yarn seedEn PowerShell:
Remove-Item database.sqlite*; yarn seed