# Installer l'application Mirakl Configurez l'application Miraki pour Stripe. Pour installer et exécuter l’application Mirakl, vous devez répondre aux exigences suivantes : - PHP 7.3+ - PostgreSQL - Un serveur Web, de préférence Nginx - Un certificat SSL ou *TLS* (TLS refers to the process of securely transmitting data between the client—the app or browser that your customer is using—and your server. This was originally performed using the SSL (Secure Sockets Layer) protocol) valide - Supervisé ou un responsable de processus équivalent - Crontab ou un planificateur de tâches équivalent ## Utiliser Docker Pour créer et lancer l’application, vous pouvez l’intégrer à un conteneur. Pour en savoir plus, consultez notre [exemple de Docker](https://github.com/stripe/stripe-mirakl-connector/tree/master/examples/docker). ## Utiliser Composer 1. Installez [Composer](https://getcomposer.org/download/). 1. Clonez ou téléchargez l’[application Mirakl](https://github.com/stripe/stripe-mirakl-connector.git) depuis GitHub. 1. Déplacez le contenu vers le répertoire de votre serveur Web (par exemple, `/var/www`). 1. Téléchargez les dépendances : ```bash composer install --prefer-dist --no-dev ``` 1. Configurez correctement le [fichier .env](https://docs.stripe.com/use-stripe-apps/mirakl/configuration.md). 1. Exécutez les migrations pour configurer la base de données. Si vous rencontrez des erreurs à ce stade, vérifiez la variable `DATABASE_URL` dans votre fichier .env. ```bash bin/console doctrine:migration:migrate --no-interaction ``` 1. Mettez à jour votre superviseur pour démarrer et redémarrer automatiquement les travailleurs. Un [exemple de configuration](https://github.com/stripe/stripe-mirakl-connector/blob/master/examples/docker/app/config/supervisord.conf) est disponible dans notre exemple Docker. Vous pouvez ignorer cette étape dans un environnement de développement et démarrer les travailleurs manuellement si nécessaire, par exemple : ```bash php bin/console messenger:consume process_transfers --time-limit=3600 --env=prod ``` 1. Mettez à jour votre planificateur de tâches pour exécuter les commandes périodiquement. Un [exemple de configuration](https://github.com/stripe/stripe-mirakl-connector/blob/master/examples/docker/app/config/crontab) est disponible dans notre exemple Docker. Vous pouvez ignorer cette étape dans un environnement de développement et démarrer les tâches manuellement si nécessaire, par exemple : ```bash php bin/console connector:dispatch:process-transfer -q 2>&1 ``` 1. Veillez à ce que votre serveur Web soit configuré pour utiliser le répertoire `public` en tant que document racine. ## Tester votre installation Ouvrez votre terminal et exécutez la commande suivante afin de vérifier que votre application fonctionne correctement : ```bash curl -X GET "https://app-url/api/mappings" \ -H "accept: application/json" \ -H "X-AUTH-TOKEN: $OPERATOR_PASSWORD" # Générés au cours de la configuration ``` Vous devez obtenir un code de réponse `200` ainsi qu’une charge utile nulle. ## Limiter le trafic entrant Sur votre serveur, *limitez tout le trafic entrant* vers le plugin, sauf pour les endpoints suivants : - `/api/public/onboarding/refresh` : Stripe redirige le marchand vers cette URL, sur laquelle il pourra obtenir un nouveau lien d’inscription si le premier a expiré. - `/api/public/webhook/operator` : Stripe notifie cet endpoint lorsqu’un paiement est mis à jour afin de le mapper à une commande Mirakl dans l’application. - `/api/public/webhook/sellers` : Stripe notifie cet endpoint lorsqu’un compte Stripe est mis à jour afin de synchroniser l’état du marchand dans l’application. Ces endpoints peuvent être exposés sans risque, car chacun d’entre eux dispose d’un mécanisme de protection interne. L’exposition des autres endpoints comporte des risques, sauf si ceux-ci sont protégés par un `OPERATOR_PASSWORD` fort.