Ejecuta la agencia en local
Pon en marcha tu paquete en tu equipo, con Docker.
Para el paquete Full Stack
Antes de empezar: instala y abre Docker Desktop, o Docker Engine con Compose.
Ver los requisitosDescarga tu plantilla
Abre Mis plantillas y descarga el ZIP de tu paquete.
Resultado esperado: En tus descargas hay un archivo con un nombre como
velra-real-estate-full-stack-….zip.Descomprime y abre la carpeta
Abre una terminal donde esté el ZIP, extráelo y entra en la carpeta
velra-real-estate-full-stack. En Windows, puedes extraerlo en el Explorador de archivos y luego abrir una terminal en la carpeta.Terminalunzip -q velra-real-estate-full-stack-*.zip cd velra-real-estate-full-stackResultado esperado: La carpeta contiene
¿Tienes problemas?admin-dashboard,back-end,storefrontydocker-compose.yml, junto aREADME.md,QUICKSTART.mdyLICENSE.md.Inicia las aplicaciones
Construye e inicia la API, el sitio web público y el panel de la agencia. No hay que configurar nada antes. El primer inicio construye tres imágenes y carga la base de datos con la agencia de demostración, lo que tarda unos minutos; los siguientes inicios tardan segundos.
Terminalenvelra-real-estate-full-stackdocker compose up --build¿Un puerto ya está en uso?
Si el inicio se detiene con
Un puerto ya está en usoports are not available,address already in useoport is already allocated, otro programa usa el 3030, el 3031 o el 8000. Detén ese programa, o crea un archivo llamado.enven la carpetavelra-real-estate-full-stack, junto adocker-compose.yml, con el puerto que necesites, por ejemploADMIN_PORT=3041(SITE_PORTpara el sitio web,API_PORTpara la API). Ejecutadocker compose up --buildotra vez y abre la aplicación en su nuevo puerto.Resultado esperado: Los tres servicios siguen en ejecución y el registro deja de desplazarse. Deja esta terminal abierta.
¿Tienes problemas?Abre el sitio web público
Abre localhost:3030Local. El inglés está en
/eny el árabe en/ar. El sitio web no tiene cuentas: las viviendas guardadas y la comparación se conservan en el navegador del visitante.Resultado esperado: El sitio web se abre en su página de inicio con los anuncios de demostración y sus fotos.
¿Tienes problemas?Inicia sesión en el panel de la agencia
Abre localhost:3031Local. Inicia sesión con
admin@velra.exampley la contraseñaAdmin@123. Para el agente, escribeagent@velra.exampleconAgent@123. Cambia ambas contraseñas antes de que la pila sea accesible desde internet.Resultado esperado: El panel se abre en su resumen, con las propiedades publicadas, las últimas consultas y las próximas visitas.
¿Tienes problemas?
Haz un recorrido
Así se ve la agencia de demostración cuando todo está en marcha.
| Cuenta | Correo electrónico | Contraseña |
|---|---|---|
| Super Admin: todas las páginas y permisos | admin@velra.example | Admin@123 |
| Agente: resumen, propiedades, consultas, visitas, el estudio de amueblado y la lista de barrios | agent@velra.example | Agent@123 |
La carga inicial añade 17 propiedades (15 publicadas, 2 borradores) con sus fotos, 6 barrios, 2 vistas previas de amueblado aprobadas, 5 consultas y 8 solicitudes de visita, así que cada pantalla se abre con contenido. Son solo cuentas de demostración locales.
Detén e inicia de nuevo
Pulsa Ctrl+C en la terminal para detener las aplicaciones, o ejecuta esto desde la carpeta velra-real-estate-full-stack. Tus datos, la base de datos y las subidas, se conservan en el volumen velra-data.
velra-real-estate-full-stackdocker compose downVuelve a iniciar con el mismo comando del paso 3. Sin --build, reutiliza las imágenes que ya construiste.
velra-real-estate-full-stackdocker compose upConserva tus datos
docker compose down -v también elimina el volumen de datos. El siguiente inicio carga una copia nueva de la agencia de demostración y todo lo que creaste desaparece.
Ejecuta el sitio web público
Este paquete es el sitio web público por sí solo. Lo lee todo de la API de Velra, así que inicia primero la API. Si no lo construyes con otra dirección, el sitio web espera la API en http://localhost:8000. La API es un paquete aparte y no está en esta descarga.
Descomprime y abre la carpeta
Terminalunzip -q velra-website-*.zip cd velra-websiteResultado esperado: La carpeta tiene un
¿Tienes problemas?Dockerfiley unpackage.json.Construye la imagen
Los valores
NEXT_PUBLIC_*se compilan en el JavaScript que carga el navegador, así que son argumentos de construcción. Sin ninguno, el sitio web usa la API enhttp://localhost:8000/apiy se llama a sí mismohttp://localhost:3030. Para una API en otro lugar, pasa su dirección.Terminalenvelra-websitedocker build -t velra-website .Con tu propia API y dominio:
Terminalenvelra-websitedocker build -t velra-website --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-agency.com/api --build-arg NEXT_PUBLIC_SITE_URL=https://www.your-agency.com --build-arg NEXT_PUBLIC_MEDIA_HOSTNAME=media.your-agency.com .¿Tienes problemas?Inícialo
Dentro del contenedor
localhostes el propio contenedor, así queAPI_INTERNAL_URLindica al servidor del sitio web dónde encontrar la API en tu equipo, para los títulos de las páginas de propiedad, el primer renderizado de una página de propiedad y el mapa del sitio.--add-hosthace quehost.docker.internalfuncione en Linux; Docker Desktop ya lo tiene. Si el puerto3030está ocupado, cambia el número a la izquierda de-p, por ejemplo-p 3041:3030, abre ese puerto en su lugar y añadehttp://localhost:3041alCORS_ORIGINde la API.Terminalenvelra-websitedocker run -p 3030:3030 -e API_INTERNAL_URL=http://host.docker.internal:8000/api --add-host=host.docker.internal:host-gateway velra-websiteResultado esperado: localhost:3030Local abre el sitio web con los anuncios de tu API. El inglés está en
¿Tienes problemas?/en, el árabe en/ar.
Ejecuta el panel de la agencia
Este paquete es el panel de la agencia por sí solo. Cada pantalla lee la API de Velra, así que inicia primero la API. Si no lo construyes con otra dirección, el panel espera la API en http://localhost:8000. La API es un paquete aparte y no está en esta descarga.
Descomprime y abre la carpeta
Terminalunzip -q velra-agency-dashboard-*.zip cd velra-agency-dashboardResultado esperado: La carpeta tiene un
¿Tienes problemas?Dockerfiley unpackage.json.Construye la imagen
Sin argumentos de construcción, el panel usa la API en
http://localhost:8000/api. Para una API en otro lugar, pasa su dirección, su dirección sin/apipara las notificaciones en directo, y la dirección del sitio web para el enlace "View website".Terminalenvelra-agency-dashboarddocker build -t velra-dashboard .Con tu propia API:
Terminalenvelra-agency-dashboarddocker build -t velra-dashboard --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com/api --build-arg NEXT_PUBLIC_WEBSOCKET_BASE_URL=https://api.your-domain.com --build-arg NEXT_PUBLIC_MEDIA_HOSTNAME=api.your-domain.com --build-arg NEXT_PUBLIC_SITE_URL=https://your-domain.com .¿Tienes problemas?Inícialo e inicia sesión
Si el puerto
3031está ocupado, cambia el número a la izquierda de-p, por ejemplo-p 3041:3031, abre ese puerto en su lugar y añadehttp://localhost:3041alCORS_ORIGINde la API (y pon suFRONTEND_URLcon esa dirección, desde la que se conectan las notificaciones en directo).Terminalenvelra-agency-dashboarddocker run -p 3031:3031 velra-dashboardResultado 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.
Ejecuta la API
Este paquete es la API de NestJS por sí sola, sobre un archivo SQLite guardado en un volumen de Docker junto con las subidas. El sitio web público y el panel de la agencia son paquetes aparte y no están en esta descarga.
Descomprime y abre la carpeta
Terminalunzip -q velra-backend-*.zip cd velra-backendResultado esperado: La carpeta tiene un
¿Tienes problemas?Dockerfile, undocker-entrypoint.shy unpackage.json.Inicia con la agencia de demostración
Un volumen nuevo tiene tablas vacías y ninguna cuenta, salvo que pidas la agencia de demostración, así que mantén
-e SEED_DEMO_DATA=trueen el primer inicio. El volumenvelra-api-dataconserva la base de datos y las subidas entre ejecuciones. Si el puerto8000está ocupado, cambia el número a la izquierda de-p, por ejemplo-p 8010:8000, y añade-e PUBLIC_MEDIA_URL=http://localhost:8010/mediapara que las direcciones de las fotos también lo usen. Tus frontends deberán entonces apuntar ahttp://localhost:8010/api.Terminalenvelra-backenddocker run -p 8000:8000 -v velra-api-data:/data -e SEED_DEMO_DATA=true velra-apiResultado esperado: localhost:8000/
¿Tienes problemas?api/ healthLocal responde con "status":"ok"y"database":"up".
El contenedor acepta el sitio web en http://localhost:3030 y el panel en http://localhost:3031. En otras direcciones, define CORS_ORIGIN (ambas, separadas por comas) y FRONTEND_URL (el panel) con -e.
Para dar al contenedor tus propias claves (R2, IA, MCP), crea .env a partir de .env.example con cp .env.example .env, rellénalo y añade --env-file .env -e NODE_ENV=production a docker run:
velra-backenddocker run -p 8000:8000 -v velra-api-data:/data -e SEED_DEMO_DATA=true --env-file .env -e NODE_ENV=production velra-apiUn valor dado con -e gana al del mismo nombre en el archivo, así que el contenedor funciona en producción diga lo que diga .env, y mueve las rutas relativas del archivo (SQLITE_DATABASE, MEDIA_UPLOAD_DIR) al volumen. Sin un JWT_SECRET propio, o con el de ejemplo, el contenedor genera un secreto y lo guarda en el volumen, así que los inicios de sesión sobreviven a un reinicio.