Deploy using Docker Compose

Introduction

Actuellement, nous supportons l'utilisation de Docker Compose pour déployer l'application Syntho. Nous avons inclus un Docker Compose qui déploiera tous les conteneurs nécessaires à l'application Syntho. La page suivante présente les étapes à suivre pour déployer notre application à l'aide de Docker Compose.

Etapes du déploiement

  • Télécharger la dernière version de Docker Compose depuis notre dépôt Github sous [Releases] (https://github.com/syntho-ai/deployment-tools/releases). Le fichier à télécharger est docker-compose.tar.gz.

  • Utilisez docker login pour vous connecter au Syntho Container Registry, ou docker load pour charger des images à partir de fichiers. Voir la documentation Syntho sous Déployer Syntho -> Introduction -> Accéder aux images Docker

  • Extraire docker-compose.tar.gz en utilisant tar -xf docker-compose.tar.gz et ouvrir le répertoire extrait

  • Copiez example.env vers .env en utilisant par exemple la commande Linux cp example.env .env

  • Ajustez les variables suivantes dans .env pour une configuration minimale :

    • LICENSE_KEY : La clé de licence est fournie par Syntho.

    • ADMIN_USERNAME, ADMIN_EMAIL et ADMIN_PASSWORD : les informations d'identification pour le compte administrateur qui peut être utilisé une fois que l'application est configurée. L'email et le mot de passe seront nécessaires pour se connecter.

Le fichier .env contient la dernière balise image pour toutes les images, qui est une balise de roulement. Veuillez ajuster les balises d'image suivantes avec les balises fournies par l'équipe Syntho pour les rattacher à une certaine version :

  • RAY_IMAGE

  • CORE_IMAGE

  • BACKEND_IMAGE

  • FRONTEND_IMAGE

Pour accéder correctement à l'API Backend, le domaine doit être défini. Si l'application est accédée sur la même machine que celle qui la déploie, localhost devrait convenir pour ce domaine. Si vous utilisez une autre machine sur votre réseau, l'adresse IP ou le nom d'hôte doit être utilisé pour les variables suivantes :

  • FRONTEND_HOST : ceci devrait inclure le port également. Si le port 3000 est utilisé pour le frontend, et qu'il est accessible sur la même machine, la valeur sera localhost:3000. Si une autre machine sur le même réseau doit accéder au frontend, la valeur sera <IP de la machine déployée>:3000

  • FRONTEND_DOMAIN : sera soit localhost, soit l'IP de la machine qui exécute l'application Syntho.

Après l'ajustement de ces variables, le fichier docker compose devrait être prêt pour le déploiement. La documentation continuera à décrire les sections particulières à ajuster dans des cas particuliers, mais à ce stade, le fichier docker compose est prêt à être déployé. Docker Compose devrait être prêt à être déployé.

Informations complémentaires

La mise en place de plusieurs nœuds nécessite une configuration plus détaillée. Cette configuration est recommandée pour les environnements de production évolutifs. Les étapes et les configurations peuvent varier en fonction des exigences spécifiques du réseau et du nombre de nœuds concernés.

TLS

Si un certificat SSL doit être fourni, les variables d'environnement suivantes doivent être ajustées :

# Si TLS est utilisé, mettre le protocole à https et secured_cookies à True
FRONTEND_PROTOCOL=https
SECURED_COOKIES="True"

Par défaut, ces valeurs sont respectivement fixées à http et False.

API de base

Base de données

Les informations d'identification de la base de données que l'API de base et le Worker (core et core_worker et dans le fichier docker-compose) utilisent pour se connecter sont décrites dans les variables d'environnement suivantes :

CORE_DATABASE_HOST=<hôte de la base de données>
CORE_DATABASE_USER=<database-user>
CORE_DATABASE_PASSWORD=<mot de passe de la base de données>.
CORE_DATABASE_NAME=<nom de la base de données>

Par défaut, ces valeurs sont définies à la valeur de l'instance Postgres qui est déployée dans le cadre du fichier docker-compose. Si une autre base de données doit être utilisée, les informations d'identification peuvent être ajustées ici. Seules les bases de données Postgres sont supportées.

Redis

Les informations utilisées pour se connecter à l'instance Redis sont enregistrées dans les variables d'environnement suivantes :

CORE_CELERY_BROKER_URL=redis://<redis-host>:6379/0
CORE_CELERY_RESULT_BACKEND=redis://<redis-host>:6379/0
CORE_REDIS_HOST=redis
CORE_REDIS_PORT=6379

Variables d'environnement supplémentaires

D'autres variables importantes sont CORE_SECRET_KEY, qui est utilisée comme clé de cryptage. Cette clé peut être générée en utilisant la commande suivante en python :

# Si la cryptographie n'est pas installée, installez-la avec `pip install cryptography`.
python -c "from cryptography.fernet import Fernet ; print(Fernet.generate_key().decode())"

Si des problèmes avec le port de l'application surviennent, le port par défaut peut être modifié en utilisant la variable CORE_PORT dans le fichier .env.

CORE_PORT=8000

Backend

Base de données

Tout comme l'API de base, le backend devra se connecter à la base de données Postgres. Cette base de données est utilisée pour stocker les données de l'application. Par défaut, elle se connectera à

BACKEND_DB_HOST=<hôtes>
BACKEND_DB_NAME=<nom de la base de données>
BACKEND_DB_USER=<utilisateur de la base de données>
BACKEND_DB_PASSWORD=<mot de passe de la base de données>
BACKEND_DB_PORT=<database-port>

Redis

Pour l'instance Redis utilisée pour le backend, nous pouvons définir les variables suivantes. L'instance Redis est incluse dans le fichier docker-compose, mais si une instance Redis séparée est utilisée, les informations d'identification doivent être définies dans le fichier .env.

BACKEND_REDIS_HOST=redis # Nom d'hôte Redis auquel se connecter
BACKEND_REDIS_PORT=6379 # Port Redis auquel se connecter
BACKEND_REDIS_DB_INDEX=1 # Index de la base de données Redis à utiliser

Utilisateur Admin

Comme décrit précédemment dans la documentation, le nom d'utilisateur, l'adresse email et le mot de passe de l'utilisateur admin peuvent être ajustés. Les variables d'environnement suivantes peuvent être utilisées à cet effet :

ADMIN_USERNAME=admin
ADMIN_PASSWORD=motdepasse
ADMIN_EMAIL=admin@company.com

Variables d'environnement supplémentaires

Pour le backend, quelques variables d'environnement supplémentaires peuvent être définies. Nous pouvons changer le port qui est exposé pour le backend si un problème survient avec le mappage des ports. Pour changer le port, nous pouvons changer la valeur de BACKEND_PORT :

BACKEND_PORT=8000

Nous avons ensuite la clé secrète que le backend utilise pour l'encryptage. Nous pouvons donner à cette clé n'importe quelle valeur, à condition qu'il s'agisse d'une chaîne assez longue. Exemple :

BACKEND_SECRET_KEY="66n6ldql(b2g0jmop(gr)@x0tz!*^7(d1_$2#y&$t&3r$=cr%#"

Frontend

Le frontend est responsable de l'interface utilisateur. Le frontend devra se connecter au Backend pour cela. La variable la plus importante laissée au frontend est la suivante :

FRONTEND_PORT=3000

Cette variable définit le port du frontend, qui devra être exposé pour que l'utilisateur puisse accéder à l'application.

Last updated