Lancer Kinora en local
Installez et démarrez chaque application avec Node.js et Yarn, un terminal par application.
Pour le pack Full Stack
Avant de commencer : installez Node.js 22.9 ou plus récent (22 pour le pack Backend seul) et lancez corepack enable une fois. Aucun serveur de base de données n'est nécessaire.
Ouvrez chaque terminal là où les commandes ci-dessous l'attendent : dans kinora-fitness-full-stack pour la version complète, ou à côté du dossier de l'application pour un pack à une seule application.
| Application | Dossier | Adresse |
|---|---|---|
| API | back-end | localhost:8000Local |
| Tableau de bord | dashboard | localhost:3030Local |
Démarrez d'abord l'API : avec les étapes ci-dessous, le tableau de bord lit toutes ses données depuis elle.
Démarrez l'API
Installez et configurez
.env.examplefonctionne tel quel pour le développement en local.Un problème ?Terminalcorepack enable cd back-end yarn install cp .env.example .envCréez la base de données
yarn seedcréedatabase.sqlite, ses tables et les données de démonstration. Le relancer n'ajoute que ce qui manque.Terminaldansback-endyarn seedDémarrez le serveur
Terminaldansback-endyarn devRésultat attendu: localhost:8000/api/healthLocal répond
Un problème ?{"status":"ok"}.
Démarrez l'API
Installez et configurez
.env.examplefonctionne tel quel pour le développement en local.Un problème ?Terminalcorepack enable cd kinora-fitness-backend yarn install cp .env.example .envCréez la base de données
yarn seedcréedatabase.sqlite, ses tables et les données de démonstration. Le relancer n'ajoute que ce qui manque.Terminaldanskinora-fitness-backendyarn seedDémarrez le serveur
Terminaldanskinora-fitness-backendyarn devRésultat attendu: localhost:8000/api/healthLocal répond
Un problème ?{"status":"ok"}. Le seed a affiché les comptes avec lesquels se connecter.
Démarrer le tableau de bord
Dans un deuxième terminal :
Installez et configurez
Terminalcd dashboard yarn install cp .env.example .envLe pointer vers l'API
Ouvrez
dashboard/.envet remplissez les deux lignes de l'API, vides dans l'exemple. Laissées vides, le tableau de bord fonctionne sur ses données d'exemple intégrées au lieu de l'API.dashboard/.envNEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api NEXT_PUBLIC_WEBSOCKET_BASE_URL=http://localhost:8000Démarrez-le et connectez-vous
Terminaldansdashboardyarn devRésultat attendu: localhost:3030Local ouvre le formulaire de connexion, prérempli avec le Head Coach :
Un problème ?headcoach@example.comavec le mot de passeCoach@123./en/auth/login?as=clientpréremplit le membre,member@example.comavecMember@123. L'arabe se trouve sur/ar.
Démarrer le tableau de bord
L'API ne fait pas partie de ce pack. Ne créez pas encore de fichier .env : sans lui, le tableau de bord fonctionne sur ses données d'exemple intégrées.
Démarrez-le et connectez-vous
Terminaldanskinora-fitness-dashboardyarn devRésultat attendu: localhost:3030Local ouvre le formulaire de connexion avec une mention « Sample data ». Le mot de passe n'est pas vérifié (le formulaire demande quand même au moins 6 caractères), et ce que vous modifiez est conservé dans le navigateur.
Quand l'API du template tourne, créez .env à partir de .env.example et indiquez son adresse dans NEXT_PUBLIC_API_BASE_URL. C'est ce qui désactive les données d'exemple.
Build de production
Les mêmes dossiers, construits une fois puis démarrés. Configurez d'abord back-end/.env pour la production. Avec NODE_ENV=production, l'API ne réécrit jamais le schéma d'elle-même : elle exécute les migrations au démarrage. Elle refuse de démarrer tant que JWT_SECRET est vide ou encore à la valeur de l'exemple, ou tant que CORS_ORIGIN est vide.
NODE_ENV=production
JWT_SECRET=<a long random string>
CORS_ORIGIN=http://localhost:3030
FRONTEND_URL=http://localhost:3030Générez le secret avec node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Construisez ensuite l'API, créez ses tables une fois, puis démarrez-la. yarn db:sync:prod crée des tables vides ; yarn seed:prod à sa place, ou après lui, ajoute les données de démonstration et leurs comptes.
back-endyarn build
yarn db:sync:prod
yarn start:prodPuis le tableau de bord, sur 3030 :
dashboardyarn build
yarn startLe tableau de bord intègre son .env à la compilation : relancez donc yarn build après l'avoir modifié. Avant de déployer quelque part en public, lisez la checklist de production.
Build de production
Construit une fois, puis démarré. Configurez d'abord .env pour la production. Avec NODE_ENV=production, l'API ne réécrit jamais le schéma d'elle-même : elle exécute les migrations au démarrage. Elle refuse de démarrer tant que JWT_SECRET est vide ou encore à la valeur de l'exemple, ou tant que CORS_ORIGIN est vide.
NODE_ENV=production
JWT_SECRET=<a long random string>
CORS_ORIGIN=https://app.your-domain.comGénérez le secret avec node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". CORS_ORIGIN liste les adresses des tableaux de bord qui appellent l'API, séparées par des virgules. Ensuite, construisez, créez les tables une fois et démarrez. yarn db:sync:prod crée des tables vides ; yarn seed:prod à sa place, ou après lui, ajoute les données de démonstration et leurs comptes.
kinora-fitness-backendyarn build
yarn db:sync:prod
yarn start:prodBuild de production
Construit une fois, puis démarré sur 3030. Sans .env, le build de production fonctionne sur les données d'exemple exactement comme yarn dev.
kinora-fitness-dashboardyarn build
yarn startLe tableau de bord intègre son .env à la compilation : relancez donc yarn build après l'avoir modifié.
Repartir de données de démonstration neuves
Arrêtez l'API, puis supprimez le fichier de base de données et relancez le seed, dans le dossier de l'API. Cela supprime tout ce que vous avez créé.
rm -f database.sqlite* && yarn seedDans PowerShell :
Remove-Item database.sqlite*; yarn seed