Lancer l'activité de réservation 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
hollina-vacation-rental-full-stack-….zipapparaît dans vos téléchargements.Décompressez et ouvrez le dossier
Ouvrez un terminal là où se trouve le ZIP, extrayez-le et placez-vous dans le dossier
hollina-vacation-rental-full-stack. Sous Windows, vous pouvez l'extraire dans l'Explorateur de fichiers, puis ouvrir un terminal dans le dossier.Terminalunzip -q hollina-vacation-rental-full-stack-*.zip cd hollina-vacation-rental-full-stackRésultat attendu: Le dossier contient
Un problème ?admin-dashboard,back-end,storefrontetdocker-compose.yml, à côté deREADME.md,QUICKSTART.mdetLICENSE.md.Démarrez les applications
Construisez et démarrez l'API, le site des séjours et le tableau de bord des réservations. Rien n'est à configurer au préalable. Le premier démarrage construit trois images et remplit la base de données avec la société de démonstration, ce qui prend quelques minutes ; les démarrages suivants prennent quelques secondes.
Terminaldanshollina-vacation-rental-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 useouport is already allocated, un autre programme utilise 3030, 3031 ou 8000. Arrêtez-le, ou créez un fichier nommé.envdans le dossierhollina-vacation-rental-full-stack, à côté dedocker-compose.yml, avec le port dont vous avez besoin, par exempleADMIN_PORT=3041(SITE_PORTpour le site,API_PORTpour l'API). Relancezdocker compose up --buildet ouvrez l'application sur son nouveau port.Résultat attendu: Les trois services restent actifs et le journal cesse de défiler. Laissez ce terminal ouvert.
Un problème ?Ouvrir le site des séjours
Ouvrez localhost:3030Local. L'anglais est sur
/enet l'arabe sur/ar. Le site n'a pas de comptes : les séjours enregistrés restent dans le navigateur du visiteur, et un voyageur retrouve une réservation avec sa référence et l'e-mail utilisé. Sans clés de paiement, le simulateur fourni accepte toute réservation par carte et par PayPal, donc tout le paiement fonctionne ; un numéro de carte se terminant par0est refusé, pour montrer le cas d'échec.Résultat attendu: Le site s'ouvre sur sa page d'accueil avec les séjours de démonstration, leurs photographies et les destinations.
Un problème ?Se connecter au tableau de bord des réservations
Ouvrez localhost:3031Local. Connectez-vous avec
admin@hollina.exampleet le mot de passeAdmin@123. Pour le manager, saisissezmanager@hollina.exampleavecManager@123. Changez les deux mots de passe avant que la pile soit accessible depuis internet.Résultat attendu: Le tableau de bord s'ouvre sur sa vue d'ensemble, avec l'occupation et le revenu du mois, les arrivées et départs du jour, et les dernières réservations.
Un problème ?
Faites le tour
À quoi ressemble la société de démonstration une fois que tout tourne.
| Compte | Mot de passe | |
|---|---|---|
| Super Admin : toutes les pages et toutes les permissions | admin@hollina.example | Admin@123 |
| Manager : la vue d'ensemble, le calendrier, les réservations, les séjours, les demandes, les avis et l'assistant IA ; pas d'admins, de rôles ni de paramètres de la société | manager@hollina.example | Manager@123 |
Le seed ajoute 14 séjours (12 publiés, 2 brouillons) avec 42 photographies, 6 destinations, 18 équipements, 60 réservations sur l'année, 8 plages bloquées, 12 questions de voyageurs, 24 avis et 6 questions pour la page d'accueil, si bien que chaque écran s'ouvre plein. Les dates sont stockées comme des décalages par rapport au jour du seed, donc une base neuve a toujours des arrivées aujourd'hui. Ce sont uniquement des comptes de démonstration locaux.
Arrêter et redémarrer
Appuyez sur Ctrl+C dans le terminal pour arrêter les applications, ou lancez ceci depuis le dossier hollina-vacation-rental-full-stack. Vos données, la base de données et les envois, sont conservées dans le volume hollina-data.
hollina-vacation-rental-full-stackdocker compose downRedémarrez avec la même commande qu'à l'étape 3. Sans --build, elle réutilise les images déjà construites.
hollina-vacation-rental-full-stackdocker compose upConserver vos données
docker compose down -v supprime aussi le volume de données. Le prochain démarrage crée une copie neuve de la société de démonstration, et tout ce que vous aviez créé disparaît.
Lancer le site des séjours
Ce pack est le site des séjours seul. Il lit tout dans l'API Hollina, donc démarrez d'abord l'API. 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 n'est pas dans ce téléchargement.
Décompressez et ouvrez le dossier
Terminalunzip -q hollina-website-*.zip cd hollina-websiteRé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. Sans argument, le site utilise l'API surhttp://localhost:8000/apiet se désigne commehttp://localhost:3030. Pour une API située ailleurs, indiquez son adresse.Terminaldanshollina-websitedocker build -t hollina-website .Avec votre propre API et votre propre domaine :
Terminaldanshollina-websitedocker build -t hollina-website --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-company.com/api --build-arg NEXT_PUBLIC_SITE_URL=https://www.your-company.com --build-arg NEXT_PUBLIC_MEDIA_HOSTNAME=media.your-company.com .Un problème ?Démarrez l'application
Dans le conteneur,
localhostdésigne le conteneur lui-même ;API_INTERNAL_URLindique donc au serveur du site où joindre l'API sur votre ordinateur, pour les titres de page, le premier rendu de l'accueil et des pages de séjour, et le sitemap.--add-hostfait fonctionnerhost.docker.internalsous Linux ; Docker Desktop l'a déjà. Si le port3030est pris, changez le nombre à gauche de-p, par exemple-p 3041:3030, ouvrez ce port à la place, et ajoutezhttp://localhost:3041auCORS_ORIGINde l'API.Terminaldanshollina-websitedocker run -p 3030:3030 -e API_INTERNAL_URL=http://host.docker.internal:8000/api --add-host=host.docker.internal:host-gateway hollina-websiteRésultat attendu: localhost:3030Local ouvre le site avec les séjours de votre API. L'anglais est sur
Un problème ?/en, l'arabe sur/ar.
Lancer le tableau de bord des réservations
Ce pack est le tableau de bord des réservations seul. Chaque écran lit l'API Hollina, donc démarrez d'abord l'API. 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 n'est pas dans ce téléchargement.
Téléchargez votre template
Ouvrez Mes templates et téléchargez le ZIP Tableau de bord des réservations.
Décompressez et ouvrez le dossier
Terminalunzip -q hollina-booking-dashboard-*.zip cd hollina-booking-dashboardRésultat attendu: Le dossier contient un
Un problème ?Dockerfileet unpackage.json.Construisez l'image
Sans arguments de build, le tableau de bord utilise l'API sur
http://localhost:8000/api. Pour une API située ailleurs, passez son adresse, son adresse sans/apipour les notifications en direct, et l'adresse du site pour le lien « Back to website » et le « View stay » de l'éditeur de séjour.Terminaldanshollina-booking-dashboarddocker build -t hollina-dashboard .Avec votre propre API :
Terminaldanshollina-booking-dashboarddocker build -t hollina-dashboard --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_MEDIA_HOSTNAME=api.your-domain.com --build-arg NEXT_PUBLIC_SITE_URL=https://your-domain.com .Un problème ?Démarrez-le et connectez-vous
Si le port
3031est pris, changez le nombre à gauche de-p, par exemple-p 3041:3031, ouvrez ce port à la place, et ajoutezhttp://localhost:3041àCORS_ORIGINde l'API (et définissez-yFRONTEND_URLavec cette adresse, celle depuis laquelle se connectent les notifications en direct).Terminaldanshollina-booking-dashboarddocker run -p 3031:3031 hollina-dashboardRé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.
Lancer l'API
Ce pack est l'API NestJS seule, sur un fichier SQLite conservé dans un volume Docker avec les envois. Le site des séjours et le tableau de bord des réservations sont des packs séparés et ne sont pas dans ce téléchargement.
Décompressez et ouvrez le dossier
Terminalunzip -q hollina-backend-*.zip cd hollina-backendRésultat attendu: Le dossier contient un
Un problème ?Dockerfile, undocker-entrypoint.shet unpackage.json.Le démarrer avec la société de démonstration
Un nouveau volume a des tables vides et aucun compte, sauf si vous demandez la société de démonstration ; gardez donc
-e SEED_DEMO_DATA=truepour un premier démarrage. Le volumehollina-api-dataconserve la base de données et les envois d'une exécution à l'autre. Si le port8000est pris, changez le nombre à gauche de-p, par exemple-p 8010:8000, et ajoutez-e PUBLIC_MEDIA_URL=http://localhost:8010/mediapour que les adresses des photographies l'utilisent aussi. Vos frontends doivent alors pointer vershttp://localhost:8010/api.Terminaldanshollina-backenddocker run -p 8000:8000 -v hollina-api-data:/data -e SEED_DEMO_DATA=true hollina-apiRésultat attendu: localhost:8000/
Un problème ?api/ healthLocal répond avec "status":"ok"et"database":"up".
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 (les deux, séparées par une virgule), FRONTEND_URL (le tableau de bord) et SITE_URL (le site, où un processeur de paiement renvoie le voyageur) avec -e. Sans clés de paiement, le simulateur fourni règle toute réservation par carte et par PayPal.
Pour donner au conteneur vos propres clés (Stripe, PayPal, R2, IA, MCP), créez .env depuis .env.example avec cp .env.example .env, remplissez-le, et ajoutez --env-file .env -e NODE_ENV=production à docker run :
hollina-backenddocker run -p 8000:8000 -v hollina-api-data:/data -e SEED_DEMO_DATA=true --env-file .env -e NODE_ENV=production hollina-apiUne valeur donnée avec -e l'emporte sur le même nom dans le fichier : le conteneur tourne donc en production quoi que dise .env, et il déplace les chemins relatifs du fichier (SQLITE_DATABASE, MEDIA_UPLOAD_DIR) dans le volume. Sans JWT_SECRET à vous, ou avec celui de l'exemple, le conteneur génère un secret et le garde dans le volume, si bien que les connexions survivent à un redémarrage.