Comment déployer mon Hexabot en utilisant NGINX ?
Introduction
Cette documentation décrit deux méthodes pour déployer votre projet Hexabot en environnement de production en utilisant NGINX et Let's Encrypt pour le certificat SSL :
Prérequis
Avant de commencer, assurez-vous d'avoir les éléments suivants :
Étape 1 : Exigences du serveur
Un serveur exécutant une distribution Linux avec SSH activé.
Ces instructions sont basées sur Ubuntu, adaptez-les si nécessaire pour d'autres distributions.
Étape 2 : Installer les logiciels requis
Étape 3 : Configurer le projet Hexabot
Installez l'interface de ligne de commande Hexabot :
Créer un nouveau projet :
Ou clonez un projet existant :
Configuration de l'environnement :
Pour configurer les variables d'environnement, utilisez la commande suivante :
Cette commande copiera le .env.example fichier vers .env dans le ./docker répertoire si le fichier n'existe pas déjà
Mettez à jour votre
.envfichier pour la production, en particulier les éléments suivants :
NODE_ENV
production
Mode d'environnement
APP_DOMAIN
mychatbot.ai
Nom de domaine de l'application
API_ORIGIN
https://mychatbot.ai/api
Le point de terminaison API sera utilisé pour communiquer avec le backend
FRONTEND_BASE_URL
https://mychatbot.ai
Le point de terminaison API sera utilisé pour communiquer avec le frontend
FRONTEND_ORIGIN
http://mychatbot.ai, https://mychatbot.ai
Les origines qui seront acceptées par l'API. Une liste d'origines autorisées pour les requêtes cross-origin
NEXT_PUBLIC_API_ORIGIN
https://mychatbot.ai/api
Point de terminaison API Next.js
JWT_SECRET
346998ba1f171f107433
Secret pour chiffrer le token JWT
SESSION_SECRET
27feaf70d2c78892bf49
Secret pour chiffrer le token de session
HTTPS_ENABLED
true
Paramètre Https
INVITATION_JWT_SECRET
51c8ea00d82eb10ee226
Secret pour chiffrer le token d'invitation
PASSWORD_RESET_JWT_SECRET
5ee97916017176d1ca6c
Secret pour chiffrer le token de réinitialisation de mot de passe
CONFIRM_ACCOUNT_SECRET
80f74dce70e5385bf80b
Secret pour chiffrer le token de confirmation de compte
MONGO_USER
my_mongo_username
Nom d'utilisateur Mongodb
MONGO_PASSWORD
my_mongo_password
Mot de passe Mongodb
AUTH_TOKEN
c97643c1c1e5e9dc5745
Secret pour chiffrer le token NLU
Notez que vous pouvez également ajuster les durées d'expiration par défaut des tokens si nécessaire.
Pour pouvoir envoyer des e-mails, vous devrez configurer le SMTP. Apprenez à configurer les variables d'environnement SMTP en suivant notre guide de configuration SMTP.
Méthode 1 : Utiliser Nginx comme service et Certbot pour le SSL
Étape 1 : Exécutez votre projet Hexabot en mode production :
Si vous partez d'une installation fraîche et n'utilisez pas une sauvegarde de base de données, il est recommandé d'exécuter Hexabot en mode développement la première fois. Cela permet le remplissage automatique des données essentielles dans la base de données.
Notez que cette commande démarrera tous les services (api, frontend, mongodb, ...) en tant que conteneurs Docker ainsi que d'autres services optionnels pouvant être fournis.
Étape 2 : Installer Nginx
Le déploiement d'un projet Hexabot en production nécessite de configurer un serveur Web HTTP comme Apache2, HAProxy ou Nginx pour sécuriser les communications via SSL, établir l'accès par nom de domaine, et de nombreuses autres fonctionnalités telles que la limitation de débit par exemple pour aider à se protéger contre les abus et prévenir la surcharge du serveur. Dans ce guide, nous vous accompagnerons à travers une configuration type de serveur Web HTTP en utilisant Nginx et Certbot pour la génération du certificat SSL.
Mettre à jour le système :
Installer Nginx :
Vérifier l'installation de Nginx :
Démarrer Nginx :
Vérifier le statut de Nginx :
Étape 3 : Configurer Nginx
Remplacez la configuration du serveur Nginx par la suivante : /etc/nginx/sites-available/default.
Étape 4 : Générer un certificat SSL avec Certbot
Installer Certbot :
Obtenir un certificat SSL :
(Optionnel) Automatiser le renouvellement SSL :
Ajoutez la ligne suivante :
Étape 5 : Recharger Nginx avec la nouvelle configuration
Tester la syntaxe de la configuration :
Si vous obtenez une erreur, assurez-vous qu'il n'y a pas d'erreur de syntaxe dans /etc/nginx/sites-available/default
Recharger Nginx avec la nouvelle configuration :
Accédez à votre domaine en HTTPS (par ex. https://mychatbot.ai) pour vérifier si vous avez déployé avec succès votre projet Hexabot en utilisant Nginx ! 🚀🎉. N'hésitez pas à demander de l'aide à la communauté sur notre canal Discord.
Méthode 2 : Utiliser des services Nginx et Certbot conteneurisés (Docker) :
Ce guide vous aidera à configurer Nginx avec SSL en utilisant Docker et Certbot pour votre projet Hexabot.
Étape 1 : Copier les fichiers requis pour Nginx et Certbot conteneurisés
Pour utiliser la version conteneurisée de Nginx et Certbot :
Téléchargez les fichiers suivants depuis le dépôt GitHub de Hexabot :
docker/nginx
docker/docker-compose.nginx.yml
docker/docker-compose.nginx.prod.yml
docker/init-letsencrypt.sh
Copiez ces fichiers sous le
my-chatbot/dockerrépertoire de votre projet.
Étape 2 : Initialiser le SSL avec Certbot
Naviguez vers le
my-chatbot/dockerrépertoire :
Optionnel : Si vous souhaitez tester votre configuration sans atteindre les limites de requêtes pour les certificats SSL, définissez la variable staging à 1 dans le
init-letsencrypt.shscript avant de l'exécuter :
Après avoir confirmé la configuration, remettez la variable staging à 0 pour demander des certificats en production.
Exécutez le
init-letsencrypt.shscript :
Assurez-vous de définir la variable APP_DOMAIN à votre nom de domaine d'application dans le.env fichier. Il est également recommandé d'utiliser une adresse e-mail valide, pensez donc à définir la variable SSL_EMAIL également.
Vous pouvez tester la configuration DNS en exécutant l'une de ces commandes :
Ou
Rendez le init-letsencrypt.sh script exécutable en lui accordant les permissions d'exécution.
Vous pourrez maintenant exécuter le script
Étape 3 : Vérifier le déploiement
Une fois le script terminé, exécutez docker ps vérifiez que vos conteneurs Docker Nginx et Certbot sont démarrés et en cours d'exécution. Accédez à votre instance Hexabot via le domaine que vous avez spécifié (par ex., https://mychatbot.ai) pour vérifier si des certificats SSL ont été générés et sont correctement installés.
Mis à jour
Ce contenu vous a-t-il été utile ?