etherpad: update to v1.8.17

Following https://github.com/bigbluebutton/bigbluebutton/pull/14550 .

Also updated the settings.json file with https://github.com/ether/etherpad-lite/blob/1.8.17/settings.json.template .

Made sure to preserve BigBlueButton common settings and a couple of extras
that I imagine that made sense for the docker environment:

 - ip: 0.0.0.0
	BigBlueButton uses 127.0.0.1

  /*
   * IP and port which Etherpad should bind at.
   *
   * Binding to a Unix socket is also supported: just use an empty string for
   * the ip, and put the full path to the socket in the port parameter.
   *
   * EXAMPLE USING UNIX SOCKET:
   *    "ip": "",                             // <-- has to be an empty string
   *    "port" : "/somepath/etherpad.socket", // <-- path to a Unix socket
   */
  "ip": "0.0.0.0",
  "port": 9001,

 - host: redis
	BigBlueButton uses 127.0.0.1

  /*
   * The type of the database.
   *
   * You can choose between many DB drivers, for example: dirty, postgres,
   * sqlite, mysql.
   *
   * You shouldn't use "dirty" for for anything else than testing or
   * development.
   *
   *
   * Database specific settings are dependent on dbType, and go in dbSettings.
   * Remember that since Etherpad 1.6.0 you can also store this information in
   * credentials.json.
   *
   * For a complete list of the supported drivers, please refer to:
   * https://www.npmjs.com/package/ueberdb2
   */

  "dbType": "redis",
  "dbSettings": {
    "host": "redis",
    "port": 6379
  },

 - soffice: /etherpad-export.sh
	BigBlueButton uses /usr/share/bbb-libreoffice-conversion/etherpad-export.sh

  /*
   * This is the absolute path to the soffice executable.
   *
   * LibreOffice can be used in lieu of Abiword to export pads.
   * Setting it to null disables LibreOffice exporting.
   */
  "soffice": "/etherpad-export.sh",

 - disableIPlogging: true
	BigBlueButton uses false (Etherpad's default)

  /*
   * Privacy: disable IP logging
   */
  "disableIPlogging": true,

 - host: redis
	BigBlueButton uses 127.0.0.1

  /*
   * Redis publisher plugin configuration.
   * npm i git+https://git@github.com/mconf/ep_redis_publisher.git
   */

  "ep_redis_publisher": {
    "host": "redis",
    "port": 6379
  },
This commit is contained in:
Pedro Beschorner Marin 2022-03-08 14:00:57 -03:00
parent 212aee558c
commit 8e9e99ab29
2 changed files with 538 additions and 493 deletions

View File

@ -1,4 +1,4 @@
FROM etherpad/etherpad:1.8.16 FROM etherpad/etherpad:1.8.17
USER root USER root

View File

@ -15,6 +15,31 @@
* *
* This is useful, for example, when running in a Docker container. * This is useful, for example, when running in a Docker container.
* *
* DETAILED RULES:
* - If the environment variable is set to the string "true" or "false", the
* value becomes Boolean true or false.
* - If the environment variable is set to the string "null", the value
* becomes null.
* - If the environment variable is set to the string "undefined", the setting
* is removed entirely, except when used as the member of an array in which
* case it becomes null.
* - If the environment variable is set to a string representation of a finite
* number, the string is converted to that number.
* - If the environment variable is set to any other string, including the
* empty string, the value is that string.
* - If the environment variable is unset and a default value is provided, the
* value is as if the environment variable was set to the provided default:
* - "${UNSET_VAR:}" becomes the empty string.
* - "${UNSET_VAR:foo}" becomes the string "foo".
* - "${UNSET_VAR:true}" and "${UNSET_VAR:false}" become true and false.
* - "${UNSET_VAR:null}" becomes null.
* - "${UNSET_VAR:undefined}" causes the setting to be removed (or be set
* to null, if used as a member of an array).
* - If the environment variable is unset and no default value is provided,
* the value becomes null. THIS BEHAVIOR MAY CHANGE IN A FUTURE VERSION OF
* ETHERPAD; if you want the default value to be null, you should explicitly
* specify "null" as the default value.
*
* EXAMPLE: * EXAMPLE:
* "port": "${PORT:9001}" * "port": "${PORT:9001}"
* "minify": "${MINIFY}" * "minify": "${MINIFY}"
@ -56,18 +81,27 @@
* "password": "${PASSW}" // if PASSW is not defined would result in password === null * "password": "${PASSW}" // if PASSW is not defined would result in password === null
* "password": "${PASSW:}" // if PASSW is not defined would result in password === '' * "password": "${PASSW:}" // if PASSW is not defined would result in password === ''
* *
* If you want to use an empty value (null) as default value for a variable,
* simply do not set it, without putting any colons: "${ABIWORD}".
*
* 3) if you want to use newlines in the default value of a string parameter,
* use "\n" as usual.
*
* "defaultPadText" : "${DEFAULT_PAD_TEXT}Line 1\nLine 2"
*/ */
{ {
/* /*
* Name your instance! * Name your instance!
*/ */
"title": "Etherpad", "title": "Etherpad",
/* /*
* favicon default name * Pathname of the favicon you want to use. If null, the skin's favicon is
* alternatively, set up a fully specified Url to your own favicon * used if one is provided by the skin, otherwise the default Etherpad favicon
* is used. If this is a relative path it is interpreted as relative to the
* Etherpad root directory.
*/ */
"favicon": "favicon.ico", "favicon": null,
/* /*
* Skin name. * Skin name.
@ -83,7 +117,40 @@
"skinName": "bigbluebutton", "skinName": "bigbluebutton",
/* /*
* IP and port which etherpad should bind at * Skin Variants
*
* Use the UI skin variants builder at /p/test#skinvariantsbuilder
*
* For the colibris skin only, you can choose how to render the three main
* containers:
* - toolbar (top menu with icons)
* - editor (containing the text of the pad)
* - background (area outside of editor, mostly visible when using page style)
*
* For each of the 3 containers you can choose 4 color combinations:
* super-light, light, dark, super-dark.
*
* For example, to make the toolbar dark, you will include "dark-toolbar" into
* skinVariants.
*
* You can provide multiple skin variants separated by spaces. Default
* skinVariant is "super-light-toolbar super-light-editor light-background".
*
* For the editor container, you can also make it full width by adding
* "full-width-editor" variant (by default editor is rendered as a page, with
* a max-width of 900px).
*/
"skinVariants": "super-light-toolbar super-light-editor light-background",
/*
* IP and port which Etherpad should bind at.
*
* Binding to a Unix socket is also supported: just use an empty string for
* the ip, and put the full path to the socket in the port parameter.
*
* EXAMPLE USING UNIX SOCKET:
* "ip": "", // <-- has to be an empty string
* "port" : "/somepath/etherpad.socket", // <-- path to a Unix socket
*/ */
"ip": "0.0.0.0", "ip": "0.0.0.0",
"port": 9001, "port": 9001,
@ -122,7 +189,7 @@
* *
* *
* Database specific settings are dependent on dbType, and go in dbSettings. * Database specific settings are dependent on dbType, and go in dbSettings.
* Remember that since Etherpad 1.6.0 you can also store these informations in * Remember that since Etherpad 1.6.0 you can also store this information in
* credentials.json. * credentials.json.
* *
* For a complete list of the supported drivers, please refer to: * For a complete list of the supported drivers, please refer to:
@ -141,22 +208,10 @@
* See: https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-MySQL * See: https://github.com/ether/etherpad-lite/wiki/How-to-use-Etherpad-Lite-with-MySQL
*/ */
/*
"dbType" : "mysql",
"dbSettings" : {
"user": "etherpaduser",
"host": "localhost",
"port": 3306,
"password": "PASSWORD",
"database": "etherpad_lite_db",
"charset": "utf8mb4"
},
*/
/* /*
"dbType" : "redis", "dbType" : "redis",
"dbSettings" : { "dbSettings" : {
"host": "localhost", "host": "127.0.0.1",
"port": 6379, "port": 6379,
"client_options": { "client_options": {
"password": "PASSWORD" "password": "PASSWORD"
@ -185,7 +240,7 @@
"rtl": false, "rtl": false,
"alwaysShowChat": false, "alwaysShowChat": false,
"chatAndUsers": false, "chatAndUsers": false,
"lang": "en-gb" "lang": "en"
}, },
/* /*
@ -235,12 +290,6 @@
*/ */
"editOnly": false, "editOnly": false,
/*
* If set to true, those users who have a valid session will automatically be
* granted access to password protected pads.
*/
"sessionNoPassword": false,
/* /*
* If true, all css & js will be minified before sending to the client. * If true, all css & js will be minified before sending to the client.
* *
@ -328,6 +377,7 @@
*/ */
"sameSite": "None" "sameSite": "None"
}, },
/* /*
* Privacy: disable IP logging * Privacy: disable IP logging
*/ */
@ -383,10 +433,22 @@
}, },
/* /*
* Users for basic authentication. * User accounts. These accounts are used by:
* - default HTTP basic authentication if no plugin handles authentication
* - some but not all authentication plugins
* - some but not all authorization plugins
* *
* is_admin = true gives access to /admin. * User properties:
* If you do not uncomment this, /admin will not be available! * - password: The user's password. Some authentication plugins will ignore
* this.
* - is_admin: true gives access to /admin. Defaults to false. If you do not
* uncomment this, /admin will not be available!
* - readOnly: If true, this user will not be able to create new pads or
* modify existing pads. Defaults to false.
* - canCreate: If this is true and readOnly is false, this user can create
* new pads. Defaults to true.
*
* Authentication and authorization plugins may define additional properties.
* *
* WARNING: passwords should not be stored in plaintext in this file. * WARNING: passwords should not be stored in plaintext in this file.
* If you want to mitigate this, please install ep_hash_auth and * If you want to mitigate this, please install ep_hash_auth and
@ -415,6 +477,17 @@
*/ */
"socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"], "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
"socketIo": {
/*
* Maximum permitted client message size (in bytes). All messages from
* clients that are larger than this will be rejected. Large values make it
* possible to paste large amounts of text, and plugins may require a larger
* value to work properly, but increasing the value increases susceptibility
* to denial of service attacks (malicious clients can exhaust memory).
*/
"maxHttpBufferSize": 10000
},
/* /*
* Allow Load Testing tools to hit the Etherpad Instance. * Allow Load Testing tools to hit the Etherpad Instance.
* *
@ -422,6 +495,11 @@
*/ */
"loadTest": false, "loadTest": false,
/**
* Disable dump of objects preventing a clean exit
*/
"dumpOnUncleanExit": false,
/* /*
* Disable indentation on new line when previous line ends with some special * Disable indentation on new line when previous line ends with some special
* chars (':', '[', '(', '{') * chars (':', '[', '(', '{')
@ -431,18 +509,15 @@
"indentationOnNewLine": false, "indentationOnNewLine": false,
*/ */
/*
* Delete pads plugin configuration.
*/
"ep_pad_ttl": { "ep_pad_ttl": {
"ttl": 86400, // 24 hours "ttl": 86400, // 24 hours
"timeout": 30, "timeout": 30,
"interval": 21600, // 6 hour "interval": 21600 // 6 hours
}, },
/* /*
* Redis publisher plugin configuration. * Redis publisher plugin configuration.
* npm i git+https://git@github.com/pedrobmarin/ep_redis_publisher.git * npm i git+https://git@github.com/mconf/ep_redis_publisher.git
*/ */
"ep_redis_publisher": { "ep_redis_publisher": {
@ -451,16 +526,32 @@
}, },
/* /*
"ep_redis_publisher": { * From Etherpad 1.8.3 onwards, import and export of pads is always rate
"host": "localhost", * limited.
"port": 6379, *
"password": "PASSWORD" * The default is to allow at most 10 requests per IP in a 90 seconds window.
}, * After that the import/export request is rejected.
*
* See https://github.com/nfriedly/express-rate-limit for more options
*/ */
"importExportRateLimiting": {
// duration of the rate limit window (milliseconds)
"windowMs": 90000,
// maximum number of requests per IP to allow during the rate limit window
"max": 10
},
/* /*
* From Etherpad 1.9.0 onwards, when Etherpad is in production mode commits from individual users are rate limited * From Etherpad 1.8.3 onwards, the maximum allowed size for a single imported
* file is always bounded.
*
* File size is specified in bytes. Default is 50 MB.
*/
"importMaxFileSize": 52428800, // 50 * 1024 * 1024
/*
* From Etherpad 1.8.5 onwards, when Etherpad is in production mode commits from individual users are rate limited
* *
* The default is to allow at most 10 changes per IP in a 1 second window. * The default is to allow at most 10 changes per IP in a 1 second window.
* After that the change is rejected. * After that the change is rejected.
@ -471,7 +562,7 @@
// duration of the rate limit window (seconds) // duration of the rate limit window (seconds)
"duration": 1, "duration": 1,
// maximum number of chanes per IP to allow during the rate limit window // maximum number of changes per IP to allow during the rate limit window
"points": 100 "points": 100
}, },
@ -504,58 +595,12 @@
*/ */
"loglevel": "INFO", "loglevel": "INFO",
/*
* Logging configuration. See log4js documentation for further information:
* https://github.com/nomiddlename/log4js-node
*
* You can add as many appenders as you want here.
*/
"logconfig" :
{ "appenders": [
{ "type": "console"
//, "category": "access"// only logs pad access
}
/*
, { "type": "file"
, "filename": "your-log-file-here.log"
, "maxLogSize": 1024
, "backups": 3 // how many log files there're gonna be at max
//, "category": "test" // only log a specific category
}
*/
/*
, { "type": "logLevelFilter"
, "level": "warn" // filters out all log messages that have a lower level than "error"
, "appender":
{ Use whatever appender you want here }
}
*/
/*
, { "type": "logLevelFilter"
, "level": "error" // filters out all log messages that have a lower level than "error"
, "appender":
{ "type": "smtp"
, "subject": "An error occurred in your EPL instance!"
, "recipients": "bar@blurdybloop.com, baz@blurdybloop.com"
, "sendInterval": 300 // 60 * 5 = 5 minutes -- will buffer log messages; set to 0 to send a mail for every message
, "transport": "SMTP", "SMTP": { // see https://github.com/andris9/Nodemailer#possible-transport-methods
"host": "smtp.example.com", "port": 465,
"secureConnection": true,
"auth": {
"user": "foo@example.com",
"pass": "bar_foo"
}
}
}
}
*/
]
}, // logconfig
/* Override any strings found in locale directories */ /* Override any strings found in locale directories */
"customLocaleStrings": {} "customLocaleStrings": {},
}
/* Disable Admin UI tests */
"enableAdminUITests": false
}