Aller à l'article
Aniq-UI

TicketoryLancer Ticketory en local

Lancer Ticketory 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 ticketory-full-stack-….zip se trouve 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 ticketory-full-stack. Sous Windows, vous pouvez l'extraire dans l'Explorateur de fichiers, puis ouvrir un terminal dans le dossier.

    Terminal
    unzip -q ticketory-full-stack-*.zip
    cd ticketory-full-stack
    ls

    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 public et le tableau de bord organisateur. Rien n'est à configurer au préalable. Le premier démarrage construit trois images et remplit la base avec les organisateurs d'exemple et leurs événements, ce qui prend quelques minutes ; les démarrages suivants prennent quelques secondes.

    Terminaldans ticketory-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 ticketory-full-stack, à côté de docker-compose.yml, avec le port voulu, 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 public

    Ouvrez localhost:3030Local. L'anglais est sur /en et l'arabe sur /ar. Tout le monde peut acheter sans compte ; pour voir les billets, commandes et événements enregistrés d'un participant, connectez-vous avec attendee@example.test et le mot de passe DemoOnly!2026.

    Résultat attendu: Le site s'ouvre sur sa page d'accueil, avec les événements d'exemple et leurs images.

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

    Ouvrez localhost:3031Local. Connectez-vous avec owner@example.test et le mot de passe DemoOnly!2026. Tous les comptes d'exemple utilisent ce mot de passe ; changez-les avant que l'ensemble soit accessible depuis Internet.

    Résultat attendu: Le tableau de bord s'ouvre sur sa vue d'ensemble, avec les ventes de billets, l'entrée en direct et les prochains événements.

    Un problème ?

Faites le tour

À quoi ressemblent les organisateurs d'exemple une fois que tout tourne.

CompteE-mailEmplacement
Propriétaire : tout, y compris les remboursements, l'équipe, les rôles et les paramètresowner@example.testTableau de bord
Gestionnaire : événements, lieux, contrôle des billets, rapports, demandes, le studio et l'assistant ; commandes en lecture seulemanager@example.testTableau de bord
Finance : la vue d'ensemble, les commandes, les remboursements, la réémission et l'annulation de billets, et les rapportsfinance@example.testTableau de bord
Contrôle des billets : uniquement l'entrée, pour les sessions qui lui sont attribuéescheckin@example.testTableau de bord
Participante Taylor Morgan : huit commandes et quatre événements enregistrésattendee@example.testSite

Chaque compte se connecte avec le mot de passe DemoOnly!2026. Ce sont uniquement des comptes de démonstration locaux.

Les données d'exemple ajoutent quatre organisateurs, chacun avec son propre espace de travail, entre lesquels le propriétaire bascule depuis la barre du haut du tableau de bord : Northline Events, Kiln & Co., Mill Street Talks et Meadow Days. À eux quatre, ils ont 9 lieux, 36 événements (22 sur le site, dont 3 en cours, 9 déjà terminés, 1 annulé et 4 brouillons), 1 145 commandes et 14 comptes d'équipe, si bien que chaque écran s'ouvre bien rempli.

Arrêter et redémarrer

Appuyez sur Ctrl+C dans le terminal pour arrêter les applications, ou lancez cette commande depuis le dossier ticketory-full-stack. Vos données, c'est-à-dire la base, les fichiers envoyés et les exports CSV, sont conservées dans le volume ticketory-data.

Terminaldans ticketory-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 ticketory-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 des organisateurs d'exemple, et tout ce que vous avez créé a disparu.

Lancer le site public

Ce pack est le site public seul. Il lit tout depuis l'API Ticketory, 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 n'est pas dans ce téléchargement.

  1. Téléchargez votre template

    Ouvrez Mes templates et téléchargez le ZIP Ticketing Website.

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip -q ticketory-website-*.zip
    cd ticketory-website
    ls

    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, le site utilise l'API sur http://localhost:8000/api, se désigne par http://localhost:3030 et envoie les organisateurs vers le tableau de bord sur http://localhost:3031. Pour une API ailleurs, indiquez son adresse.

    Terminaldans ticketory-website
    docker build -t ticketory-website .

    Avec votre propre API et vos domaines :

    Terminaldans ticketory-website
    docker build -t ticketory-website --build-arg NEXT_PUBLIC_API_BASE_URL=https://api.your-domain.com/api --build-arg NEXT_PUBLIC_SITE_URL=https://www.your-domain.com --build-arg NEXT_PUBLIC_DASHBOARD_URL=https://dashboard.your-domain.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 des pages d'événement, le premier rendu des pages d'accueil, d'événement, de lieu et d'organisateur, 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 3040:3030, ouvrez ce port à la place, ajoutez http://localhost:3040 au CORS_ORIGIN de l'API et définissez-le comme STOREFRONT_URL de l'API.

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

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

    Un problème ?

Pour que l'API actualise les pages d'événement, de lieu et d'organisateur dès qu'elles changent, ajoutez -e REVALIDATE_SECRET= suivi de la même valeur que REVALIDATE_SECRET dans le .env de l'API. Sans cela, ces pages s'actualisent d'elles-mêmes en moins d'une heure.

Lancer le tableau de bord organisateur

Ce pack est le tableau de bord organisateur seul. Chaque écran lit l'API Ticketory, 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 n'est pas dans ce téléchargement.

  1. Téléchargez votre template

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

  2. Décompressez et ouvrez le dossier

    Terminal
    unzip -q ticketory-dashboard-*.zip
    cd ticketory-dashboard
    ls

    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, indiquez son adresse, son adresse sans /api pour les notifications en direct, l'hôte qui sert ses images, et l'adresse du site pour le lien « View website ».

    Terminaldans ticketory-dashboard
    docker build -t ticketory-dashboard .

    Avec votre propre API :

    Terminaldans ticketory-dashboard
    docker build -t ticketory-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, ajoutez http://localhost:3041 au CORS_ORIGIN de l'API et définissez son FRONTEND_URL avec cette adresse (celle d'où se connectent les notifications en direct), puis redémarrez l'API.

    Terminaldans ticketory-dashboard
    docker run -p 3031:3031 ticketory-dashboard

    Résultat attendu: localhost:3031Local ouvre le formulaire de connexion. Connectez-vous avec owner@example.test et le mot de passe DemoOnly!2026, qu'accepte une API remplie avec les données d'exemple.

    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 et les exports CSV. Le site public et le tableau de bord organisateur 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 ticketory-backend-*.zip
    cd ticketory-backend
    ls

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

    Un problème ?
  3. Construisez l'image

    Terminaldans ticketory-backend
    docker build -t ticketory-api .
    Un problème ?
  4. Démarrez-la avec les données d'exemple

    Un nouveau volume reçoit des tables vides et aucun compte, sauf si vous demandez les organisateurs d'exemple : gardez donc -e SEED_DEMO_DATA=true pour un premier démarrage. Le volume ticketory-api-data conserve la base, les fichiers envoyés et les exports CSV entre deux lancements. 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 et -e PUBLIC_API_URL=http://localhost:8010 pour que les adresses des images et les liens de téléchargement des billets l'utilisent aussi. Vos frontends doivent alors pointer vers http://localhost:8010/api.

    Terminaldans ticketory-backend
    docker run -p 8000:8000 -v ticketory-api-data:/data -e SEED_DEMO_DATA=true ticketory-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. Sur d'autres adresses, définissez CORS_ORIGIN (les deux, séparées par une virgule), FRONTEND_URL (le tableau de bord) et STOREFRONT_URL (le site) avec -e.

Pour donner vos propres clés au conteneur (paiements, e-mail, IA, R2, MCP), créez .env à partir de .env.example avec cp .env.example .env, remplissez-le, et ajoutez --env-file .env -e NODE_ENV=production à docker run :

Terminaldans ticketory-backend
docker run -p 8000:8000 -v ticketory-api-data:/data -e SEED_DEMO_DATA=true --env-file .env -e NODE_ENV=production ticketory-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, EXPORT_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.