Lancer Kinora en local
Lancez votre pack sur votre ordinateur, avec Docker.
Pour le pack Full Stack
Avant de commencer : installez et ouvrez Docker Desktop, ou Docker Engine avec Compose.
Voir la configuration requiseTéléchargez votre template
Ouvrez Mes templates et téléchargez le ZIP correspondant à votre pack.
Résultat attendu: Un fichier nommé comme
kinora-fitness-full-stack-main-….zipse trouve dans vos téléchargements.Décompressez et ouvrez le dossier
Extrayez le ZIP et ouvrez un terminal dans le dossier
kinora-fitness-full-stack. Sous Windows, extrayez-le dans l'Explorateur de fichiers, puis ouvrez un terminal dans le dossier.Terminalunzip kinora-fitness-full-stack-*.zip cd kinora-fitness-full-stackRésultat attendu: Le dossier contient
Un problème ?back-end,dashboardetdocker-compose.yml.Démarrez les applications
Construisez et démarrez l'API et le tableau de bord. Rien n'est à configurer au préalable. Le premier démarrage construit deux images et remplit la base de données avec les données de démonstration, ce qui prend quelques minutes ; les démarrages suivants prennent quelques secondes.
Terminaldanskinora-fitness-full-stackdocker compose up --buildUn port est déjà utilisé ?
Si le démarrage s'arrête avec
Un port est déjà utiliséports are not available ... address already in use, un autre programme utilise le port 3030 ou 8000. Arrêtez-le, ou créez un fichier nommé.envdans le dossierkinora-fitness-full-stackavec le port voulu, par exempleDASHBOARD_PORT=3040(API_PORTpour l'API). Relancezdocker compose up --buildet ouvrez le tableau de bord sur son nouveau port.Résultat attendu: Les deux services restent en marche et le journal cesse de défiler. Laissez ce terminal ouvert.
Un problème ?Se connecter en tant que coach
Ouvrez localhost:3030Local. Le formulaire de connexion est prérempli avec le Head Coach,
headcoach@example.comavec le mot de passeCoach@123. L'arabe se trouve sur/ar.Résultat attendu: La vue d'ensemble du coach s'ouvre : la liste de clients, les clients devenus silencieux, les bilans hebdomadaires en attente de réponse et le travail attribué pour aujourd'hui.
Un problème ?Se connecter en tant que membre
Déconnectez-vous, puis ouvrez localhost:3030/en/auth/login?as=clientLocal. Le formulaire est prérempli avec le membre,
member@example.comavec le mot de passeMember@123.Résultat attendu: La vue d'ensemble du membre s'ouvre, avec les anneaux, les calories, le sommeil, la fréquence cardiaque et les séances d'entraînement de la semaine.
Un problème ?
Faites le tour
À quoi ressemble la démo une fois que tout tourne.

| Compte | Mot de passe | Ce qu'il voit | |
|---|---|---|---|
| Head Coach | headcoach@example.com | Coach@123 | Tous les écrans de l'équipe, avec la liste de clients la plus complète |
| Membre | member@example.com | Member@123 | Les pages d'entraînement, suivies par le Head Coach |
| Personal Trainer | trainer@example.com | Trainer@123 | Sa propre liste de clients et les catalogues de contenu |
Onze autres comptes de l'équipe existent en @staff.com avec le mot de passe staff123, en tant que Coach, Personal Trainer, Gym Manager, Editor ou Viewer. D'autres membres existent en @example.com avec password123. Ce sont uniquement des comptes de démonstration locaux : changez les mots de passe avant toute mise en ligne.
Le formulaire de connexion se remplit tout seul : /en/auth/login?as=coach (aussi la valeur par défaut) pour le Head Coach et /en/auth/login?as=client pour le membre.
Arrêter et redémarrer
Appuyez sur Ctrl+C dans le terminal pour arrêter les applications, ou exécutez ceci depuis le dossier kinora-fitness-full-stack. Vos données sont conservées dans le volume kinora-data.
kinora-fitness-full-stackdocker compose downRedémarrez avec la même commande qu'à l'étape 3. Sans --build, elle réutilise les images déjà construites.
kinora-fitness-full-stackdocker compose upConserver vos données
docker compose down -v supprime aussi le volume de la base de données. Le démarrage suivant recrée une copie neuve des données de démonstration, et tout ce que vous avez créé est perdu.
Lancer le tableau de bord
Ce pack contient uniquement le tableau de bord. Sans API, il fonctionne sur des données d'exemple intégrées, dans le navigateur : vous pouvez vous connecter, enregistrer une séance d'entraînement, créer un membre et modifier un rôle, et vos modifications sont conservées dans le navigateur. L'API est un pack séparé et ne fait pas partie de ce téléchargement.
Décompressez et ouvrez le dossier
Terminalunzip kinora-fitness-dashboard-*.zip cd kinora-fitness-dashboardRésultat attendu: Le dossier contient un
Un problème ?Dockerfileet unpackage.json.Construisez l'image
Les valeurs
NEXT_PUBLIC_*sont compilées dans le JavaScript que charge le navigateur : ce sont donc des arguments de build. Omettez-les pour utiliser les données d'exemple ; pour utiliser l'API du template, passez son adresse et son adresse WebSocket (le même serveur sans/api).Terminaldanskinora-fitness-dashboarddocker build -t kinora-dashboard .Avec votre propre API :
Un problème ?Terminaldanskinora-fitness-dashboarddocker build -t kinora-dashboard --build-arg NEXT_PUBLIC_API_BASE_URL=http://localhost:8000/api --build-arg NEXT_PUBLIC_WEBSOCKET_BASE_URL=http://localhost:8000 .Démarrez-le et connectez-vous
Si le port
3030est occupé, changez le nombre à gauche de-p, par exemple-p 3040:3030, et ouvrez ce port à la place.Terminaldanskinora-fitness-dashboarddocker run -p 3030:3030 kinora-dashboardRésultat attendu: localhost:3030Local ouvre le formulaire de connexion, prérempli avec le Head Coach. Une mention « Sample data » en bas indique qu'aucune API n'est connectée. Le mot de passe n'est pas vérifié sur les données d'exemple :
Un problème ?member@example.comse connecte en tant que membre, et un e-mail que les données d'exemple ne connaissent pas se connecte en tant que Head Coach.
Lancer l'API
Ce pack contient uniquement l'API NestJS, sur un fichier SQLite conservé dans un volume Docker. Le tableau de bord est un pack séparé et ne fait pas partie de ce téléchargement.
Décompressez et créez le fichier d'environnement
.env.examplefonctionne tel quel pour une exécution en local. La copie.envest l'endroit où vous placerez plus tard vos propres clés.Un problème ?Terminalunzip kinora-fitness-backend-*.zip cd kinora-fitness-backend cp .env.example .envLe démarrer avec les données de démonstration
Un volume neuf reçoit des tables vides, sauf si vous demandez les données de démonstration. Le volume conserve la base de données d'un lancement à l'autre. Si le port
8000est occupé, changez le nombre à gauche de-p, par exemple-p 8010:8000, et l'API répond alors surhttp://localhost:8010/api.Terminaldanskinora-fitness-backenddocker run -p 8000:8000 -v kinora-data:/data -e SEED_DEMO_DATA=true kinora-apiRésultat attendu: localhost:8000/api/healthLocal répond
Un problème ?{"status":"ok"}.
Le conteneur ne lit votre .env que si vous ajoutez --env-file .env à docker run ; c'est ainsi que vos clés de stockage, d'IA et de MCP lui parviennent. Sans JWT_SECRET à vous, ou avec celui de l'exemple, le conteneur génère un secret et le conserve dans le volume.
L'image autorise les appels du navigateur depuis http://localhost:3030. Pour un tableau de bord sur une autre adresse, passez -e CORS_ORIGIN= et -e FRONTEND_URL= avec cette adresse.