Ir al artículo
Aniq-UI

VelraEjecuta la agencia en local

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 requisitos
  1. Descarga 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.

  2. 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.

    Terminal
    unzip -q velra-real-estate-full-stack-*.zip
    cd velra-real-estate-full-stack

    Resultado esperado: La carpeta contiene admin-dashboard, back-end, storefront y docker-compose.yml, junto a README.md, QUICKSTART.md y LICENSE.md.

    ¿Tienes problemas?
  3. 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.

    Terminalen velra-real-estate-full-stack
    docker compose up --build

    ¿Un puerto ya está en uso?

    Si el inicio se detiene con ports are not available, address already in use o port is already allocated, otro programa usa el 3030, el 3031 o el 8000. Detén ese programa, o crea un archivo llamado .env en la carpeta velra-real-estate-full-stack, junto a docker-compose.yml, con el puerto que necesites, por ejemplo ADMIN_PORT=3041 (SITE_PORT para el sitio web, API_PORT para la API). Ejecuta docker compose up --build otra vez y abre la aplicación en su nuevo puerto.

    Un puerto ya está en uso

    Resultado esperado: Los tres servicios siguen en ejecución y el registro deja de desplazarse. Deja esta terminal abierta.

    ¿Tienes problemas?
  4. Abre el sitio web público

    Abre localhost:3030Local. El inglés está en /en y 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?
  5. Inicia sesión en el panel de la agencia

    Abre localhost:3031Local. Inicia sesión con admin@velra.example y la contraseña Admin@123. Para el agente, escribe agent@velra.example con Agent@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.

CuentaCorreo electrónicoContraseña
Super Admin: todas las páginas y permisosadmin@velra.exampleAdmin@123
Agente: resumen, propiedades, consultas, visitas, el estudio de amueblado y la lista de barriosagent@velra.exampleAgent@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.

Terminalen velra-real-estate-full-stack
docker compose down

Vuelve a iniciar con el mismo comando del paso 3. Sin --build, reutiliza las imágenes que ya construiste.

Terminalen velra-real-estate-full-stack
docker compose up

Conserva 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.

  1. Descarga tu plantilla

    Abre Mis plantillas y descarga el ZIP de Sitio web público.

  2. Descomprime y abre la carpeta

    Terminal
    unzip -q velra-website-*.zip
    cd velra-website

    Resultado esperado: La carpeta tiene un Dockerfile y un package.json.

    ¿Tienes problemas?
  3. 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 en http://localhost:8000/api y se llama a sí mismo http://localhost:3030. Para una API en otro lugar, pasa su dirección.

    Terminalen velra-website
    docker build -t velra-website .

    Con tu propia API y dominio:

    Terminalen velra-website
    docker 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?
  4. Inícialo

    Dentro del contenedor localhost es el propio contenedor, así que API_INTERNAL_URL indica 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-host hace que host.docker.internal funcione en Linux; Docker Desktop ya lo tiene. Si el puerto 3030 está ocupado, cambia el número a la izquierda de -p, por ejemplo -p 3041:3030, abre ese puerto en su lugar y añade http://localhost:3041 al CORS_ORIGIN de la API.

    Terminalen velra-website
    docker run -p 3030:3030 -e API_INTERNAL_URL=http://host.docker.internal:8000/api --add-host=host.docker.internal:host-gateway velra-website

    Resultado esperado: localhost:3030Local abre el sitio web con los anuncios de tu API. El inglés está en /en, el árabe en /ar.

    ¿Tienes problemas?

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.

  1. Descarga tu plantilla

    Abre Mis plantillas y descarga el ZIP de Panel de la agencia.

  2. Descomprime y abre la carpeta

    Terminal
    unzip -q velra-agency-dashboard-*.zip
    cd velra-agency-dashboard

    Resultado esperado: La carpeta tiene un Dockerfile y un package.json.

    ¿Tienes problemas?
  3. 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 /api para las notificaciones en directo, y la dirección del sitio web para el enlace "View website".

    Terminalen velra-agency-dashboard
    docker build -t velra-dashboard .

    Con tu propia API:

    Terminalen velra-agency-dashboard
    docker 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?
  4. Inícialo e inicia sesión

    Si el puerto 3031 está ocupado, cambia el número a la izquierda de -p, por ejemplo -p 3041:3031, abre ese puerto en su lugar y añade http://localhost:3041 al CORS_ORIGIN de la API (y pon su FRONTEND_URL con esa dirección, desde la que se conectan las notificaciones en directo).

    Terminalen velra-agency-dashboard
    docker run -p 3031:3031 velra-dashboard

    Resultado esperado: localhost:3031Local abre el formulario de inicio de sesión. Inicia sesión con admin@velra.example y la contraseña Admin@123, que una API con los datos cargados acepta.

    ¿Tienes problemas?

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.

  1. Descarga tu plantilla

    Abre Mis plantillas y descarga el ZIP de API Backend.

  2. Descomprime y abre la carpeta

    Terminal
    unzip -q velra-backend-*.zip
    cd velra-backend

    Resultado esperado: La carpeta tiene un Dockerfile, un docker-entrypoint.sh y un package.json.

    ¿Tienes problemas?
  3. Construye la imagen

    Terminalen velra-backend
    docker build -t velra-api .
    ¿Tienes problemas?
  4. 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=true en el primer inicio. El volumen velra-api-data conserva la base de datos y las subidas entre ejecuciones. Si el puerto 8000 está 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/media para que las direcciones de las fotos también lo usen. Tus frontends deberán entonces apuntar a http://localhost:8010/api.

    Terminalen velra-backend
    docker run -p 8000:8000 -v velra-api-data:/data -e SEED_DEMO_DATA=true velra-api

    Resultado esperado: localhost:8000/api/healthLocal responde con "status":"ok" y "database":"up".

    ¿Tienes problemas?

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:

Terminalen velra-backend
docker run -p 8000:8000 -v velra-api-data:/data -e SEED_DEMO_DATA=true --env-file .env -e NODE_ENV=production velra-api

Un 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.

Siguiente

¿Te atascaste en un paso?

Busca una solución antes de empezar de nuevo.

Solución de problemas

Preferencias de Cookies

Utilizamos cookies para mejorar tu experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Al hacer clic en "Aceptar Todo", consientes nuestro uso de cookies para análisis y publicidad personalizada.