Installation sur Linux - v4
- La version 4.0 est obsolète.
- La version 4.1 était sortie avec son lot de nouveauté.
- La version 4.2 permettait de configurer une authentification OpenID Connect ainsi que de sauvegarder et de restaurer (l'intégralité des sites ou un seul site) sans interactivité avec l'administrateur.
- La version 4.3 apporte des améliorations en termes de sécurité et d'optimisations. La possibilité de réinitialiser un site a été ajoutée. C'est cette dernière version qu'il faut installer si vous ne disposez pas de versions antérieures d'e-comBox.
Préalables
Les scripts utilisés sont disponibles sur le gitlab de la Forge des communs numériques : https://forge.apps.education.fr/e-combox/e-comBox_scriptsLinux.
- Ubuntu (à partir la version 18.04) ;
- Debian 9 ;
- Debian 10 ;
- Debian 11
- Debian 12 (actuellement stable).
Vous pouvez installer une ou plusieurs instances de l'e-comBox derrière un Reverse Proxy externe. Pour configurer ce dernier, consultez le readme.
Préalable, en cas de proxy pour curl et git |
---|
Définition des variables d'environnement nécessaires à l'exécution de commandes curl via un proxy :
|
À noter également que si l'installation de Docker ne le fait pas le script de configuration crée le dossier "$USER/.docker" et le fichier /$USER/.docker/config.json".
- le dossier d'installation /opt/e-comBox devient /opt/e-combox - le dossier /opt/ecomBox/e-comBox_portainer devient /opt/ecombox/e-combox_portainer - le dossier /opt/ecomBox/e-comBox_reverseproxy devient /opt/ecombox/e-combox_reverseproxy...
Installation de la version 4.3
Principe de fonctionnement
Dans la nouvelle version, l'installation peut se réaliser directement avec le script configure_application.sh. Il s'agit d'une installation automatique. Le script installe l'e-comBox à partir du fichier /opt/e-combox/param.conf (qui a été enrichi de nouveaux paramètres - voir ici) sans interaction avec l'utilisateur.
Le script configure_application.sh peut être exécuté :
- en mettant en option sur la ligne de commande :
- un fichier contenant les paramètres que l'on veut ajouter et/ou modifier,
- directement les différents paramètres (comme le mot de passe de Portainer) ;
- sans option sur la ligne de commande si les valeurs des paramètres du fichier param.conf conviennent.
Deux cas de figure :
- Il s'agit d'une nouvelle installation, le fichier param.conf est téléchargée et est automatiquement rempli avec les options passées en ligne de commande.
- Vous avez déjà un fichier param.conf dans le dossier d'installation : la dernière version de ce fichier est récupérée sur la Forge. Les paramètres sont automatiquement alimentés avec les valeurs de l'ancien param.conf et les options éventuellement passées en ligne de commande.
Si vous ne passez pas par un reverse-proxy externe et que vous n'avez pas de certificat, il sera créé un certificat auto-signé mais il est aussi possible d'utiliser le script manage_certificat.sh pour générer un certificat Let's Encrypt pour votre domaine".
Installation de l'e-comBox 4.3
À partir de la version 4.1, il suffit de télécharger et d'exécuter le script configure_application.sh. Ce dernier installera Docker et Docker Compose s'ils sont inexistants sur le serveur.
Une documentation sur la configuration d'un reverse-proxy externe (utile en cas de plusieurs instances derrière un même nom de domaine) figure sur gitlab : https://forge.apps.education.fr/e-combox/e-combox_scriptslinux.
1. Téléchargement du script configure_application.sh
Le téléchargement du script peut se faire à partir de la commande :
wget https://forge.apps.education.fr/e-combox/e-comBox_scriptsLinux/raw/4.3/configure_application.sh --output-document configure_application.sh
Pour vous simplifier la tache vous allez peut-être avoir besoin de télécharger également le fichier param.conf (voir exemple 4) qu'i suffira de compléter avec les principaux paramètres :
wget https://forge.apps.education.fr/e-combox/e-comBox_scriptsLinux/raw/4.3/param.conf --output-document param.conf
2. Exécution du script configure_application.sh
Usage: bash configure_application.sh [-f "valeur"] [-i "valeur"] [-d "valeur"] [-r "valeur"] [-c "valeur"] [-p "valeur"] [s | b] [-h] -f Chemin vers le fichier de paramètre [-f "/chemin/nom_fichier"] -i Adresse IP privée ou nom de domaine correspondant à une adresse IP privée [-i "@IP_PRIVEE" | -i "nom_domaine"] -d Adresse IP publique ou nom de domaine correspondant à une adresse IP publique [-d @IP_PUBLIQUE | -d nom_domaine]. Pour supprimer une adresse IP publique ou un domaine existant -d "" -r Passage par un Reverse-Proxy externe ou non [-r "O" | -r "N"] -c Chemin en cas de Reverse-Proxy externe [-c "chemin"]. Pour supprimer un chemin existant -c "" -p Mot de passe de Portainer [-p "mot_de_passe"] Les caractères suivants " $ ` \ & | ! [space] ne peuvent pas être utilisés en ligne de commande -s Met la variable de suppression des images à "true" le temps d'exécution du script [-s] -b Met la variable de suppression des images à "false" le temps d'exécution du script [-n] -h Détail des options
Il existe plusieurs possibilités d'exécution du script, ci-dessous quelques exemples.
Exemple 1 :
bash configure_application.sh -i "172.31.40.109" -d "ecb.nom.domaine" -c "rne" -r "O" -p "mdp_portainer"
L'adresse IP privée du serveur sur lequel l'instance de l'e-comBox est installée est "172.31.40.109".
Le domaine est "ecb.nom.domaine" et l'interface de l'e-comBox sera accessible via un Reverse Proxy externe. En l'espèce https://ecb.nom.domaine/rne/app.
Le mot de passe de Portainer est "mdp_portainer". Ce mot de passe doit obligatoirement être précisé en cas d'installation ou de réinitialisation de l'instance. Sinon il n'est pas utile de le préciser (sauf si vous l'avez modifié sur Portainer).
Exemple 2 :
bash configure_application.sh -i "172.31.40.111" -p "mdp_portainer"
L'adresse IP privée du serveur sur lequel l'instance de l'e-comBox est installée est "172.31.40.111".
L'interface de l'e-comBox sera accessible uniquement à partir de l'adresse IP privée sur le port 8800 défini par défaut dans le fichier param.conf. En l'espèce https://172.31.40.111:8800/app.
Le mot de passe de Portainer est "mdp_portainer". Ce mot de passe doit obligatoirement être précisé en cas d'installation ou de réinitialisation de l'instance. Sinon il n'est pas utile de le préciser (sauf si vous l'avez modifié sur Portainer).
Exemple 3 :
bash configure_application.sh -i "172.31.40.121" -d "ecb.nom.domaine" -p "mdp_portainer"
L'adresse IP privée du serveur sur lequel l'instance de l'e-comBox est installée est "172.31.40.121".
L'interface de l'e-comBox sera accessible à distance sur le port 8800 défini par défaut dans le fichier param.conf mais sans passage par un reverse-proxy externe. En l'espèce https://ecb.nom.domaine:8800/app.
Le mot de passe de Portainer est "mdp_portainer". Ce mot de passe doit obligatoirement être précisé en cas d'installation ou de réinitialisation de l'instance. Sinon il n'est pas utile de le préciser (sauf si vous l'avez modifié sur Portainer).
Exemple 4 :
bash configure_application.sh -f "chemin_vers_fichier"
Exemple de fichier :
ADRESSE_IP_PRIVEE="172.31.40.109" DOMAINE="ecb.nom.domaine" RP_EXT="O" CHEMIN="demo" MDP_PORTAINER="mdp_portainer" DOSSIER_MDP_KEY="/etc/ssl/certs/ecombox" DOSSIER_MDP_CHIFFRE="/etc/ssl/certs/ecombox"
L'adresse IP privée du serveur sur lequel l'instance de l'e-comBox est installée est "172.31.40.109".
Le domaine est "ecb.nom.domaine" et l'interface de l'e-comBox sera accessible via un Reverse Proxy externe. En l'espèce https://ecb.nom.domaine/demo/app.
Le mot de passe de Portainer est "mdp_portainer". Ce mot de passe doit obligatoirement être précisé en cas d'installation ou de réinitialisation de l'instance. Sinon il n'est pas utile de le préciser (sauf si vous l'avez modifié sur Portainer).
Exemple 5 :
bash configure_application.sh -f "chemin_vers_fichier"
Exemple de fichier :
ADRESSE_IP_PRIVEE="172.31.40.122" DOMAINE="ecb.nom.domaine" RP_EXT="N" CHEMIN="" PORT_RP="443"
L'adresse IP privée du serveur sur lequel l'instance de l'e-comBox est installée est "172.31.40.122".
le port du Reverse Proxy interne a été modifié pour utiliser le port par défaut du HTTPS. Ainsi, il n'est plus nécessaire de préciser le port dans l'URL même si l'on ne passe pas par un Revers Proxy externe. L'interface de l'e-comBox sera accessible via l'URL https://ecb.nom.domaine/app.
Le mot de passe de Portainer est "mdp_portainer". Ce mot de passe doit obligatoirement être précisé en cas d'installation ou de réinitialisation de l'instance. Sinon il n'est pas utile de le préciser (sauf si vous l'avez modifié sur Portainer).
Exemple 6 :
bash configure_application.sh
Dans ce cas, le script s'appuie entièrement sur les valeurs des paramètres figurant dans /opt/e-combox/param.conf qu'il faut donc au préalable créer.
L'accès à l'interface de l'e-comBox
L'URL d'accès dépend des informations fournies dans /opt/e-combox/param.conf.
Exemple 1 :
ADRESSE_IP_PRIVEE="172.31.40.109" DOMAINE="ecb.nom.domaine" RP_EXT="O" CHEMIN="rne" PORT_RP="8800"
L'URL d'accès à l'interface est https://ecb.nom.domaine/rne/app/
Note : ecb.nom.domaine peut être remplacé par une adresse IP publique.
Exemple 2 :
ADRESSE_IP_PRIVEE="172.31.40.111" DOMAINE="" RP_EXT="N" CHEMIN="" PORT_RP="8800"
L'URL d'accès à l'interface est https://172.31.40.111:8800/app/
Note : L'adresse IP privée peut être remplacée par un nom de domaine en capacité d'être résolu par un serveur DNS.
Exemple 3 :
ADRESSE_IP_PRIVEE="172.31.40.121" DOMAINE="ecb.nom.domaine" RP_EXT="N" CHEMIN="" PORT_RP="8800"
L'URL d'accès à l'interface est https://ecb.nom.domaine:8800/app/
Note : ecb.nom.domaine peut être remplacé par une adresse IP publique.
Exemple 4 :
ADRESSE_IP_PRIVEE="172.31.40.109" DOMAINE="ecb.nom.domaine" RP_EXT="O" CHEMIN="rne" MDP_PORTAINER="mdp_portainer" DOSSIER_MDP_KEY="/etc/ssl/certs/ecombox" DOSSIER_MDP_CHIFFRE="/etc/ssl/certs/ecombox"
L'URL d'accès à l'interface est https://ecb.nom.domaine:8800/app/
Exemple 5 :
ADRESSE_IP_PRIVEE="172.31.40.122" DOMAINE="ecb.nom.domaine" RP_EXT="N" CHEMIN="" PORT_RP="443"
L'URL d'accès à l'interface est https://ecb.nom.domaine/app/
Le nouveau fichier param.conf (dans sa version 4.3)
#!/bin/bash # Définition des paramètres utiles à l'application. # Version du fichier paramètre (ne pas changer la valeur). VERSION_PARAM="4.3.0" # Validation (ou non) de la licence. # Si cette variable n'a pas la valeur "true", l'application ne pourra pas être installée. # La licence est consultable ici : https://forge.aeif.fr/e-combox/e-combox_scriptslinux/-/raw/v4/LICENCE. # Les conditions plus générales de la licence CeCILL sont définies sur le site : http://www.cecill.info. VALIDATION_LICENCE="true" # Mot de passe pour la connexion en admin à e-comBox et Portainer. # Le mot de passe doit contenir au moins de 12 caractères sans espace. # Le mot de passe ne doit pas contenir les caractères spéciaux suivants : \ " ` $ # Il ne peut pas être égal à "portnairAdmin" qui est connu de tous # Le système met le mot de passe à jour avec celui saisi si les deux conditions suivantes sont réunies # 1 - À l'installation ou à la réinitialisation de l'application # 2 - Si le mot de passe renseigné a été au préalable modifié sur Portainer # Ce mot de passe en clair sera chiffré, puis supprimé à l'installation, à la réinitialisation ou à la reconfiguration de l'application # C'est donc normal qu'une fois l'application installée, réinitialisée ou mise à jour, ce paramètre apparaisse vide. MDP_PORTAINER="" # Adresse IP privée ou nom de domaine correspondant à une adresse IP privée. # Si vous saisissez un nom de domaine, celui-ci doit pouvoir être résolu. # Si aucun domaine n'est configuré, les sites seront accessibles à partir du réseau local via cette adresse IP privée. # L'adresse IP privée doit obligatoirement être configurée même si le paramètre suivant est renseigné. ADRESSE_IP_PRIVEE="" # Adresse IP publique ou nom de domaine correspondant à une adresse IP publique. # Si vous saisissez un nom de domaine, celui-ci doit pouvoir être résolu. # Il s'agit du nom de domaine ou de l'adresse IP qui sera utilisée pour la connexion à l'interface, à Portainer et aux sites à la place de l'adresse IP privée. # Aucune valeur ne doit donc être saisie ici si vous ne voulez pas cela, notamment si le serveur ne doit pas être accessible de l'extérieur. DOMAINE="" # Utilisation d'un Reverse-Proxy externe configuré par vos soins - O/N (N par défaut). # Si vous passez par un reverse proxy externe, mettre "O". # Les minuscules sont également acceptées. RP_EXT="N" # Chemin d'accès éventuel (en cas d'utilisation d'un Reverse-Proxy externe). # Ne pas mettre de "/" dans le chemin. CHEMIN="" # Dossier en chemin absolu contenant la clé secrète qui chiffre le mot de passe de Portainer. # Par défaut /opt/e-combox, il est conseillé de le modifier. # En cas de modification après installation, ne pas oublier de déplacer le fichier contenant la clé secrète. DOSSIER_MDP_KEY="/opt/e-combox" # Dossier en chemin absolu contenant le mot de passe chiffré. # Par défaut /opt/e-combox, il est conseillé de le modifier. # En cas de modification après installation, ne pas oublier de déplacer le fichier contenant le mot de passe chiffré. DOSSIER_MDP_CHIFFRE="/opt/e-combox" # Port utilisé pour un accès direct à Portainer (8880 par défaut). # Ce port n'a vocation à n'être utilisé qu'en cas de dépannage si l'accès via le reverse-proxy est impossible. PORT_PORTAINER="8880" # Port utilisé pour l'accès à Portainer, à l'interface et aux sites (8800 par défaut). # Il s'agit du seul port exposé. # Si aucun service Web n'écoute sur le port 443 de votre serveur, ce dernier peut être utilisé. PORT_RP="8800" # Port utilisé pour le registry (5443 par défaut). PORT_REGISTRY="5443" # Adresse du Proxy. # Saisissez ip-proxy:port. ADRESSE_PROXY="" # Hôtes à ignorer par le proxy. # Ce paramètre n'est à renseigner que si une adresse de Proxy a été saisie. # Saisissez le ou les hôtes séparés par une virgule sans espace. NO_PROXY="" # Adresse du réseau interne à Docker. # Cette adresse réseau doit être éventuellement modifiée notamment pour adapter le masque. # Un site nécessite 2 adresses IP réseau. # Compte tenu des conteneurs utilitaires, avec un masque en /24, le nombre de sites est limité à 120. # Cette adresse peut être modifiée ultérieurement. NET_ECB="192.168.97.0/24" # Suppression des images non associées à un site en cours d'exécution (false par défaut) # Cela permet de gagner de l'espace mais aussi de supprimer des images qui ne seront plus jamais utilisées # Le premier démarrage des sites sera un peu plus long car les images correspondantes devront être de nouveau téléchargées. # Définir le paramètre à "true" si vous voulez supprimer ces images (conseillé lors d'une migration). DEL_IMAGES="false" # Les 2 variables qui suivent sont utiles pour donner le chemin vers les éléments pour mettre en place un certificat existant. # Vous pouvez les laisser vides dans trois cas. # Cas 1 : si vous passez par un reverse proxy externe, les certificats configurés dans ce dernier sont propagés. # Cas 2 : l'accès à l'e-comBox ne va se faire que via le réseau local. # Cas 3 vous ne disposez pas de certificat pour votre nom de domaine. # À noter que le script manage_certificat.sh crée un certificat Let's Encrypt et permet de mettre à jour l'application # si une des 6 variables qui suivent ont été modifiées # Un certificat auto-signé se créera alors automatiquement via les 4 variables qui suivent. # Fichier certificat existant avec le chemin complet /chemin/fichier.crt ou /chemin/fichier.pem. CHEMIN_CERT="" # Fichier de la clé privée existante correspondante au certificat avec le chemin complet /chemin/fichier.key. CHEMIN_KEY="" # Uniquement si utilisation de manage_certificat.sh pour créer un certificat Let's Encrypt # Adresse de courriel non obligatoire pour créer le certificat (mais recommandé par Lets'encrypt) MAIL="" # Les 4 variables suivantes sont utiles pour créer un certificat auto signé. # Elles sont utilisés pour le certificat du registry local. # Elles sont également utilisées pour le reverse proxy (Nginx) si CHEMIN_CERT et CHEMIN_KEY sont vides. # Même si vous avez un certificat existant, elles doivent obligatoirement être renseignées. # Vous pouvez les modifier comme il vous convient. # Code Pays sur 2 lettres. CODE_PAYS="FR" # Nom Pays. NOM_PAYS="France" # Nom région. NOM_REGION="Corse" # Nom organisation. NOM_ORGANISATION="ReseauCerta" # Ajout du mode d'authentification pour les comptes non-admin basés sur le protocole OAuth (false par défaut). # Si false, il n'est pas tenu compte des paramètres qui suivent. # Si true, vous devez fournir la valeur des paramètres qui suivent. # Veuillez-vous référer à votre fournisseur OAuth pour déterminer les bonnes valeurs. OAUTH_ENABLE="false" # true ou false # Lors de l'utilisation de SSO (variable à "true"), le fournisseur OAuth n'est pas obligé de demander des informations d'identification. SSO_ENABLE="" # Identifiant public de l'application OAuth. CLIENT_ID="" # Client Secret CLIENT_SECRET="" # URL utilisée pour s'authentifier auprès du fournisseur OAuth. # L'utilisateur sera redirigé vers la page d'authentification du fournisseur d'identité. AUTHORIZATION_URL="" # URL utilisée par Portainer pour échanger un code d'authentification OAuth valide contre un token d'accès. ACCESS_TOKEN_URL="" # URL utilisée par Portainer pour récupérer des informations sur l'utilisateur authentifié. RESOURCE_URL="" # URL utilisée par Portainer pour rediriger l'utilisateur vers le fournisseur OAuth afin de déconnecter l'utilisateur de la session du fournisseur d'identité. LOGOUT_URL="" # Identifiant qui sera utilisé par Portainer pour créer un compte pour l'utilisateur authentifié. # Extrait du serveur de ressources spécifié via le champ URL de la ressource. USER_IDENTIFIER="" # Étendues requises par le fournisseur OAuth pour récupérer des informations sur l'utilisateur authentifié. SCOPES="" # Fichier certificat du fournisseur 0Auth avec le chemin complet /chemin/fichier.pem. # Ce dernier doit potentiellement être intégré à Portainer CERT_OAUTH="" # Les variables qui suivent servent à alimenter automatiquement les mentions légales # Si ces dernières n'existent pas ou si le script modif_mentions_legales.sh est exécuté # Les mentions légales peuvent également être modifiées via l'interface de l'e-comBox PROPRIETAIRE="" ADRESSE_POSTALE="" IMMATRICULATION="" HEBERGEUR="" RESPONSABLE_TRAITEMENT="" ADMIN_SERVICE="" DPO=""
Lancement de l'e-comBox et utilisation de base
En cas de Reverse Proxy externe :
- L'interface de l'e-comBox sera accessible via l'URL : https://<nom_domaine>/<chemin>/app/
- L'interface de Portainer sera accessible via l'URL : https://<nom_domaine>/<chemin>/portainer/
- Les sites seront accessibles via un URL sous la forme : https://<nom_domaine>/<chemin>/nom_du_site/
S'il n'y a pas de Reverse Proxy externe :
- L'interface de l'e-comBox sera accessible via l'URL : https://<adresse_IP ou nom_domaine>:PORT_RP/app/
- L'interface de Portainer sera accessible via l'URL : https://<adresse_IP ou nom_domaine>:PORT_RP/portainer/
- Les sites seront accessibles via un URL sous la forme : https://<adresse_IP ou nom_domaine>:PORT_RP/nom_du_site/
Il faut donc lancer l'application en saisissant :
- l'URL https://<nom_domaine>/<chemin>/app/ en cas de passage par un Reverse proxy externe ;
- l'URL https://<adresse_IP ou nom_domaine>:PORT_RP/app/ en cas de non passage par un Reverse Proxy externe.
La connexion à l'interface de l'application nécessite obligatoirement une authentification.
.
Lorsqu'on se connecte (après s'être authentifié), un tableau de bord simplifié permet d'avoir une vue d'ensemble :
Un clic, dans le menu de gauche (par exemple sur Odoo) conduit à un écran similaire à ci-dessous :
La prise en main de cette interface avec sa gestion de base (créer, démarrer, arrêter ou supprimer un site) ainsi que la gestion avancée est décrite plus précisément ici.
En cas de problème consultez la FAQ.
bash /opt/e-comBox/configure_application.sh [options]
La gestion des ressources pour Docker
Sur Linux, le professeur sera juste limité par la capacité de son poste (capacité du disque, capacité du processeur et capacité de la mémoire) sachant que le processeur et la mémoire ne sont affectés que lorsque les sites sont lancés.
Par exemple, une instance de Prestashop sur Docker nécessite aux alentours de 200 MB de RAM.
Le tableau de bord fournit des statistiques d'utilisation en temps réel.