Aller à l'article
Aniq-UI

HollinaLancer l'activité de réservation en local

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 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 hollina-vacation-rental-full-stack-….zip apparaît dans vos téléchargements.

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

    Terminal
    unzip -q hollina-vacation-rental-full-stack-*.zip
    cd hollina-vacation-rental-full-stack

    Résultat attendu: Le dossier contient admin-dashboard, back-end, storefront et docker-compose.yml, à côté de README.md, QUICKSTART.md et LICENSE.md.

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

    Terminaldans hollina-vacation-rental-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 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 hollina-vacation-rental-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. Ouvrir le site des séjours

    Ouvrez localhost:3030Local. L'anglais est sur /en et 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 par 0 est 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 ?
  5. Se connecter au tableau de bord des réservations

    Ouvrez localhost:3031Local. Connectez-vous avec admin@hollina.example et le mot de passe Admin@123. Pour le manager, saisissez manager@hollina.example avec Manager@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.

CompteE-mailMot de passe
Super Admin : toutes les pages et toutes les permissionsadmin@hollina.exampleAdmin@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.exampleManager@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.

Terminaldans hollina-vacation-rental-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 hollina-vacation-rental-full-stack
docker compose up

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

  1. Téléchargez votre template

    Ouvrez Mes templates et téléchargez le ZIP Site des séjours.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip -q hollina-website-*.zip
    cd hollina-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 argument, le site utilise l'API sur http://localhost:8000/api et se désigne comme http://localhost:3030. Pour une API située ailleurs, indiquez son adresse.

    Terminaldans hollina-website
    docker build -t hollina-website .

    Avec votre propre API et votre propre domaine :

    Terminaldans hollina-website
    docker 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 ?
  4. Démarrez l'application

    Dans le conteneur, localhost désigne le conteneur lui-même ; API_INTERNAL_URL indique 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-host fait fonctionner host.docker.internal sous Linux ; Docker Desktop l'a déjà. Si le port 3030 est pris, changez le nombre à gauche de -p, par exemple -p 3041:3030, ouvrez ce port à la place, et ajoutez http://localhost:3041 au CORS_ORIGIN de l'API.

    Terminaldans hollina-website
    docker run -p 3030:3030 -e API_INTERNAL_URL=http://host.docker.internal:8000/api --add-host=host.docker.internal:host-gateway hollina-website

    Résultat attendu: localhost:3030Local ouvre le site avec les séjours de votre API. L'anglais est sur /en, l'arabe sur /ar.

    Un problème ?

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.

  1. Téléchargez votre template

    Ouvrez Mes templates et téléchargez le ZIP Tableau de bord des réservations.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip -q hollina-booking-dashboard-*.zip
    cd hollina-booking-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 située ailleurs, passez son adresse, son adresse sans /api pour 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.

    Terminaldans hollina-booking-dashboard
    docker build -t hollina-dashboard .

    Avec votre propre API :

    Terminaldans hollina-booking-dashboard
    docker 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 ?
  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 http://localhost:3041 à CORS_ORIGIN de l'API (et définissez-y FRONTEND_URL avec cette adresse, celle depuis laquelle se connectent les notifications en direct).

    Terminaldans hollina-booking-dashboard
    docker run -p 3031:3031 hollina-dashboard

    Résultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec admin@hollina.example et le mot de passe Admin@123, qu'accepte une API avec seed.

    Un problème ?

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.

  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 -q hollina-backend-*.zip
    cd hollina-backend

    Résultat attendu: Le dossier contient un Dockerfile, un docker-entrypoint.sh et un package.json.

    Un problème ?
  3. Construisez l'image

    Terminaldans hollina-backend
    docker build -t hollina-api .
    Un problème ?
  4. 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=true pour un premier démarrage. Le volume hollina-api-data conserve la base de données et les envois 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 photographies l'utilisent aussi. Vos frontends doivent alors pointer vers http://localhost:8010/api.

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

    Résultat attendu: localhost:8000/api/healthLocal répond avec "status":"ok" et "database":"up".

    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 (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 :

Terminaldans hollina-backend
docker run -p 8000:8000 -v hollina-api-data:/data -e SEED_DEMO_DATA=true --env-file .env -e NODE_ENV=production hollina-api

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

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