Ir al artículo
Aniq-UI

KinoraEjecuta Kinora en local

Ejecuta Kinora 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.9 o más reciente (22 para el paquete Backend solo) y ejecuta corepack enable una vez. No hace falta un servidor de base de datos.

Ver los requisitos

Abre cada terminal donde lo esperan los comandos de abajo: dentro de kinora-fitness-full-stack para el stack completo, o junto a la carpeta de la aplicación para un paquete de una sola aplicación.

AplicaciónCarpetaDirección
APIback-endlocalhost:8000Local
Paneldashboardlocalhost:3030Local

Inicia primero la API: con los pasos de abajo, el panel lee todos sus datos de ella.

Inicia la API

  1. Instala y configura

    .env.example funciona tal cual para el desarrollo local.

    Terminal
    corepack enable
    cd back-end
    yarn install
    cp .env.example .env
    ¿Tienes problemas?
  2. Crea la base de datos

    yarn seed crea database.sqlite, sus tablas y los datos de demostración. Si lo vuelves a ejecutar, solo añade lo que falta.

    Terminalen back-end
    yarn seed
  3. Inicia el servidor

    Terminalen back-end
    yarn dev

    Resultado esperado: localhost:8000/api/healthLocal responde {"status":"ok"}.

    ¿Tienes problemas?

Inicia la API

  1. Instala y configura

    .env.example funciona tal cual para el desarrollo local.

    Terminal
    corepack enable
    cd kinora-fitness-backend
    yarn install
    cp .env.example .env
    ¿Tienes problemas?
  2. Crea la base de datos

    yarn seed crea database.sqlite, sus tablas y los datos de demostración. Si lo vuelves a ejecutar, solo añade lo que falta.

    Terminalen kinora-fitness-backend
    yarn seed
  3. Inicia el servidor

    Terminalen kinora-fitness-backend
    yarn dev

    Resultado esperado: localhost:8000/api/healthLocal responde {"status":"ok"}. La carga de datos mostró las cuentas con las que iniciar sesión.

    ¿Tienes problemas?

Inicia el panel

En una segunda terminal:

  1. Instala y configura

    Terminal
    cd dashboard
    yarn install
    cp .env.example .env
  2. Apúntalo a la API

    Abre dashboard/.env y rellena las dos líneas de la API, que están vacías en el ejemplo. Si las dejas vacías, el panel usa sus datos de ejemplo integrados en lugar de la API.

    dashboard/.env
    NEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api
    NEXT_PUBLIC_WEBSOCKET_BASE_URL=http://localhost:8000
  3. Inícialo e inicia sesión

    Terminalen dashboard
    yarn dev

    Resultado esperado: localhost:3030Local abre el formulario de inicio de sesión, rellenado con el Head Coach: headcoach@example.com con la contraseña Coach@123. /en/auth/login?as=client rellena el miembro, member@example.com con Member@123. El árabe está en /ar.

    ¿Tienes problemas?

Inicia el panel

La API no forma parte de este paquete. No crees todavía un archivo .env: sin él, el panel usa sus datos de ejemplo integrados.

  1. Instalar

    Terminal
    corepack enable
    cd kinora-fitness-dashboard
    yarn install
    ¿Tienes problemas?
  2. Inícialo e inicia sesión

    Terminalen kinora-fitness-dashboard
    yarn dev

    Resultado esperado: localhost:3030Local abre el formulario de inicio de sesión con un aviso "Sample data". No se comprueba la contraseña (el formulario sigue pidiendo al menos 6 caracteres), y lo que cambies se guarda en el navegador.

Cuando tengas la API de la plantilla en marcha, crea .env a partir de .env.example y pon en NEXT_PUBLIC_API_BASE_URL su dirección. Eso es lo que desactiva los datos de ejemplo.

Configuración

Versión de producción

Las mismas carpetas, construidas una vez y luego iniciadas. Primero configura back-end/.env para producción. Con NODE_ENV=production la API nunca reescribe el esquema por su cuenta: ejecuta las migraciones al iniciar. Se niega a iniciar mientras JWT_SECRET esté vacío o siga con el valor del ejemplo, o mientras CORS_ORIGIN esté vacío.

back-end/.env
NODE_ENV=production
JWT_SECRET=<a long random string>
CORS_ORIGIN=http://localhost:3030
FRONTEND_URL=http://localhost:3030

Genera el secreto con node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Después construye la API, crea sus tablas una vez e iníciala. yarn db:sync:prod crea tablas vacías; yarn seed:prod en su lugar, o después, añade los datos de demostración y sus cuentas.

Terminalen back-end
yarn build
yarn db:sync:prod
yarn start:prod

Después el panel, en 3030:

Terminalen dashboard
yarn build
yarn start

El panel incluye su .env al compilar, así que vuelve a ejecutar yarn build después de cambiarlo. Antes de desplegar en cualquier sitio público, lee la lista de comprobación de producción.

Versión de producción

Se construye una vez y luego se inicia. Primero configura .env para producción. Con NODE_ENV=production la API nunca reescribe el esquema por su cuenta: ejecuta las migraciones al iniciar. Se niega a iniciar mientras JWT_SECRET esté vacío o siga con el valor del ejemplo, o mientras CORS_ORIGIN esté vacío.

.env
NODE_ENV=production
JWT_SECRET=<a long random string>
CORS_ORIGIN=https://app.your-domain.com

Genera el secreto con node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". CORS_ORIGIN enumera las direcciones de los paneles que llaman a la API, separadas por comas. Después construye, crea las tablas una vez e inicia. yarn db:sync:prod crea tablas vacías; yarn seed:prod en su lugar, o después, añade los datos de demostración y sus cuentas.

Terminalen kinora-fitness-backend
yarn build
yarn db:sync:prod
yarn start:prod

Versión de producción

Se construye una vez y luego se inicia en 3030. Sin .env, la build de producción usa los datos de ejemplo exactamente igual que yarn dev.

Terminalen kinora-fitness-dashboard
yarn build
yarn start

El panel incluye su .env al compilar, así que vuelve a ejecutar yarn build después de cambiarlo.

Empieza de cero con datos de demostración nuevos

Detén la API, luego borra el archivo de la base de datos y vuelve a cargar los datos, en la carpeta de la API. Esto borra todo lo que creaste.

Terminal
rm -f database.sqlite* && yarn seed

En PowerShell:

Terminal
Remove-Item database.sqlite*; yarn seed

Siguiente

¿Te resultó útil?

Revisado con la versión 2026-10-08

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