Liste des variables d'environnement

 

Les variables d'environnement se divisent en 4 catégories détaillées ci-dessous :

  • Configuration du serveur

  • Configuration du système

  • Configuration de la base de données

  • Configuration du mode d'authentification

Configuration du serveur

Les variables indiquées avec une astérisque (*) sont obligatoires.

THEMIS_URL*

Il s'agit ici de l'adresse à partir de laquelle Themis sera accessible pour l'ensemble des utilisateurs. 

WEB_SOCKET_HOST *

Themis utilise une WebSocket pour certaines communications entre client et serveur. Cette variable indique l'adresse hôte du serveur qui héberge Themis. Cette variable est complétée par  WEB_SOCKET_PORT. La plupart du temps la valeur de cette variable sera identique à l'adresse du serveur.

WEB_SOCKET_PORT *

Themis utilise une WebSocket pour certaines communications entre client et serveur. Cette variable indique le port mappé avec le port 3000 utilisé par Themis pour cette WebSocket. Elle pourra prendre comme valeur 80 ou 443 dans un contexte de reverse proxy.

WEB_SOCKET_SECURED

Cette variable doit avoir comme valeur true dans le cas d'un serveur sécurisé avec HTTPS pour l'accès à Themis (WEB_SOCKET_HOST+ WEB_SOCKET_PORT)

Exemple de configuration si Themis est accessible via une adresse IP + port.

Si vous déployez Themis sur une machine dont l'adresse est 10.11.12.13, voici la configuration à adopter (extrait du fichier docker-compose.yml) :

 - themis
    environment:
     - THEMIS_URL=http://10.11.12.13:3001
     - WEB_SOCKET_PORT=3000
     - WEB_SERVER_HOST=10.11.12.13

Cette configuration suppose que vous avez mappé les ports 3000 et 3001 du conteneur Docker Themis aux ports 3000 et 3001 sur la machine hôte.

Exemple de configuration si Themis est accessible via un nom de domaine + port.

Si vous déployez Themis sur une machine dont l'adresse IP est toujours 10.11.12.13, mais que vous avez intégré dans un DNS une redirection de themis.mycompany.com vers cette adresse IP, voici la configuration à adopter :

 - themis
    environment:
     - THEMIS_URL=http://themis.mycompany.com:3001
     - WEB_SOCKET_PORT=3000
     - WEB_SERVER_HOST=themis.mycompany.com

Cette configuration suppose que vous avez mappé les ports 3000 et 3001 du conteneur Docker Themis aux ports 3000 et 3001 sur la machine hôte.

Exemple de configuration si vous déployez Themis sur une machine avec un proxy sécurisé

Vous souhaitez que Themis soit accessible à l'URL https://themis.mycompany.com. Supposons que vous utilisez Apache comme proxy, et que le conteneur Docker publie les ports 3000 et 3001.

Supposons qu'il existe un fichier /etc/apache/sites-available/themis.mycompany.com-le-ssl.conf avec la configuration suivante :

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName themis.mycompany.com ServerAdmin contact@mycompany.com ProxyPass / http://localhost:3001/ ProxyPassReverse / http://localhost:3001/ ProxyPreserveHost On
SSLCertificateFile /etc/letsencrypt/live/mycompany.promyze.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/mycompany.promyze.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>

Dans cette configuration, il est supposé que vous ayez exécuté Themis en publiant le port 3001. Apache redirigera ainsi vers l'adresse locale http://localhost:3001, soit l'adresse de Themis sur la serveur. Cette configuration est un exemple, vous pouvez très bien avoir une autre configuration.

Pour le bon fonctionnement de la WebSocket, il est également nécéssaire de créer une configuration Apache pour qu'elle soit accessible à l'adresse themis-ws.mycompany.com (par exemple). Pour cela, le fichier /etc/apache/sites-available/themis-ws.mycompany.com-le-ssl.conf avec la configuration suivante :

<IfModule mod_ssl.c>
<VirtualHost *:443>
	Header set Access-Control-Allow-Origin "https://themis.mycompany.com"
        ServerName themis-ws.mycompany.com
        ServerAdmin contact@mycompany.com

        RewriteEngine On
        RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
        RewriteCond %{QUERY_STRING} transport=websocket    [NC]
        RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]

        ProxyPass / http://localhost:3000/
        ProxyPassReverse / http://localhost:3000/
        ProxyPreserveHost On

SSLCertificateFile /etc/letsencrypt/live/mycompany.promyze.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mycompany.promyze.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Dans cette configuration, il est supposé que vous avez exécuté Themis en publiant le port 3000. Notez la ligne "Header set Access-Control..." nécessaire également. Le résultat en termes de configuration Themis est le suivant (extrait du fichier docker-compose.yml ) :

 - themis
    environment:
     - THEMIS_URL=https://themis.mycompany.com
     - WEB_SOCKET_PORT=443
     - WEB_SOCKET_SECURED=true
     - WEB_SERVER_HOST=themis-ws.mycompany.com

Comme l'accès à Themis est sécurisé avec HTTPS, il est nécessaire de placer à true la variable d'environnement WEB_SOCKET_SECURED. On indiquera également à 443 la valeur de WEB_SOCKET_PORT, qui pourra être placé à 80 dans le cas d'un accès HTTP classique.

Configuration du système

JVM_THREADS

Précise le nombre de threads à utiliser par la JVM du composant Engine. Cette variable est pertinente si vous avez plusieurs coeurs logiques sur l'infrastructure qui héberge Themis. Les opérations parallélisées sont les synchronisations des sources permettant la génération des actions.

ENABLE_ERROR_NOTIFICATIONS

ProMyze s'appuie sur la plateforme Bugsnag pour centraliser les éventuels rapports d'erreur interceptés pendant l'exécution de Themis. Notre objectif est d'identifier au plus tôt des erreurs et de raccourcir les cycles de livraisons d'anomalies.

Toutefois, si votre machine n'est pas ouverte au réseau externe, ou si vous ne souhaitez pas envoyer à ProMyze les logs d'erreur, vous pouvez tout simplement désactiver cet envoi en plaçant la variable d'environnement à false. Exemple de mise à jour du fichier docker-compose.yml

 - themis
    environment:
     - ENABLE_ERROR_NOTIFICATIONS=false

Notez que nous attachons une attention particulière à ne pas transmettre d'informations propres à votre contexte (URL de sources, ...)

JVM_MAX_MEMORY

Permet d'augmenter la taille de la mémoire allouée la JVM du composant Engine. Cette valeur permettra de spécifier le paramètre -Xmx utilisée au démarrage du composant Engine. 

La valeur par défaut est 1g. Exemples de valeurs possibles : 256M, 512M, 1g, 2g.

 

Base de données MongoDB

Plusieurs variables d'environnements sont utiles lorsque vous souhaitez votre propre serveur MongoDB. La liste des variables à paramétrer est disponible ci-dessous, et vous trouverez les instructions plus détaillées dans cet article.

MONGO_DB
MONGO_USER
MONGO_PASSWORD
MONGO_AUTHENTICATION_DB
MONGO_ADDR
MONGO_PORT
MONGO_AUTHENTICATION_MECHANISM
MONGO_USE_CREDENTIALS

Configuration du mode d'authentification

Un article dédié aux différents mode d'authentifications supportés par Themis (Azure Active Directory, Active Directory, SSO, ...) est disponible dans un article dédié.

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 1 sur 1

Commentaires

0 commentaire

Veuillez vous connecter pour laisser un commentaire.