Aller à l'article
Aniq-UI

KinoraLancer Kinora en local

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 requise
  1. Té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-….zip se trouve dans vos téléchargements.

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

    Terminal
    unzip kinora-fitness-full-stack-*.zip
    cd kinora-fitness-full-stack

    Résultat attendu: Le dossier contient back-end, dashboard et docker-compose.yml.

    Un problème ?
  3. 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.

    Terminaldans kinora-fitness-full-stack
    docker compose up --build

    Un port est déjà utilisé ?

    Si le démarrage s'arrête avec 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é .env dans le dossier kinora-fitness-full-stack avec le port voulu, par exemple DASHBOARD_PORT=3040 (API_PORT pour l'API). Relancez docker compose up --build et ouvrez le tableau de bord sur son nouveau port.

    Un port est déjà utilisé

    Résultat attendu: Les deux services restent en marche et le journal cesse de défiler. Laissez ce terminal ouvert.

    Un problème ?
  4. Se connecter en tant que coach

    Ouvrez localhost:3030Local. Le formulaire de connexion est prérempli avec le Head Coach, headcoach@example.com avec le mot de passe Coach@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 ?
  5. 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.com avec le mot de passe Member@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.

CompteE-mailMot de passeCe qu'il voit
Head Coachheadcoach@example.comCoach@123Tous les écrans de l'équipe, avec la liste de clients la plus complète
Membremember@example.comMember@123Les pages d'entraînement, suivies par le Head Coach
Personal Trainertrainer@example.comTrainer@123Sa 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.

Terminaldans kinora-fitness-full-stack
docker compose down

Redémarrez avec la même commande qu'à l'étape 3. Sans --build, elle réutilise les images déjà construites.

Terminaldans kinora-fitness-full-stack
docker compose up

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

  1. Téléchargez votre template

    Ouvrez Mes templates et téléchargez le ZIP Dashboard.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip kinora-fitness-dashboard-*.zip
    cd kinora-fitness-dashboard

    Résultat attendu: Le dossier contient un Dockerfile et un package.json.

    Un problème ?
  3. 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).

    Terminaldans kinora-fitness-dashboard
    docker build -t kinora-dashboard .

    Avec votre propre API :

    Terminaldans kinora-fitness-dashboard
    docker 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 .
    Un problème ?
  4. Démarrez-le et connectez-vous

    Si le port 3030 est occupé, changez le nombre à gauche de -p, par exemple -p 3040:3030, et ouvrez ce port à la place.

    Terminaldans kinora-fitness-dashboard
    docker run -p 3030:3030 kinora-dashboard

    Ré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 : member@example.com se 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.

    Un problème ?

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.

  1. Téléchargez votre template

    Ouvrez Mes templates et téléchargez le ZIP Backend.

  2. Décompressez et créez le fichier d'environnement

    .env.example fonctionne tel quel pour une exécution en local. La copie .env est l'endroit où vous placerez plus tard vos propres clés.

    Terminal
    unzip kinora-fitness-backend-*.zip
    cd kinora-fitness-backend
    cp .env.example .env
    Un problème ?
  3. Construisez l'image

    Terminaldans kinora-fitness-backend
    docker build -t kinora-api .
    Un problème ?
  4. Le 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 8000 est occupé, changez le nombre à gauche de -p, par exemple -p 8010:8000, et l'API répond alors sur http://localhost:8010/api.

    Terminaldans kinora-fitness-backend
    docker run -p 8000:8000 -v kinora-data:/data -e SEED_DEMO_DATA=true kinora-api

    Résultat attendu: localhost:8000/api/healthLocal répond {"status":"ok"}.

    Un problème ?

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.

Étapes suivantes

Bloqué sur une étape ?

Trouvez une solution avant de tout recommencer.

Dépannage

Préférences des Cookies

Nous utilisons des cookies pour améliorer votre expérience de navigation, analyser le trafic du site et personnaliser le contenu. En cliquant sur "Accepter Tout", vous consentez à notre utilisation des cookies pour l'analyse et la publicité personnalisée.