Lancer l'activité de réservation 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 ou plus récent et lancez corepack enable une fois (sous Node.js 25 et plus récent, qui n'inclut plus Corepack, lancez d'abord npm install -g corepack). Aucun serveur de base de données n'est nécessaire.
Ouvrez chaque terminal là où les commandes ci-dessous l'attendent : dans hollina-vacation-rental-full-stack pour la pile complète, ou à côté du dossier de l'application pour un pack à application unique.
| Application | Dossier | Adresse |
|---|---|---|
| API | back-end | localhost:8000Local |
| Site des séjours | storefront | localhost:3030Local |
| Tableau de bord des réservations | admin-dashboard | localhost:3031Local |
Démarrez l'API en premier : les deux frontends lisent toutes leurs données à partir de l'API.
Démarrez l'API
Installez et configurez
.env.examplefonctionne tel quel pour le développement local : SQLite sur le port8000, et aucune clé de paiement, donc le simulateur fourni accepte toute réservation par carte et par PayPal.Terminalcorepack enable cd back-end yarn install cp .env.example .envUn problème ?Créez la base de données
yarn seedvérifie que chaque photographie du seed est présente, puis créedatabase.sqlite, ses tables et la société de démonstration : 32 permissions, les rôles Super Admin et Manager, les deux comptes, 15 paramètres de société, 18 équipements, 6 destinations, 14 séjours (12 publiés, 2 brouillons) avec 42 photographies, 6 questions pour la page d'accueil, 60 réservations, 8 plages bloquées, 12 demandes et 24 avis. Les dates sont stockées comme des décalages par rapport au jour du seed, donc il y a toujours des arrivées aujourd'hui.Terminaldansback-endyarn seedDémarrez le serveur
Terminaldansback-endyarn devRésultat attendu: localhost:8000/
Un problème ?api/ healthLocal répond avec "status":"ok"et"database":"up".
Démarrez l'API
Installez et configurez
.env.examplefonctionne tel quel pour le développement local : SQLite sur le port8000, et aucune clé de paiement, donc le simulateur fourni accepte toute réservation par carte et par PayPal.Terminalcorepack enable cd hollina-backend yarn install cp .env.example .envUn problème ?Créez la base de données
yarn seedvérifie que chaque photographie du seed est présente, puis créedatabase.sqlite, ses tables et la société de démonstration : 32 permissions, les rôles Super Admin et Manager, les deux comptes, 15 paramètres de société, 18 équipements, 6 destinations, 14 séjours (12 publiés, 2 brouillons) avec 42 photographies, 6 questions pour la page d'accueil, 60 réservations, 8 plages bloquées, 12 demandes et 24 avis. Les dates sont stockées comme des décalages par rapport au jour du seed, donc il y a toujours des arrivées aujourd'hui.Terminaldanshollina-backendyarn seedDémarrez le serveur
Terminaldanshollina-backendyarn devRésultat attendu: localhost:8000/
Un problème ?api/ healthLocal répond avec "status":"ok"et"database":"up".
Relancer le seed
Il remet les lignes de démonstration en place
yarn seed identifie chaque ligne qu'il fournit par une clé stable (le S001 d'un séjour, le B0001 d'une réservation, le nom d'un paramètre). Le relancer n'ajoute rien en double et ne réinitialise jamais un mot de passe, mais il remet chaque séjour, destination, réservation, blocage, demande, avis, question d'accueil et paramètre de société fournis à leurs valeurs d'origine, avec les dates décalées au nouveau jour ; le nom de votre société, vos coordonnées et toute modification d'un séjour de démonstration sont donc remplacés. Les séjours, réservations et tout ce que vous avez créé vous-même sont conservés. Lancez-le une fois sur une base neuve, pas sur une base devenue la vôtre.
Démarrer le site des séjours
Dans un deuxième terminal :
Installez et configurez
Le
.envcopié fait pointer le site vers l'API sur le port8000.Terminalcd storefront yarn install cp .env.example .envDémarrez l'application
yarn devcopie d'abord le worker de la bibliothèque de cartes danspublic/maplibre/, puis démarre le site.Terminaldansstorefrontyarn devRésultat attendu: localhost:3030Local ouvre le site en anglais avec les séjours de démonstration ; l'arabe est sur
Un problème ?/ar.
Démarrer le site des séjours
L'API ne fait pas partie de ce pack. Démarrez-la en premier ; le .env copié l'attend sur http://localhost:8000/api.
Installez et configurez
Si votre API tourne ailleurs, définissez
NEXT_PUBLIC_API_BASE_URLdans.envavec son adresse,/apicompris.Terminalcorepack enable cd hollina-website yarn install cp .env.example .envUn problème ?Démarrez l'application
yarn devcopie d'abord le worker de la bibliothèque de cartes danspublic/maplibre/, puis démarre le site.Terminaldanshollina-websiteyarn devRésultat attendu: localhost:3030Local ouvre le site avec les séjours de votre API ; l'arabe est sur
Un problème ?/ar.
Démarrer le tableau de bord des réservations
Dans un troisième terminal :
Installez et configurez
Le
.envcopié fait pointer le tableau de bord vers l'API et ses notifications en direct sur le port8000.Terminalcd admin-dashboard yarn install cp .env.example .envDémarrez-le et connectez-vous
Terminaldansadmin-dashboardyarn devRésultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec
Un problème ?admin@hollina.exampleet le mot de passeAdmin@123.
Démarrer le tableau de bord des réservations
L'API ne fait pas partie de ce pack. Démarrez-la en premier ; le .env copié l'attend sur http://localhost:8000/api.
Installez et configurez
Si votre API tourne ailleurs, définissez dans
.envNEXT_PUBLIC_API_BASE_URL(avec/api) etNEXT_PUBLIC_WEBSOCKET_BASE_URL(sans) avec son adresse.Terminalcorepack enable cd hollina-booking-dashboard yarn install cp .env.example .envUn problème ?Démarrez-le et connectez-vous
Terminaldanshollina-booking-dashboardyarn devRésultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec
Un problème ?admin@hollina.exampleet le mot de passeAdmin@123, qu'accepte une API avec seed.
Autres ports
Sans Docker, les ports sont fixés dans les fichiers. Les scripts dev et start du site dans package.json passent -p 3030, et ceux du tableau de bord passent -p 3031 : changez le nombre à cet endroit pour en déplacer un, puis ajoutez la nouvelle adresse à CORS_ORIGIN dans le .env de l'API ; pour le tableau de bord, définissez-y aussi FRONTEND_URL avec cette adresse, et pour le site SITE_URL. Pour déplacer l'API, définissez PORT et PUBLIC_MEDIA_URL dans son .env avec le même nombre, et NEXT_PUBLIC_API_BASE_URL dans les deux frontends (ainsi que NEXT_PUBLIC_WEBSOCKET_BASE_URL pour le tableau de bord).
Build de production
Les mêmes dossiers, construits une fois puis démarrés. Commencez par régler le .env de l'API pour la production : avec NODE_ENV=production, l'API ne modifie jamais les tables au démarrage, et 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=paste-the-generated-secret-here
CORS_ORIGIN=http://localhost:3030,http://localhost:3031
FRONTEND_URL=http://localhost:3031
SITE_URL=http://localhost:3030
PUBLIC_MEDIA_URL=http://localhost:8000/mediaGénérez le secret avec node -e "console.log(require('crypto').randomBytes(48).toString('hex'))". Ensuite, dans le dossier de l'API, construisez-la, créez ses tables une fois, puis démarrez-la. yarn seed:prod ajoute la société de démonstration et ses comptes ; yarn db:sync:prod à sa place crée des tables vides sans compte.
yarn build
yarn seed:prod
yarn start:prodBuild de production des frontends
Dans le dossier de chaque frontend, lancez le build une fois puis démarrez. Le site répond sur 3030 et le tableau de bord sur 3031.
yarn build
yarn startLes frontends compilent leur .env au moment du build : relancez donc yarn build après l'avoir modifié. Avant de déployer quoi que ce soit de public, lisez le guide de déploiement.
Repartir de données de démonstration neuves
Arrêtez l'API, puis, dans le dossier de l'API, supprimez le fichier de la base de données et recréez-la avec les données de démonstration. Cela supprime tout ce que vous avez créé.
rm -f database.sqlite* && yarn seedDans PowerShell :
Remove-Item database.sqlite*; yarn seed