@@ -4,41 +4,65 @@ Ce dossier contient une image d'Etherpad Lite maintenue par l'association.
Tous les fichiers présents ici suffisent à lancer correctement les deux conteneurs (application et base de données), si un Traefik tourne sur la machine cible. Sinon, il faut simplement adapter l'URL présente dans `entrypoint.sh` et exposer un port du conteneur, mais c'est hors-propos.
<!-- MarkdownTOC autolink="true" -->
-[Environnement](#environnement)
-[Configuration](#configuration)
-[Ajouter ou modifier un paramètre](#ajouter-ou-modifier-un-param%C3%A8tre)
-[Mise à jour de l'image](#mise-%C3%A0-jour-de-limage)
-[Ajout d'un plugin](#ajout-dun-plugin)
<!-- /MarkdownTOC -->
## Environnement
Etherpad se configure au lancement du conteneur avec des variables d'environnement. Elles sont présentes à trois endroits :
* Le fichier `etherpad-app.secrets.example` contient les variables possibles pour créer un administrateur Etherpad, qui pourra par exemple modifier la configuration depuis l'interface graphique. Copiez le fichier en enlevant `.example` et remplacez les valeurs. Ce fichier est importé depuis `docker-compose.yml`.
* Le fichier `etherpad-db.secrets.example` contient les variables nécéssaires pour créer un utilisateur de la base de données. Le reste est similaire à l'autre fichier secret.
* Le reste des variables d'environnement non-confidentielles est affecté directement dans le fichier `docker-compose.yml`, via la directive `environment`.
Les valeurs par défaut des variables (si elles ne sont pas affectées) se trouve dans `entrypoint.sh`.
Pour info, les variables que l'on peut affecter directement dans le `docker-compose.yml` sont :
Pour information, les variables que l'on peut affecter directement dans le `docker-compose.yml` sont :
*`ETHERPAD_MINIFY`
*`ETHERPAD_DEFAULT_TEXT`
*`ETHERPAD_THEME`
*`ETHERPAD_TITLE`
*`ETHERPAD_PORT`
Elles sont toute une valeur par défaut fonctionnelle ; à ne modifier qu'en cas particulier.
Elles ont toutes une valeur par défaut fonctionnelle ; à ne modifier qu'en cas particulier.
## Configuration
### Ajouter ou modifier un paramètre
Le fichier de configuration se trouve, dans le conteneur, à l'emplacement `/opt/etherpad-lite/settings.json`. Il est construit dynamiquement à chaque lancement du conteneur par le script `entrypoint.sh`.
Pour modifier la configuration, il faudra donc changer la valeur de la variable d'environnement associée et relancer le conteneur.
Pour ajouter un paramètre de configuration, il faudra :
* Créer une nouvelle variable d'environnement que l'on peut affecter dans le `docker-compose.yml`
* Récupérer cette valeur dans `entrypoint.sh` et lui substituer une valeur par défaut si elle n'existe pas
* Rajouter le paramètre de configuration lors de la construction du fichier `settings.json`
* Tester en local que tout fonctionne
* Reconstruire l'image et la pousser sur le Registry
* Modifier le `docker-compose.yml` d'exemple **et** de production avec la nouvelle variable d'environnement
1. Créer une nouvelle variable d'environnement que l'on peut affecter dans le `docker-compose.yml`
2. Récupérer cette valeur dans `entrypoint.sh` et lui substituer une valeur par défaut si elle n'existe pas
3. Rajouter le paramètre de configuration lors de la construction du fichier `settings.json`
4. Tester en local que tout fonctionne
5. Reconstruire l'image et la pousser sur le Registry
6. Modifier le `docker-compose.yml` d'exemple **et** de production avec la nouvelle variable d'environnement, puis l'ajouter à ce README.
## Mise à jour de l'image
Pour mettre à jour la version d'Etherpad, il faut simplement reconstruire l'image en ayant préalablement modifié la variable `ETHERPAD_VERSION_BUILD` du Dockerfile.
Ensuite, on construit l'image, on la teste, on la tag et on la pousse sur le registry (procédure classique).
Il faut ensuite mettre à jour le `docker-compose` d'exemple pour refléter la nouvelle version.
\ No newline at end of file
Il faut ensuite mettre à jour le `docker-compose` d'exemple pour refléter la nouvelle version.
## Ajout d'un plugin
Etherpad maintient une [liste officielle des plugins](https://static.etherpad.org/plugins.html).
Pour installer un plugin, on évitera de passer par l'interface administrateur et on préfèrera modifier le [Dockerfile](Dockerfile) directement.
Il suffit pour ce faire d'ajouter le nom du package npm correspondant à l'endroit où ils sont tous installés (`npm install`...), en respectant l'ordre alphabétique pour la facilité de lecture.