.. _ref-config-container: ############################ Configuration des containers ############################ Lancement d'une image ===================== Les images OCI sont stockées sur le registre ``code.waarp.fr``. Le Dockerfile utilisé pour générer les images est consultable dans `le dépôt de l'application `__. Le lancement peut se faire avec une des commandes suivantes : .. code-block:: sh # avec docker docker run code.waarp.fr:5000/apps/gateway/gateway:latest # avec podman podman run code.waarp.fr:5000/apps/gateway/gateway:latest Ports exposés ============= L'image ``gateway`` expose seulement le port ``8080``, c'est-à-dire celui de l'interface REST qui permet d'administrer l'instance de Waarp Gateway, Les ports des serveurs protocolaires de Gateway étant :any:`définis par paramétrage `, il n'est pas possible de les exposer dans l'image. N'oubliez pas de les exposer au lancement du container. Volumes déclarés ================ L'image ``gateway`` déclare deux volumes : * :file:`/app/etc`, qui contient la configuration de l'instance ; * :file:`/app/data`, qui contient toutes les données (fichiers reçus, fichiers à envoyer, base de données sqlite, etc. .. note:: Tous les fichiers utilisés par Gateway sont modifiables par variable d'environnement au lancement du container. Variables d'environnement ========================= Configuration de :program:`waarp-gatewayd` ------------------------------------------ L'image ``gateway`` utilise plusieurs variables d'environnement pour configurer l'instance exécutée dans le container. Ces variables vont être utilisées pour réécrire le fichier de configuration utilisé par :program:`waarp-gatewayd`. .. envvar:: WAARP_GATEWAY_CONFIG Permet de spécifier le chemin vers le fichier de configuration à utiliser. Cette option permet de réutiliser un fichier de configuration ou de fournir à :program:`waarp-gatewayd` un fichier pré-paramétré. .. warning:: Le fichier de configuration spécifié va être réécrit avec les les variables d'environnement ci-dessous si elles sont fournies .. envvar:: WAARP_GATEWAY_NODE_ID Le nom unique de l'instance de :program:`waarp-gatewayd` lors d'un fonctionnement en grappe. Correspond à l'argument :option:`waarp-gatewayd server --instance` .. envvar:: WAARP_GATEWAY_NAME Le nom de cette instance de :program:`waarp-gatewayd`. Correspond à l'option :confval:`GatewayName` du fichier de configuration. .. envvar:: WAARP_GATEWAY_HOME Définit la racine de :program:`waarp-gatewayd`. Correspond à l'option :confval:`GatewayHome` du fichier de configuration. .. envvar:: WAARP_GATEWAY_IN_DIR Définit le dossier par défaut dans lequel sont déposés les fichiers reçus par :program:`waarp-gatewayd`. Correspond à l'option :confval:`DefaultInDirectory` du fichier de configuration. .. envvar:: WAARP_GATEWAY_OUT_DIR Définit le dossier par défaut dans lequel sont lus les fichiers envoyés par :program:`waarp-gatewayd`. Correspond à l'option :confval:`DefaultOutDirectory` du fichier de configuration. .. envvar:: WAARP_GATEWAY_TMP_DIR Définit le dossier par défaut dans lequel sont déposés les fichiers en cours de réception par :program:`waarp-gatewayd`. Correspond à l'option :confval:`DefaultTmpDirectory` du fichier de configuration. .. envvar:: WAARP_GATEWAY_LOG_LEVEL Définit le niveau de verbosité des logs. Les valeurs possibles sont : ``DEBUG``, ``INFO``, ``WARNING``, ``ERROR`` et ``CRITICAL``. Correspond à l'option :confval:`Level` du fichier de configuration. .. envvar:: WAARP_GATEWAY_LOG_TO Le chemin du fichier d'écriture des logs. Les valeurs spéciales ``stdout`` et ``syslog`` permettent de rediriger les logs respectivement vers la sortie standard et vers un démon syslog. Correspond à l'option :confval:`LogTo` du fichier de configuration. .. envvar:: WAARP_GATEWAY_SYSLOG_FACILITY Quand :any:`LogTo` est défini à ``syslog``, cette option permet de définir l'origine (*facility*) du message. Correspond à l'option :confval:`SyslogFacility` du fichier de configuration. .. envvar:: WAARP_GATEWAY_ADMIN_ADDRESS L'adresse de l'interface sur laquelle le serveur HTTP va écouter les requêtes faites à l'interface d'administration. Correspond à l'option :confval:`Host` du fichier de configuration. .. envvar:: WAARP_GATEWAY_ADMIN_PORT Le port sur lequel le serveur HTTP doit écouter. La valeur '0' est entrée, un port libre sera arbitrairement choisit. Correspond à l'option :confval:`Port` du fichier de configuration. .. envvar:: WAARP_GATEWAY_ADMIN_TLS_KEY Le chemin de la clé TLS pour le serveur HTTP. Si ce paramètre n'est pas défini, le serveur utilisera du HTTP en clair à la place de HTTPS. Correspond à l'option :confval:`SyslogFacility` du fichier de configuration. .. note:: La clé est requise pour une utilisation avec Waarp Manager. Si aucune clé n'est fournie avec cette variable d'environnement, une clef sera générée au lancement du container. .. envvar:: WAARP_GATEWAY_ADMIN_TLS_CERT Le chemin du certificat TLS pour le serveur HTTP. Si ce paramètre n'est pas défini, le serveur utilisera du HTTP en clair à la place de HTTPS. Correspond à l'option :confval:`SyslogFacility` du fichier de configuration. .. note:: Le certificat est requis pour une utilisation avec Waarp Manager. Si aucun certificat n'est fourni avec cette variable d'environnement, un certificat auto-signé sera généré au lancement du container. .. envvar:: WAARP_GATEWAY_DB_TYPE Le nom (en minuscules) du type de système de gestion de base de données utilisé. Les valeurs autorisées sont: ``postgresql``, ``mysql``, ``sqlite``. Correspond à l'option :confval:`Type` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_ADDRESS L'adresse complète (URL + Port) de la base de données. Le port par défaut dépend du type de base de données utilisé (``5432`` pour PostgreSQL, ``3306`` pour MySQL, aucun pour SQLite). Correspond à l'option :confval:`Address` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_NAME Le nom de la base de donnée utilisée. Correspond à l'option :confval:`Name` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_USER Le nom d'utilisateur du SGBD utilisé par la gateway pour faire des requêtes. Correspond à l'option :confval:`User` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_PASSWORD Le mot de passe de l'utilisateur du SGBD. Correspond à l'option :confval:`Password` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_TLS_KEY La clé du certificat TLS de la base de données. Correspond à l'option :confval:`TLSKey` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_TLS_CERT Le certificat TLS de la base de données. Par défaut, les requêtes n'utilisent pas TLS. Correspond à l'option :confval:`TLSCert` du fichier de configuration. .. envvar:: WAARP_GATEWAY_DB_AES_PASSPHRASE Le chemin vers le fichier qui contient la clef AES utilisée pour chiffrer les mots de passes des comptes enregistrés dans la base de données. Correspond à l'option :confval:`AESPassphrase` du fichier de configuration. .. envvar:: WAARP_GATEWAY_MAX_IN Le nombre maximum autorisé de transferts entrants simultanés. Illimité par défaut. Correspond à l'option :confval:`MaxTransfersIn` du fichier de configuration. .. envvar:: WAARP_GATEWAY_MAX_OUT Le nombre maximum autorisé de transferts sortants simultanés. Illimité par défaut. Correspond à l'option :confval:`MaxTransfersOut` du fichier de configuration. Synchronisation depuis manager ------------------------------ .. envvar:: WAARP_GATEWAY_MANAGER_URL URL à utiliser pour ce connecter à Waarp Manager. Si cette variable d'environnement est renseignée, la configuration de ``Gateway`` (partenaires, règles de transfert, etc...) est téléchargée depuis Manager au lancement du container. Si l'instance de Gateway n'est pas déclarée dans Manager, Elle sera automatiquement déclarée et un flux de configuration est créé. L'URL doit contenir les identifiants d'un utilisateur ayant le droit de déployer la configuration, et de créer des partenaires et des flux si l'instance de Gateway n'est pas déclarée préalablement dans Manager :: https://USER:PASSWORD@manager.tld:8080 .. envvar:: WAARP_GATEWAY_MANAGER_SITE *Cette variable d'environnement est requise si l'instance de Gateway n'est pas déclarée préalablement dans Manager, et elle est ignorée sinon.* Défini le site dans lequel le partenaire doit être créé. .. envvar:: WAARP_GATEWAY_MANAGER_IP *Cette variable d'environnement est requise si l'instance de Gateway n'est pas déclarée préalablement dans Manager, et elle est ignorée sinon.* Défini l'adresse ou le domaine du partenaire créé dans Manager. .. envvar:: WAARP_GATEWAY_MANAGER_PASSWORD *Cette variable d'environnement est requise si l'instance de Gateway n'est pas déclarée préalablement dans Manager, et elle est ignorée sinon.* Défini le mot de passe du partenaire créé dans Manager. S'il n'est pas fourni avec cette variable d'environnement, un mot de passe aléatoire est généré. .. envvar:: WAARP_GATEWAY_MANAGER_R66_PORT *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Défini le port de communication R66 pour la Gateway définie dans Manager. Par défaut: ``6666``. .. envvar:: WAARP_GATEWAY_MANAGER_R66TLS_PORT *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Défini le port de communication R66 TLS pour la Gateway définie dans Manager. Par défaut: ``6667``. .. .. envvar:: WAARP_GATEWAY_MANAGER_SFTP_PORT *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Défini le port de communication SFTP pour la Gateway définie dans Manager. Par défaut: ``6622``. .. envvar:: WAARP_GATEWAY_MANAGER_REST_USERNAME *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Défini le nom d'utilisateur que Manager doit utiliser pour se connecter en REST à Gateway lors de la création du partenaire. Par défaut : ``admin``. .. envvar:: WAARP_GATEWAY_MANAGER_REST_PASSWORD *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Défini le mot de passe que Manager doit utiliser pour se connecter en REST à Gateway lors de la création du partenaire. Par défaut : ``admin``. .. .. envvar:: WAARP_GATEWAY_MANAGER_SSH_PUBLIC_KEY_PATH *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Définit le chemin vers la clé publique pour les communications SFTP de la Gateway défini dans Manager. Si aucun chemin n'est fourni avec cette variable d'environnement, une clé sera générée lors du démarrage du container. .. .. envvar:: WAARP_GATEWAY_MANAGER_SSH_PRIVATE_KEY_PATH *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Définit le chemin vers la clé privée pour les communications SFTP de la Gateway défini dans Manager. Si aucun chemin n'est fourni avec cette variable d'environnement, une clé sera générée lors du démarrage du container. .. envvar:: WAARP_GATEWAY_MANAGER_R66_TLS_CERT_PATH *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Définit le chemin vers le certificat pour les communications R66 TLS de la Gateway défini dans Manager. Si aucun chemin n'est fourni avec cette variable d'environnement, un certificat sera généré lors du démarrage du container. .. envvar:: WAARP_GATEWAY_MANAGER_R66_TLS_KEY_PATH *Cette variable d'environnement est ignorée si l'instance de Gateway est déjà déclarée dans Manager.* Définit le chemin vers a clef privée pour les communications R66 TLS de la Gateway défini dans Manager. Si aucun chemin n'est fourni avec cette variable d'environnement, un certificat sera généré lors du démarrage du container. Séquence de démarrage ===================== Lors du lancement du container, plusieurs vérifications et opérations de configurations sont réalisées avant le lancement de Waarp Gateway. Voici le processus suivi lors du démarrage : .. uml:: start if (Fichier de configuration existe) then (oui) :Lecture du fichier de configuration; else (non) :Configuration par défaut; endif :Mise à jour de la configuration à partir de l'environnement; :Écriture du fichier de configuration; if (Utilisation de Manager) then (oui) if (Certificats présents) then (oui) else (non) :Génération de certificats auto-signés; endif if (Gateway est déclarée dans Manager) then (oui) :Téléchargement de la configuration depuis Manager; :Import de la configuration dans Gatewayd; else (non) endif else (non) endif :Lancement de Gatewayd; if (Gateway est déclarée dans Manager) then (oui) else (non) :Vérification des variables d'environnement requises pour l'enregistrement du partenaire; :Enregistrement dans Manager; :Création du flux de configuration; :Téléchargement de la configuration depuis Manager; :Import de la configuration dans Gatewayd; :Redémarrage de Gatewayd; endif stop