Use a unified docker-compose file

This commit is contained in:
erdnaxe 2020-02-02 23:55:37 +01:00
parent 370e8dc871
commit 47b7980502
29 changed files with 354 additions and 525 deletions

6
etherpad/Dockerfile Normal file
View file

@ -0,0 +1,6 @@
FROM etherpad/etherpad
# Change instance settings
ENV NODE_ENV=production
ENV TRUST_PROXY=true
COPY settings.json /opt/etherpad-lite/settings.json

View file

@ -1,15 +0,0 @@
version: "3"
services:
etherpad:
image: etherpad/etherpad
environment:
- NODE_ENV=production
- POSTGRES_USER=etherpad
- "POSTGRES_PASSWORD=${POSTGRES_PASSWD}"
- POSTGRES_DB=etherpad
ports:
- 8084:9001
volumes:
- ./settings.json:/opt/etherpad-lite/settings.json:ro
restart: always

View file

@ -1 +0,0 @@
POSTGRES_PASSWD=asupersecurepassword

View file

@ -22,6 +22,7 @@
*
* Would read the configuration values for those items from the environment
* variables PORT, MINIFY and SKIN_NAME.
*
* If PORT and SKIN_NAME variables were not defined, the default values 9001 and
* "colibris" would be used. The configuration value "minify", on the other
* hand, does not have a default indicated. Thus, if the environment variable
@ -50,13 +51,13 @@
/*
* Name your instance!
*/
"title": "Etherpad",
"title": "${TITLE:Etherpad}",
/*
* favicon default name
* alternatively, set up a fully specified Url to your own favicon
*/
"favicon": "favicon.ico",
"favicon": "${FAVICON:favicon.ico}",
/*
* Skin name.
@ -69,20 +70,20 @@
* - "colibris": the new experimental skin (since Etherpad 1.8), candidate to
* become the default in Etherpad 2.0
*/
"skinName": "no-skin",
"skinName": "${SKIN_NAME:colibris}",
/*
* IP and port which etherpad should bind at
*/
"ip": "0.0.0.0",
"port" : 9001,
"ip": "${IP:0.0.0.0}",
"port": "${PORT:9001}",
/*
* Option to hide/show the settings.json in admin page.
*
* Default option is set to true
*/
"showSettingsInAdminPage" : true,
"showSettingsInAdminPage": "${SHOW_SETTINGS_IN_ADMIN_PAGE:true}",
/*
* Node native SSL support
@ -118,32 +119,14 @@
* https://www.npmjs.com/package/ueberdb2
*/
"dbType" : "postgres",
"dbSettings" : {
"user" : "${POSTGRES_USER}",
"host" : "10.128.0.31",
"port" : 5432,
"password": "${POSTGRES_PASSWORD}",
"database": "${POSTGRES_DB}"
},
/*
* An Example of MySQL Configuration (commented out).
*
* 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": "postgres",
"dbSettings": {
"host": "10.128.0.31",
"port": 5432,
"database": "etherpad",
"user": "etherpad",
"password": "${POSTGRES_PASSWORD}"
},
/*
* The default text of a pad
@ -156,57 +139,57 @@
* Change them if you want to override.
*/
"padOptions": {
"noColors": false,
"showControls": true,
"showChat": true,
"showLineNumbers": true,
"noColors": false,
"showControls": true,
"showChat": true,
"showLineNumbers": true,
"useMonospaceFont": false,
"userName": false,
"userColor": false,
"rtl": false,
"alwaysShowChat": false,
"chatAndUsers": false,
"lang": "en-gb"
"userName": false,
"userColor": false,
"rtl": false,
"alwaysShowChat": false,
"chatAndUsers": false,
"lang": "en-gb"
},
/*
* Pad Shortcut Keys
*/
"padShortcutEnabled" : {
"altF9" : true, /* focus on the File Menu and/or editbar */
"altC" : true, /* focus on the Chat window */
"cmdShift2" : true, /* shows a gritter popup showing a line author */
"delete" : true,
"return" : true,
"esc" : true, /* in mozilla versions 14-19 avoid reconnecting pad */
"cmdS" : true, /* save a revision */
"tab" : true, /* indent */
"cmdZ" : true, /* undo/redo */
"cmdY" : true, /* redo */
"cmdI" : true, /* italic */
"cmdB" : true, /* bold */
"cmdU" : true, /* underline */
"cmd5" : true, /* strike through */
"cmdShiftL" : true, /* unordered list */
"cmdShiftN" : true, /* ordered list */
"cmdShift1" : true, /* ordered list */
"cmdShiftC" : true, /* clear authorship */
"cmdH" : true, /* backspace */
"ctrlHome" : true, /* scroll to top of pad */
"pageUp" : true,
"pageDown" : true
"altF9": true, /* focus on the File Menu and/or editbar */
"altC": true, /* focus on the Chat window */
"cmdShift2": true, /* shows a gritter popup showing a line author */
"delete": true,
"return": true,
"esc": true, /* in mozilla versions 14-19 avoid reconnecting pad */
"cmdS": true, /* save a revision */
"tab": true, /* indent */
"cmdZ": true, /* undo/redo */
"cmdY": true, /* redo */
"cmdI": true, /* italic */
"cmdB": true, /* bold */
"cmdU": true, /* underline */
"cmd5": true, /* strike through */
"cmdShiftL": true, /* unordered list */
"cmdShiftN": true, /* ordered list */
"cmdShift1": true, /* ordered list */
"cmdShiftC": true, /* clear authorship */
"cmdH": true, /* backspace */
"ctrlHome": true, /* scroll to top of pad */
"pageUp": true,
"pageDown": true
},
/*
* Should we suppress errors from being visible in the default Pad Text?
*/
"suppressErrorsInPadText" : false,
"suppressErrorsInPadText": false,
/*
* If this option is enabled, a user must have a session to access pads.
* This effectively allows only group pads to be accessed.
*/
"requireSession" : false,
"requireSession": false,
/*
* Users may edit pads but not create new ones.
@ -214,13 +197,13 @@
* Pad creation is only via the API.
* This applies both to group pads and regular pads.
*/
"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,
"sessionNoPassword": false,
/*
* If true, all css & js will be minified before sending to the client.
@ -228,7 +211,7 @@
* This will improve the loading performance massively, but makes it difficult
* to debug the javascript/css
*/
"minify" : true,
"minify": true,
/*
* How long may clients use served javascript code (in seconds)?
@ -236,7 +219,7 @@
* Not setting this may cause problems during deployment.
* Set to 0 to disable caching.
*/
"maxAge" : 21600, // 60 * 60 * 6 = 6 hours
"maxAge": 21600, // 60 * 60 * 6 = 6 hours
/*
* Absolute path to the Abiword executable.
@ -245,7 +228,7 @@
* it to null disables Abiword and will only allow plain text and HTML
* import/exports.
*/
"abiword" : null,
"abiword": null,
/*
* This is the absolute path to the soffice executable.
@ -253,7 +236,7 @@
* LibreOffice can be used in lieu of Abiword to export pads.
* Setting it to null disables LibreOffice exporting.
*/
"soffice" : null,
"soffice": null,
/*
* Path to the Tidy executable.
@ -261,35 +244,41 @@
* Tidy is used to improve the quality of exported pads.
* Setting it to null disables Tidy.
*/
"tidyHtml" : null,
"tidyHtml": null,
/*
* Allow import of file types other than the supported ones:
* txt, doc, docx, rtf, odt, html & htm
*/
"allowUnknownFileEnds" : true,
"allowUnknownFileEnds": true,
/*
* This setting is used if you require authentication of all users.
*
* Note: "/admin" always requires authentication.
*/
"requireAuthentication" : false,
"requireAuthentication": false,
/*
* Require authorization by a module, or a user with is_admin set, see below.
*/
"requireAuthorization" : false,
"requireAuthorization": false,
/*
* When you use NGINX or another proxy/load-balancer set this to true.
*
* This is especially necessary when the reverse proxy performs SSL
* termination, otherwise the cookies will not have the "secure" flag.
*
* The other effect will be that the logs will contain the real client's IP,
* instead of the reverse proxy's IP.
*/
"trustProxy" : false,
"trustProxy": "${TRUST_PROXY:false}",
/*
* Privacy: disable IP logging
*/
"disableIPlogging" : false,
"disableIPlogging": false,
/*
* Time (in seconds) to automatically reconnect pad when a "Force reconnect"
@ -297,7 +286,7 @@
*
* Set to 0 to disable automatic reconnection.
*/
"automaticReconnectionTimeout" : 0,
"automaticReconnectionTimeout": 0,
/*
* By default, when caret is moved out of viewport, it scrolls the minimum
@ -351,20 +340,20 @@
* follow the section "secure your installation" in README.md
*/
/*
"users": {
"admin": {
// "password" can be replaced with "hash" if you install ep_hash_auth
"password": "changeme1",
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password": "${ADMIN_PASSWORD}",
"is_admin": true
},
"user": {
// "password" can be replaced with "hash" if you install ep_hash_auth
"password": "changeme1",
// 1) "password" can be replaced with "hash" if you install ep_hash_auth
// 2) please note that if password is null, the user will not be created
"password": "${USER_PASSWORD}",
"is_admin": false
}
},
*/
/*
* Restrict socket.io transport methods
@ -419,12 +408,12 @@
*/
"exposeVersion": false,
/*
/*
* The log level we are using.
*
* Valid values: DEBUG, INFO, WARN, ERROR
*/
"loglevel": "INFO",
"loglevel": "${LOGLEVEL:INFO}",
/*
* Logging configuration. See log4js documentation for further information: