mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-19 06:03:34 +01:00
Fixed docker compose (#6337)
This commit is contained in:
parent
991038d5d5
commit
9f5ff6171a
6 changed files with 187 additions and 68 deletions
12
.env.default
12
.env.default
|
@ -4,15 +4,15 @@
|
|||
# Always ensure to load the env variables in every terminal session.
|
||||
# Otherwise the env variables will not be available
|
||||
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED=9001
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_TARGET=9001
|
||||
DOCKER_COMPOSE_APP_PORT_PUBLISHED=9001
|
||||
DOCKER_COMPOSE_APP_PORT_TARGET=9001
|
||||
|
||||
# IMPORTANT: When the env var DEFAULT_PAD_TEXT is unset or empty, then the pad is not established (not the landing page).
|
||||
# The env var DEFAULT_PAD_TEXT seems to be mandatory in the latest version of etherpad.
|
||||
DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT="Welcome to etherpad"
|
||||
|
||||
DOCKER_COMPOSE_APP_DEV_ADMIN_PASSWORD=
|
||||
DOCKER_COMPOSE_APP_ADMIN_PASSWORD=
|
||||
|
||||
DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE=db
|
||||
DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD=etherpad-lite-password
|
||||
DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER=etherpad-lite-user
|
||||
DOCKER_COMPOSE_POSTGRES_DATABASE=db
|
||||
DOCKER_COMPOSE_POSTGRES_PASSWORD=etherpad-lite-password
|
||||
DOCKER_COMPOSE_POSTGRES_USER=etherpad-lite-user
|
||||
|
|
18
.env.dev.default
Normal file
18
.env.dev.default
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Please copy and rename this file.
|
||||
#
|
||||
# !Attention!
|
||||
# Always ensure to load the env variables in every terminal session.
|
||||
# Otherwise the env variables will not be available
|
||||
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED=9001
|
||||
DOCKER_COMPOSE_APP_DEV_PORT_TARGET=9001
|
||||
|
||||
# IMPORTANT: When the env var DEFAULT_PAD_TEXT is unset or empty, then the pad is not established (not the landing page).
|
||||
# The env var DEFAULT_PAD_TEXT seems to be mandatory in the latest version of etherpad.
|
||||
DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT="Welcome to etherpad"
|
||||
|
||||
DOCKER_COMPOSE_APP_DEV_ADMIN_PASSWORD=
|
||||
|
||||
DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE=db
|
||||
DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD=etherpad-lite-password
|
||||
DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER=etherpad-lite-user
|
57
README.md
57
README.md
|
@ -43,6 +43,63 @@ We're looking for maintainers and have some funding available. Please contact J
|
|||
|
||||
## Installation
|
||||
|
||||
### Docker-Compose
|
||||
|
||||
```yaml
|
||||
services:
|
||||
app:
|
||||
user: "0:0"
|
||||
image: etherpad/etherpad:latest
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
- plugins:/opt/etherpad-lite/src/plugin_packages
|
||||
- etherpad-var:/opt/etherpad-lite/var
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin}
|
||||
DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4}
|
||||
DB_HOST: postgres
|
||||
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
|
||||
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
|
||||
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
|
||||
DB_TYPE: "postgres"
|
||||
DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
|
||||
# For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpad
|
||||
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- }
|
||||
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false}
|
||||
SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null}
|
||||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
environment:
|
||||
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
|
||||
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
|
||||
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
restart: always
|
||||
# Exposing the port is not needed unless you want to access this database instance from the host.
|
||||
# Be careful when other postgres docker container are running on the same port
|
||||
# ports:
|
||||
# - "5432:5432"
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data/pgdata
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
plugins:
|
||||
etherpad-var:
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Requirements
|
||||
|
||||
[Node.js](https://nodejs.org/) >= **18.18.2**.
|
||||
|
|
|
@ -278,51 +278,43 @@ docker run -d \
|
|||
## Ready to use Docker Compose
|
||||
|
||||
```yaml
|
||||
# Add this file to extend the docker-compose setup, e.g.:
|
||||
# docker-compose build --no-cache
|
||||
# docker-compose up -d --build --force-recreate
|
||||
|
||||
services:
|
||||
app:
|
||||
user: "0:0"
|
||||
image: etherpad/etherpad:latest
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
# no volume mapping of node_modules as otherwise the build-time installed plugins will be overwritten with the mount
|
||||
# the same applies to package.json and pnpm-lock.yaml in root dir as these would also get overwritten and build time installed plugins will be removed
|
||||
- ./plugins:/opt/etherpad-lite/src/plugin-packages
|
||||
- ./var:/opt/etherpad-lite/var
|
||||
- plugins:/opt/etherpad-lite/src/plugin_packages
|
||||
- etherpad-var:/opt/etherpad-lite/var
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
# change from development to production if needed
|
||||
NODE_ENV: production
|
||||
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_DEV_ADMIN_PASSWORD}
|
||||
DB_CHARSET: ${DOCKER_COMPOSE_APP_DEV_ENV_DB_CHARSET:-utf8mb4}
|
||||
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin}
|
||||
DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4}
|
||||
DB_HOST: postgres
|
||||
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE:?}
|
||||
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD:?}
|
||||
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PORT:-5432}
|
||||
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
|
||||
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
|
||||
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
|
||||
DB_TYPE: "postgres"
|
||||
DB_USER: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER:?}
|
||||
DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
|
||||
# For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpad
|
||||
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT:- }
|
||||
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DEV_ENV_DISABLE_IP_LOGGING:-true}
|
||||
SOFFICE: ${DOCKER_COMPOSE_APP_DEV_ENV_SOFFICE:-null}
|
||||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_DEV_ENV_TRUST_PROXY:-true}
|
||||
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- }
|
||||
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false}
|
||||
SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null}
|
||||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_DEV_PORT_TARGET:-9001}"
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
# Pass config parameters to the mysql server.
|
||||
# Find more information below when you need to generate the ssl-relevant file your self
|
||||
environment:
|
||||
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE:?}
|
||||
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD:?}
|
||||
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER:?}
|
||||
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
|
||||
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
|
||||
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
restart: always
|
||||
# Exposing the port is not needed unless you want to access this database instance from the host.
|
||||
|
@ -334,4 +326,6 @@ services:
|
|||
|
||||
volumes:
|
||||
postgres_data:
|
||||
plugins:
|
||||
etherpad-var:
|
||||
```
|
||||
|
|
63
docker-compose.dev.yml
Normal file
63
docker-compose.dev.yml
Normal file
|
@ -0,0 +1,63 @@
|
|||
version: "3.8"
|
||||
|
||||
# Add this file to extend the docker-compose setup, e.g.:
|
||||
# docker-compose build --no-cache
|
||||
# docker-compose up -d --build --force-recreate
|
||||
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
ETHERPAD_PLUGINS:
|
||||
# change from development to production if needed
|
||||
target: development
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
# no volume mapping of node_modules as otherwise the build-time installed plugins will be overwritten with the mount
|
||||
# the same applies to package.json and pnpm-lock.yaml in root dir as these would also get overwritten and build time installed plugins will be removed
|
||||
- ./src:/opt/etherpad-lite/src
|
||||
- ./bin:/opt/etherpad-lite/bin
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
# change from development to production if needed
|
||||
NODE_ENV: development
|
||||
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_DEV_ADMIN_PASSWORD}
|
||||
DB_CHARSET: ${DOCKER_COMPOSE_APP_DEV_ENV_DB_CHARSET:-utf8mb4}
|
||||
DB_HOST: postgres
|
||||
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE:?}
|
||||
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD:?}
|
||||
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PORT:-5432}
|
||||
DB_TYPE: "postgres"
|
||||
DB_USER: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER:?}
|
||||
# For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpad
|
||||
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT:- }
|
||||
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DEV_ENV_DISABLE_IP_LOGGING:-true}
|
||||
SOFFICE: ${DOCKER_COMPOSE_APP_DEV_ENV_SOFFICE:-null}
|
||||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_DEV_ENV_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_DEV_PORT_TARGET:-9001}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
# Pass config parameters to the mysql server.
|
||||
# Find more information below when you need to generate the ssl-relevant file your self
|
||||
environment:
|
||||
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE:?}
|
||||
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD:?}
|
||||
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER:?}
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
restart: always
|
||||
# Exposing the port is not needed unless you want to access this database instance from the host.
|
||||
# Be careful when other postgres docker container are running on the same port
|
||||
# ports:
|
||||
# - "5432:5432"
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data/pgdata
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
|
@ -1,55 +1,40 @@
|
|||
version: "3.8"
|
||||
|
||||
# Add this file to extend the docker-compose setup, e.g.:
|
||||
# docker-compose build --no-cache
|
||||
# docker-compose up -d --build --force-recreate
|
||||
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
ETHERPAD_PLUGINS:
|
||||
# change from development to production if needed
|
||||
target: development
|
||||
user: "0:0"
|
||||
image: etherpad/etherpad:latest
|
||||
tty: true
|
||||
stdin_open: true
|
||||
volumes:
|
||||
# no volume mapping of node_modules as otherwise the build-time installed plugins will be overwritten with the mount
|
||||
# the same applies to package.json and pnpm-lock.yaml in root dir as these would also get overwritten and build time installed plugins will be removed
|
||||
- ./src:/opt/etherpad-lite/src
|
||||
- ./bin:/opt/etherpad-lite/bin
|
||||
- plugins:/opt/etherpad-lite/src/plugin_packages
|
||||
- etherpad-var:/opt/etherpad-lite/var
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
# change from development to production if needed
|
||||
NODE_ENV: development
|
||||
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_DEV_ADMIN_PASSWORD}
|
||||
DB_CHARSET: ${DOCKER_COMPOSE_APP_DEV_ENV_DB_CHARSET:-utf8mb4}
|
||||
NODE_ENV: production
|
||||
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin}
|
||||
DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4}
|
||||
DB_HOST: postgres
|
||||
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE:?}
|
||||
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD:?}
|
||||
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PORT:-5432}
|
||||
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
|
||||
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
|
||||
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
|
||||
DB_TYPE: "postgres"
|
||||
DB_USER: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER:?}
|
||||
DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
|
||||
# For now, the env var DEFAULT_PAD_TEXT cannot be unset or empty; it seems to be mandatory in the latest version of etherpad
|
||||
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEV_ENV_DEFAULT_PAD_TEXT:- }
|
||||
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DEV_ENV_DISABLE_IP_LOGGING:-true}
|
||||
SOFFICE: ${DOCKER_COMPOSE_APP_DEV_ENV_SOFFICE:-null}
|
||||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_DEV_ENV_TRUST_PROXY:-true}
|
||||
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- }
|
||||
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false}
|
||||
SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null}
|
||||
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
|
||||
restart: always
|
||||
ports:
|
||||
- "${DOCKER_COMPOSE_APP_DEV_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_DEV_PORT_TARGET:-9001}"
|
||||
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
|
||||
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
# Pass config parameters to the mysql server.
|
||||
# Find more information below when you need to generate the ssl-relevant file your self
|
||||
environment:
|
||||
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_DATABASE:?}
|
||||
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PASSWORD:?}
|
||||
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_DEV_ENV_POSTGRES_USER:?}
|
||||
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
|
||||
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
|
||||
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
restart: always
|
||||
# Exposing the port is not needed unless you want to access this database instance from the host.
|
||||
|
@ -61,3 +46,5 @@ services:
|
|||
|
||||
volumes:
|
||||
postgres_data:
|
||||
plugins:
|
||||
etherpad-var:
|
||||
|
|
Loading…
Reference in a new issue