Aller à l'article
Aniq-UI

Food StudioLancer le restaurant en local

Lancer le restaurant 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 food-studio-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 food-studio-full-stack. Sous Windows, extrayez-le dans l'Explorateur de fichiers, puis ouvrez un terminal dans le dossier.

    Terminal
    unzip food-studio-full-stack-*.zip
    cd food-studio-full-stack

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

    Un problème ?
  3. Démarrez les applications

    Construisez et démarrez l'API, le site de commande et le tableau de bord du personnel. Rien n'est à configurer au préalable. Le premier démarrage construit trois images et remplit la base de données avec le restaurant de démonstration, ce qui prend quelques minutes ; les démarrages suivants ne prennent que quelques secondes.

    Terminaldans food-studio-full-stack
    docker compose up --build

    Un port est déjà utilisé ?

    Si le démarrage s'arrête avec address already in use ou port is already allocated, un autre programme utilise 3030, 3031 ou 8000. Arrêtez-le, ou créez un fichier nommé .env dans le dossier food-studio-full-stack, à côté de docker-compose.yml, avec le port dont vous avez besoin, par exemple ADMIN_PORT=3041 (SITE_PORT pour le site, API_PORT pour l'API). Relancez docker compose up --build et ouvrez l'application sur son nouveau port.

    Un port est déjà utilisé

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

    Un problème ?
  4. Ouvrez le site de commande

    Ouvrez localhost:3030Local. Pour vous connecter en tant que client de démonstration, utilisez sam@foodstudio.example avec le mot de passe FoodDemo2026!. L'arabe se trouve sous /ar.

    Résultat attendu: Le site s'ouvre sur sa page d'accueil avec le menu de démonstration et ses photos.

    Un problème ?
  5. Connectez-vous au tableau de bord du personnel

    Ouvrez localhost:3031Local. Connectez-vous avec owner@foodstudio.example et le mot de passe FoodDemo2026!. Pour le gérant ou la cuisine, saisissez manager@foodstudio.example ou kitchen@foodstudio.example avec le même mot de passe. Changez ces mots de passe avant que le restaurant soit accessible depuis Internet.

    Résultat attendu: Le tableau de bord s'ouvre sur sa vue d'ensemble, avec les commandes du jour et la file d'attente de la cuisine.

    Un problème ?

Faites le tour

Voici à quoi ressemble le restaurant de démonstration une fois que tout tourne.

CompteSe connecte surE-mailMot de passe
Propriétaire : tout, y compris l'équipe et les rôlesTableau de bord du personnelowner@foodstudio.exampleFoodDemo2026!
Gérant : tout sauf l'équipe et les rôlesTableau de bord du personnelmanager@foodstudio.exampleFoodDemo2026!
Cuisine : les commandes de la cuisine Central, sans les prixTableau de bord du personnelkitchen@foodstudio.exampleFoodDemo2026!
Client, avec des points de fidélité issus de commandes passéesSite de commandesam@foodstudio.exampleFoodDemo2026!

Les données de démonstration ajoutent aussi deux autres gérants (rami.manager@foodstudio.example et nina.manager@foodstudio.example) et un compte cuisine pour chacune des trois autres cuisines (riverside.kitchen@, uptown.kitchen@ et harbor.kitchen@, tous en foodstudio.example), avec le même mot de passe. Ce sont uniquement des comptes de démonstration en local.

Arrêter et redémarrer

Appuyez sur Ctrl+C dans le terminal pour arrêter les applications, ou exécutez cette commande depuis le dossier food-studio-full-stack. Vos données, la base de données et les fichiers envoyés, sont conservées dans le volume food-studio-data.

Terminaldans food-studio-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 food-studio-full-stack
docker compose up

Conserver vos données

docker compose down -v supprime aussi le volume de données. Le démarrage suivant recrée une copie neuve du restaurant de démonstration, et tout ce que vous avez créé est perdu.

Lancer le site de commande

Ce pack est le site de commande seul. Il lit tout depuis l'API du template, démarrez donc l'API en premier. Sauf si vous le construisez avec une autre adresse, le site attend l'API sur http://localhost:8000. 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 Site de commande.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip food-studio-website-*.zip
    cd food-studio-website

    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. Sans aucun argument, le site utilise l'API sur http://localhost:8000/api. Pour une API ailleurs, passez son adresse.

    Terminaldans food-studio-website
    docker build -t foodstudio-site .

    Avec votre propre API :

    Terminaldans food-studio-website
    docker build -t foodstudio-site --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com/api --build-arg NEXT_PUBLIC_MEDIA_HOSTNAME=media.your-domain.com .
    Un problème ?
  4. Démarrez l'application

    Si le port 3030 est pris, changez le nombre à gauche de -p, par exemple -p 3041:3030, ouvrez ce port à la place et ajoutez la nouvelle adresse au CORS_ORIGIN de l'API.

    Terminaldans food-studio-website
    docker run -p 3030:3030 foodstudio-site

    Résultat attendu: localhost:3030Local ouvre le site avec le menu de votre API. L'anglais se trouve sous /en, l'arabe sous /ar.

    Un problème ?

Lancer le tableau de bord du personnel

Ce pack est le tableau de bord du personnel seul. Chaque écran lit l'API du template, démarrez donc l'API en premier. Sauf si vous le construisez avec une autre adresse, le tableau de bord attend l'API sur http://localhost:8000. 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 Tableau de bord du personnel.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip food-studio-staff-dashboard-*.zip
    cd food-studio-staff-dashboard

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

    Un problème ?
  3. Construisez l'image

    Sans arguments de build, le tableau de bord utilise l'API sur http://localhost:8000/api. Pour une API ailleurs, passez son adresse, son adresse sans /api pour les notifications en direct, et l'adresse du site pour le lien « View storefront ».

    Terminaldans food-studio-staff-dashboard
    docker build -t foodstudio-admin .

    Avec votre propre API :

    Terminaldans food-studio-staff-dashboard
    docker build -t foodstudio-admin --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_STOREFRONT_URL=https://your-domain.com .
    Un problème ?
  4. Démarrez-le et connectez-vous

    Si le port 3031 est pris, changez le nombre à gauche de -p, par exemple -p 3041:3031, ouvrez ce port à la place et ajoutez la nouvelle adresse au CORS_ORIGIN de l'API.

    Terminaldans food-studio-staff-dashboard
    docker run -p 3031:3031 foodstudio-admin

    Résultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec le compte propriétaire owner@foodstudio.example et le mot de passe FoodDemo2026!, qu'une API avec les données de démonstration accepte.

    Un problème ?

Lancer l'API

Ce pack est l'API NestJS seule, sur un fichier SQLite conservé dans un volume Docker avec les fichiers envoyés. Le site de commande et le tableau de bord du personnel sont des packs séparés et ne font pas partie de ce téléchargement.

  1. Téléchargez votre template

    Ouvrez Mes templates et téléchargez le ZIP API backend.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip food-studio-backend-*.zip
    cd food-studio-backend

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

    Un problème ?
  3. Construisez l'image

    Terminaldans food-studio-backend
    docker build -t foodstudio-api .
    Un problème ?
  4. Démarrez-la avec le restaurant de démonstration

    Un nouveau volume reçoit des tables vides et aucun compte, sauf si vous demandez le restaurant de démonstration : gardez donc -e SEED_DEMO_DATA=true pour un premier démarrage. Le volume conserve la base de données et les fichiers envoyés d'une exécution à l'autre. Si le port 8000 est pris, changez le nombre à gauche de -p, par exemple -p 8010:8000, et ajoutez -e PUBLIC_MEDIA_URL=http://localhost:8010/media pour que les adresses des images l'utilisent aussi. Vos frontends doivent alors pointer vers http://localhost:8010/api.

    Terminaldans food-studio-backend
    docker run -p 8000:8000 -v foodstudio-data:/data -e SEED_DEMO_DATA=true foodstudio-api

    Résultat attendu: localhost:8000/api/healthLocal répond {"success":true,"data":{"status":"ok","database":"up"},"message":""}.

    Un problème ?

Le conteneur accepte le site sur http://localhost:3030 et le tableau de bord sur http://localhost:3031. Pour d'autres adresses, définissez CORS_ORIGIN, FRONTEND_URL et STOREFRONT_URL avec -e.

Pour donner vos propres clés au conteneur (paiements, e-mail, R2, IA), créez .env à partir de .env.example avec cp .env.example .env, remplissez-le et ajoutez --env-file .env à docker run. Sans JWT_SECRET personnel, ou avec celui de l'exemple, le conteneur génère un secret et le conserve dans le volume.

L'image n'inclut pas le modèle de suppression d'arrière-plan, sauf si vous le demandez. Pour l'inclure, construisez avec :

Terminaldans food-studio-backend
docker build --build-arg FETCH_BG_MODEL=true -t foodstudio-api .

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