Skip to content
Snippets Groups Projects
Verified Commit 13d6b1fe authored by Quentin Duchemin's avatar Quentin Duchemin
Browse files

[Etherpad] Add CHANGELOG, update README

parent d8eb41cf
No related branches found
No related tags found
No related merge requests found
## Version 1.8.4
Double bump :
* Vers la 1.8.3 : https://github.com/ether/etherpad-lite/releases/tag/1.8.3
* Vers la 1.8.4 : https://github.com/ether/etherpad-lite/releases/tag/1.8.4
Concernant notre instance :
### Base de données :
* [Changement de la taille du cache d'index](https://gitlab.utc.fr/picasoft/projets/dockerfiles/-/commit/8f1056face52a5e37d71028acbc5750c777bde82), la performance devrait être **grandement** améliorée
### Application :
* Nouveau plugin pour retourner à la page d'accueil (bouton tout à gauche)
* Nouveau plugin d'administration, pour lister les pads, les supprimer, voir le nombre d'auteur, etc
* Nouveau plugin permettant d'envoyer une annonce à tous les utilisateurs connectés, utile pour les mises à jour
* On peut de nouveau créer des pads sur l'instance principale ; la rétention est de deux ans, évolution à surveiller.
* Gestion de l'instance week et principale avec la CI et avec la même image Docker (configuration différente, versionnée sur le dépôt)
* Suppression des plugins obsolètes/inutiles, en particulier les tables, le comptage des mots, "page view", taille de police
* La même page d'accueil est utilisée pour les deux instances.
### Technique :
* Passage des liens aux réseaux Docker pour une meilleure isolation
* Durée du HEALTHCHECK diminuée pour que Traefik prenne en compte Etherpad plus rapidement
* Suppression effective des pads ayant dépassé la durée de rétention **une fois par semaine**, pour éviter des problèmes de performances ; cf [Framasoft](https://framagit.org/framasoft/Etherpad/pad_delete_after_delay), qui sur le plugin concerné indique :
> But we have so many pads (more than 30k on some instances) that the plugin fails to work correctly: it causes a really huge load on the etherpad processus at start and stuck it.
* Du coup, ne pas activer la suppression des pads ayant dépassé la durée de rétention à chaque redémarrage, pour éviter que ça prenne 15 min à démarrer, lors d'un crash par exemple.
* Tous les paramètres sont pris en charge par des variables d'environnement : meilleur nommage et ajustements des fichiers settings.json
# Pica Etherpad
# Picapad
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.
Le Docker Compose associé permet de lancer deux instances : une principale et une hebdomadaire. La seule différence est la durée de la politique de rétention.
Tous les fichiers présents ici suffisent à lancer correctement les conteneurs (application et base de données), si un Traefik tourne sur la machine cible.
<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
......@@ -13,30 +15,65 @@ Tous les fichiers présents ici suffisent à lancer correctement les deux conten
<!-- /TOC -->
## Mise à jour de l'image
Pour mettre à jour la version d'Etherpad, il faut simplement modifir la variable `ETHERPAD_VERSION_BUILD` du [Dockerfile](./Dockerfile) et le tag dans l'image dans [docker-compose.yml](./docker-compose.yml).
L'image est construite automatiquement grâce à la CI.
Notez vos changements dans le fichier [CHANGELOG.md](./CHANGELOG.md).
Avant de mettre à jour le service en production, pensez à prévenir tous les utilisateurs connectés :
* Sur https://pad.picasoft.net/admin/message_to_all pour l'instance principale
* Sur https://week.pad.picasoft.net/admin/message_to_all pour l'instance hebdomadaire
Le mot de passe administrateur est défini dans le fichier de secrets.
## Configuration
Etherpad se configure au lancement du conteneur avec des variables d'environnement. Elles sont présentes à trois endroits :
Etherpad se configure au lancement du conteneur avec des variables d'environnement. Elles sont présentes à deux endroits :
* Le fichier `etherpad-app.secrets.example` contient les variables privées, par exemple le mot de passe de l'administrateur Etherpad, les identifiants de base de données... 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. Les identifiants doivent correspondre à ceux du fichier `etherpad-app.secrets`.
* Le reste des variables d'environnement non-confidentielles est affecté directement dans le fichier `docker-compose.yml`, via la directive `environment`.
* Les fichiers dans [secrets](./secrets) contiennent les variables nécessaires pour créer une base de données, un utilisateur et stocker les mots de passe.
* Le reste des variables d'environnement non-confidentielles est affecté directement dans le [docker-compose.yml](./docker-compose.yml), via la directive `environment`.
Toutes les paramètres sont configurables via l'environnement. On pourra regarder le fichier [settings.json](./settings.json) pour une référence. Ce fichier contient uniquement les valeurs par défaut. La configuration doit avoir lieu dans le [docker-compose.yml](./docker-compose.yml). Pour des configurations vraiment très durables et/ou très spécifiques, on pourra modifier [settings.json](./settings.json) et reconstruire l'image.
Lors d'un premier lancement, sur la machine cible, après avoir récupéré une version à jour de ce dépôt, copiez les fichiers en enlevant `.example` et remplacez les valeurs. Ces fichiers sont importés depuis [docker-compose.yml][./docker-compose.yml]. Attention, les secrets doivent être **différents** pour les deux instances.
## Mise à jour de l'image
Toutes les paramètres sont configurables via l'environnement. On pourra regarder le fichier [settings.json](./settings.json) pour une référence. Des explications sont [disponibles ici](https://github.com/ether/etherpad-lite/blob/develop/settings.json.docker). Ce fichier contient uniquement les valeurs par défaut. La configuration doit avoir lieu dans le [docker-compose.yml](./docker-compose.yml).
Pour mettre à jour la version d'Etherpad, il faut simplement modifir la variable `ETHERPAD_VERSION_BUILD` du Dockerfile et le nom dans l'image dans Docker Compose.
## Séparation des instances
L'image est construite automatiquement grâce à la CI.
Le [docker-compose.yml](./docker-compose.yml) proposé inclut deux versions : une principale, usuellement sur [pad.picasoft.net](https://pad.picasoft.net), et une hebdomadaire, usuellement sur [week.pad.picasoft.net](https://week.pad.picasoft.net).
La procédure de lancement classique avec `docker_prod.sh` lancera les deux instances sur la même machine.
Pour les lancer sur différentes machines, on n'utilisera pas ce script mais on lancera à la main :
```bash
# Pour l'instance principale, sur la machine A
docker-compose up -d etherpad-app && docker-compose logs -f
# Pour l'instance hebdomadaire, sur la machine B
docker-compose up -d etherpad-week-app && docker-compose logs -f
```
## 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.
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 dans le `Dockerfile`, sur la ligne `ARG ETHERPAD_PLUGINS`, en respectant l'ordre alphabétique pour la facilité de lecture.
## Page d'accueil
La page d'accueil est présente dans le dossier `landing-page` et est construite (*i.e.* compilée, minifiée...) automatiquement lors du build de l'image.
La page d'accueil est présente dans le dossier [landing-page](./landing-page) et est construite (*i.e.* compilée, minifiée...) automatiquement lors du build de l'image.
La même page d'accueil est utilisée pour les deux instances. Pour la modifier effectivement, il faudra pousser les modifications et reconstruire l'image en lançant manuellement le build via la CI.
## Administration
Les tâches d'administration se réalisent sur une interface dédiée :
* https://pad.picasoft.net/admin pour l'instance principale
* https://week.pad.picasoft.net/admin pour l'instance hebdomadaire
Le mot de passe admin se trouve dans le fichier de secrets.
On peut notamment inspecter la configuration, lister les pads, les supprimer et envoyer un message aux utilisateurs connectés.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment