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

[Etherpad] Allow all settings to be configured via environment

parent 85190893
No related branches found
No related tags found
No related merge requests found
......@@ -21,17 +21,7 @@ Etherpad se configure au lancement du conteneur avec des variables d'environneme
* 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`.
Pour information, les variables que l'on peut affecter directement dans le `docker-compose.yml` sont :
* `ETHERPAD_MINIFY` : booléen, `true` conseillé
* `ETHERPAD_THEME` : `no-skin` ou `colibris`, ce dernier conseillé
* `ETHERPAD_TITLE` : titre de l'instance
* `ETHERPAD_LOGLEVEL` : `INFO`, `DEBUG`, `WARN` ou `ERROR`
## Ajouter ou modifier un paramètre
Pour un paramètre fixé, on modifiera directement `settings.json` et on poussera la modification sur ce dépôt.
Pour un paramètre sujet aux changements, on utilisera une variable d'environnement que l'on documentera ci-dessus et que l'on affectera dans `settings.json` avec la syntaxe `"${NOUVELLE_VARIABLE:Valeur par défaut}"`. Voir le fichier pour des examples.
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.
## Mise à jour de l'image
......
......@@ -30,10 +30,14 @@ services:
traefik.frontend.rule: "Host:pad.picasoft.net"
traefik.port: 8080
environment:
ETHERPAD_THEME: "colibris"
ETHERPAD_MINIFY: "TRUE"
ETHERPAD_DB_HOST: "etherpad-db"
ETHERPAD_LOGLEVEL: "INFO"
DB_HOST: "etherpad-db"
EDIT_ONLY: true
LOGLEVEL: "INFO"
MINIFY: "TRUE"
PORT: 8080,
THEME: "colibris"
TITLE: "Picapad"
TRUE_PROXY: true
restart: unless-stopped
networks:
- docker_default
......
ETHERPAD_ADMIN_PASSWORD=password1
ETHERPAD_DB_NAME=etherpad-lite
ETHERPAD_DB_USER=etherpad
ETHERPAD_DB_PASSWORD=password2
ADMIN_PASSWORD=password1
DB_NAME=etherpad-lite
DB_USER=etherpad
DB_PASSWORD=password2
{
"title": "${ETHERPAD_TITLE:Picapad}",
"title": "${TITLE:Picapad}",
"favicon": "${FAVICON:favicon.ico}",
"skinName": "${ETHERPAD_THEME:no-skin}",
"ip": "0.0.0.0",
"port": 8080,
"showSettingsInAdminPage": true,
"dbType": "mysql",
"skinName": "${THEME:no-skin}",
"skinVariants": "${SKIN_VARIANTS:super-light-toolbar super-light-editor light-background}",
"ip": "${IP:0.0.0.0}",
"port": "${PORT:8080}",
"showSettingsInAdminPage": "${SHOW_SETTINGS_IN_ADMIN_PAGE:true}",
"dbType": "${DB_TYPE:mysql}",
"dbSettings": {
"host": "${ETHERPAD_DB_HOST}",
"port": 3306,
"database": "${ETHERPAD_DB_NAME}",
"user": "${ETHERPAD_DB_USER}",
"password": "${ETHERPAD_DB_PASSWORD}",
"charset": "utf8mb4"
"host": "${DB_HOST}",
"port": "${DB_PORT:3306}",
"database": "${DB_NAME}",
"user": "${DB_USER}",
"password": "${DB_PASSWORD}",
"charset": "${DB_CHARSET:utf8mb4}"
},
"defaultPadText": "Bienvenue sur Picapad, une instance d'Etherpad, un éditeur de texte collaboratif libre.\n-----------------------------------------------------------\nLe texte que vous saisissez est automatiquement synchronisé avec toutes les personnes naviguant sur ce pad.\n\nPrenez des notes et rédigez des documents librement !\n\n→ Pour bien commencer :\n• Renseignez votre nom ou pseudo, en cliquant sur l’icône « utilisateur » en haut à droite.\n• Choisissez votre couleur d'écriture au même endroit.\n• Les contributions de chacun se synchronisent « en temps réel » sous leur propre couleur.\n• Un chat vous permet de discuter avec les autres personnes présentes sur le pad.\n\n→ Fonctionnalités :\n• Couleur du texte, tableau, choix et taille de police, alignement, pleine page...\n• Sauvegarde automatique du pad.\n• Historique complet du pad (bouton en forme d'horloge)\n• Sauvegarde de versions clés (bouton en forme d'étoile).\n• Commentaires avec suggestion de remplacement (bouton en forme de bulle).\n• Les réglages vous permettent de désactiver les couleurs, de changer la langue, d'activer les sauts de pages...\n\n→ Partage :\n• Import et export dans divers formats (bouton avec les flèches).\n• Partage en lecture seule, pour éviter les modifications non voulues (bouton </>).\n\nPensez à garder l'URL de votre pad pour le retrouver.\nAttention, celui-ci est public, c'est-à-dire que toute personne qui en possède l'URL pourra y accéder :n'y stockez pas d'informations confidentielles !\n-----------------------------------------------------------\nUne question ? Un problème ? Envoyez-nous un mail à picasoft@assos.utc.fr !",
"defaultPadText": "${DEFAULT_PAD_TEXT:Bienvenue sur Picapad, une instance d'Etherpad, un éditeur de texte collaboratif libre.\n-----------------------------------------------------------\nLe texte que vous saisissez est automatiquement synchronisé avec toutes les personnes naviguant sur ce pad.\n\nPrenez des notes et rédigez des documents librement !\n\n→ Pour bien commencer :\n• Renseignez votre nom ou pseudo, en cliquant sur l’icône « utilisateur » en haut à droite.\n• Choisissez votre couleur d'écriture au même endroit.\n• Les contributions de chacun se synchronisent « en temps réel » sous leur propre couleur.\n• Un chat vous permet de discuter avec les autres personnes présentes sur le pad.\n\n→ Fonctionnalités :\n• Couleur du texte, tableau, choix et taille de police, alignement, pleine page...\n• Sauvegarde automatique du pad.\n• Historique complet du pad (bouton en forme d'horloge)\n• Sauvegarde de versions clés (bouton en forme d'étoile).\n• Commentaires avec suggestion de remplacement (bouton en forme de bulle).\n• Les réglages vous permettent de désactiver les couleurs, de changer la langue, d'activer les sauts de pages...\n\n→ Partage :\n• Import et export dans divers formats (bouton avec les flèches).\n• Partage en lecture seule, pour éviter les modifications non voulues (bouton </>).\n\nPensez à garder l'URL de votre pad pour le retrouver.\nAttention, celui-ci est public, c'est-à-dire que toute personne qui en possède l'URL pourra y accéder :n'y stockez pas d'informations confidentielles !\n-----------------------------------------------------------\nUne question ? Un problème ? Envoyez-nous un mail à picasoft@assos.utc.fr !}",
"padOptions": {
"noColors": false,
"showControls": true,
"showChat": false,
"showLineNumbers": true,
"useMonospaceFont": false,
"userName": "Anonyme",
"userColor": false,
"rtl": false,
"alwaysShowChat": false,
"chatAndUsers": false,
"lang": "fr"
"noColors": "${PAD_OPTIONS_NO_COLORS:false}",
"showControls": "${PAD_OPTIONS_SHOW_CONTROLS:true}",
"showChat": "${PAD_OPTIONS_SHOW_CHAT:false}",
"showLineNumbers": "${PAD_OPTIONS_SHOW_LINE_NUMBERS:true}",
"useMonospaceFont": "${PAD_OPTIONS_USE_MONOSPACE_FONT:false}",
"userName": "${PAD_OPTIONS_USER_NAME:Anonyme}",
"userColor": "${PAD_OPTIONS_USER_COLOR:false}",
"rtl": "${PAD_OPTIONS_RTL:false}",
"alwaysShowChat": "${PAD_OPTIONS_ALWAYS_SHOW_CHAT:false}",
"chatAndUsers": "${PAD_OPTIONS_CHAT_AND_USERS:false}",
"lang": "${PAD_OPTIONS_LANG:fr}"
},
"padShortcutEnabled": {
"altF9": true,
"altC": true,
"cmdShift2": true,
"delete": true,
"return": true,
"esc": true,
"cmdS": true,
"tab": true,
"cmdZ": true,
"cmdY": true,
"cmdI": true,
"cmdB": true,
"cmdU": true,
"cmd5": true,
"cmdShiftL": true,
"cmdShiftN": true,
"cmdShift1": true,
"cmdShiftC": true,
"cmdH": true,
"ctrlHome": true,
"pageUp": true,
"pageDown": true
"altF9": "${PAD_SHORTCUTS_ENABLED_ALT_F9:true}", /* focus on the File Menu and/or editbar */
"altC": "${PAD_SHORTCUTS_ENABLED_ALT_C:true}", /* focus on the Chat window */
"cmdShift2": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_2:true}", /* shows a gritter popup showing a line author */
"delete": "${PAD_SHORTCUTS_ENABLED_DELETE:true}",
"return": "${PAD_SHORTCUTS_ENABLED_RETURN:true}",
"esc": "${PAD_SHORTCUTS_ENABLED_ESC:true}", /* in mozilla versions 14-19 avoid reconnecting pad */
"cmdS": "${PAD_SHORTCUTS_ENABLED_CMD_S:true}", /* save a revision */
"tab": "${PAD_SHORTCUTS_ENABLED_TAB:true}", /* indent */
"cmdZ": "${PAD_SHORTCUTS_ENABLED_CMD_Z:true}", /* undo/redo */
"cmdY": "${PAD_SHORTCUTS_ENABLED_CMD_Y:true}", /* redo */
"cmdI": "${PAD_SHORTCUTS_ENABLED_CMD_I:true}", /* italic */
"cmdB": "${PAD_SHORTCUTS_ENABLED_CMD_B:true}", /* bold */
"cmdU": "${PAD_SHORTCUTS_ENABLED_CMD_U:true}", /* underline */
"cmd5": "${PAD_SHORTCUTS_ENABLED_CMD_5:true}", /* strike through */
"cmdShiftL": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_L:true}", /* unordered list */
"cmdShiftN": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_N:true}", /* ordered list */
"cmdShift1": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_1:true}", /* ordered list */
"cmdShiftC": "${PAD_SHORTCUTS_ENABLED_CMD_SHIFT_C:true}", /* clear authorship */
"cmdH": "${PAD_SHORTCUTS_ENABLED_CMD_H:true}", /* backspace */
"ctrlHome": "${PAD_SHORTCUTS_ENABLED_CTRL_HOME:true}", /* scroll to top of pad */
"pageUp": "${PAD_SHORTCUTS_ENABLED_PAGE_UP:true}",
"pageDown": "${PAD_SHORTCUTS_ENABLED_PAGE_DOWN:true}"
},
"suppressErrorsInPadText": false,
"requireSession": false,
"editOnly": true,
"sessionNoPassword": false,
"minify": "${ETHERPAD_MINIFY:true}",
"maxAge": 21600,
"abiword": null,
"soffice": null,
"tidyHtml": null,
"allowUnknownFileEnds": false,
"requireAuthentication": false,
"requireAuthorization": false,
"trustProxy": true,
"disableIPlogging": false,
"automaticReconnectionTimeout": 10,
"suppressErrorsInPadText": "${SUPPRESS_ERRORS_IN_PAD_TEXT:false}",,
"requireSession": "${REQUIRE_SESSION:false}",
"editOnly": "${EDIT_ONLY:false}",
"sessionNoPassword": "${SESSION_NO_PASSWORD:false}",
"minify": "${MINIFY:true}",
"maxAge": "${MAX_AGE:21600}", // 60 * 60 * 6 = 6 hours
"abiword": "${ABIWORD}",
"soffice": "${SOFFICE}",
"tidyHtml": "${TIDY_HTML}",
"allowUnknownFileEnds": "${ALLOW_UNKNOWN_FILE_ENDS:false}",
"requireAuthentication": "${REQUIRE_AUTHENTICATION:false}",
"requireAuthorization": "${REQUIRE_AUTHORIZATION:false}",
"trustProxy": "${TRUST_PROXY:false}",
"disableIPlogging": "${DISABLE_IP_LOGGING:false}",
"automaticReconnectionTimeout": "${AUTOMATIC_RECONNECTION_TIMEOUT:10}",
"scrollWhenFocusLineIsOutOfViewport": {
"percentage": {
"editionAboveViewport": 0.5,
"editionBelowViewport": 0
"editionAboveViewport": "${FOCUS_LINE_PERCENTAGE_ABOVE:0.5}",
"editionBelowViewport": "${FOCUS_LINE_PERCENTAGE_BELOW:0}"
},
"duration": 200,
"scrollWhenCaretIsInTheLastLineOfViewport": false,
"percentageToScrollWhenUserPressesArrowUp": 0
"duration": "${FOCUS_LINE_DURATION:200}",
"scrollWhenCaretIsInTheLastLineOfViewport": "${FOCUS_LINE_CARET_SCROLL:false}",
"percentageToScrollWhenUserPressesArrowUp": "${FOCUS_LINE_PERCENTAGE_ARROW_UP:0}"
},
"users": {
"admin": {
"password": "${ETHERPAD_ADMIN_PASSWORD}",
"password": "${ADMIN_PASSWORD}",
"is_admin": true
}
},
"socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
"loadTest": false,
"indentationOnNewLine": true,
"loadTest": "${LOAD_TEST:false}",
"indentationOnNewLine": false,
"importExportRateLimiting": {
// duration of the rate limit window (milliseconds)
"windowMs": "${IMPORT_EXPORT_RATE_LIMIT_WINDOW:90000}",
// maximum number of requests per IP to allow during the rate limit window
"max": "${IMPORT_EXPORT_MAX_REQ_PER_IP:10}"
},
"importMaxFileSize": "${IMPORT_MAX_FILE_SIZE:52428800}", // 50 * 1024 * 1024
"toolbar": {
"left": [
["bold", "italic", "underline", "strikethrough"],
......@@ -103,8 +111,8 @@
["timeslider_export", "timeslider_returnToPad"]
]
},
"exposeVersion": false,
"loglevel": "${ETHERPAD_LOGLEVEL:INFO}",
"exposeVersion": "${EXPOSE_VERSION:false}",
"loglevel": "${LOGLEVEL:INFO}",
"logconfig" :
{
"appenders": [
......
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