Ejecuta la agencia 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 22 o más reciente y ejecuta corepack enable una vez (en Node.js 25 y posteriores, que no incluyen Corepack, ejecuta antes npm install -g corepack). No hace falta ningún servidor de base de datos.
Abre cada terminal donde la esperan los comandos siguientes: dentro de velra-real-estate-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 público | storefront | localhost:3030Local |
| Panel de la agencia | 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.Terminalcorepack enable cd back-end yarn install cp .env.example .env¿Tienes problemas?Crea la base de datos
yarn seedcomprueba que cada foto de la carga inicial esté presente y luego creadatabase.sqlite, sus tablas y la agencia de demostración: 31 permisos, los roles Super Admin y Agent, las dos cuentas, 11 ajustes de la agencia, 6 barrios, 17 propiedades (15 publicadas, 2 borradores) con 38 fotos de galería, 2 vistas previas de amueblado aprobadas, 5 consultas y 8 solicitudes de visita. Si lo ejecutas otra vez, solo añade lo que falta y nunca restablece una contraseña.Terminalenback-endyarn seedInicia el servidor
Terminalenback-endyarn devResultado esperado: localhost:8000/
¿Tienes problemas?api/ healthLocal responde con "status":"ok"y"database":"up".
Inicia la API
Instala y configura
.env.examplefunciona tal cual para el desarrollo local: SQLite en el puerto8000.Terminalcorepack enable cd velra-backend yarn install cp .env.example .env¿Tienes problemas?Crea la base de datos
yarn seedcomprueba que cada foto de la carga inicial esté presente y luego creadatabase.sqlite, sus tablas y la agencia de demostración: 31 permisos, los roles Super Admin y Agent, las dos cuentas, 11 ajustes de la agencia, 6 barrios, 17 propiedades (15 publicadas, 2 borradores) con 38 fotos de galería, 2 vistas previas de amueblado aprobadas, 5 consultas y 8 solicitudes de visita. Si lo ejecutas otra vez, solo añade lo que falta y nunca restablece una contraseña.Terminalenvelra-backendyarn seedInicia el servidor
Terminalenvelra-backendyarn devResultado esperado: localhost:8000/
¿Tienes problemas?api/ healthLocal responde con "status":"ok"y"database":"up".
Inicia el sitio web público
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 los anuncios de demostración; el árabe está en
¿Tienes problemas?/ar.
Inicia el sitio web público
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.Terminalcorepack enable cd velra-website yarn install cp .env.example .env¿Tienes problemas?Inícialo
Terminalenvelra-websiteyarn devResultado esperado: localhost:3030Local abre el sitio web con los anuncios de tu API; el árabe está en
¿Tienes problemas?/ar.
Inicia el panel de la agencia
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
yarn devprimero copia el worker de la biblioteca de mapas enpublic/maplibre/y luego inicia el panel.Terminalenadmin-dashboardyarn devResultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Inicia sesión con
¿Tienes problemas?admin@velra.exampley la contraseñaAdmin@123.
Inicia el panel de la agencia
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.Terminalcorepack enable cd velra-agency-dashboard yarn install cp .env.example .env¿Tienes problemas?Inícialo e inicia sesión
Terminalenvelra-agency-dashboardyarn devResultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Inicia sesión con
¿Tienes problemas?admin@velra.exampley la contraseñaAdmin@123, que una API con los datos cargados acepta.
Otros puertos
Sin Docker los puertos están fijados en los archivos. Los scripts dev y start del sitio web en package.json pasan -p 3030, y los del panel pasan -p 3031: cambia el número ahí para mover uno, luego añade la nueva dirección a CORS_ORIGIN en el .env de la API y, para el panel, pon también allí FRONTEND_URL con ella. Para mover la API, define PORT y PUBLIC_MEDIA_URL en su .env con el mismo número, y NEXT_PUBLIC_API_BASE_URL en ambos frontends (y también NEXT_PUBLIC_WEBSOCKET_BASE_URL en el del panel).
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 nunca cambia las tablas al iniciar, y se niega a iniciar mientras JWT_SECRET esté vacío o siga con el valor de 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
PUBLIC_MEDIA_URL=http://localhost:8000/mediaGenera 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 inicia. yarn seed:prod añade la agencia 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 compilan su .env en el momento de la construcción, así que ejecuta yarn build otra vez después de cambiarlo. Antes de desplegar en cualquier lugar público, lee la guía de despliegue.
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