Newer
Older
#Everything in this dockerfile is duplicated: there is a "standard" instance and a "week" instance.
#Each one of them has its own 3 volumes, 2 networks and 3 containers.
#The settings.json and settings_week.json in the directory of this docker-compose are bound (mounted) to the app containers.
#It also requires the existence of "secret" files containing passwords.
#This docker-compose requires the existence of an external network, "proxy". Traefik labels have been added, so "proxy" can be a traefik reverse-proxy.
name: etherpad-db-pg
name: weekpad-db
#BACKUP OF DELETED PADS
standard_deleted-pads:
name: deleted-pads-standard
name: deleted-pads-week
#FOR SHARING THE API KEY between app and dpad (written to a text file by app)
standard_api-key:
name: etherpad_standard_api-key
week_api-key:
name: etherpad_week_api-key
#app-db: used by the app to query its postgresql database
standard_app-db:
name: etherpad_standard_app-queries-database
week_app-db:
name: etherpad_week_app-queries-database
#dpad-app: used by the dpad script to query the app via its web API
standard_dpad-app:
name: etherpad_standard_dpad-queries-app
week_dpad-app:
name: etherpad_week-dpad-queries-app
#this network has access to the apps, exposing their web frontends
proxy:
standard_db:
image: postgres:12
container_name: etherpad_standard_db
volumes:
- standard_db:/var/lib/postgresql/data
env_file: ./secrets/etherpad-db.secrets
networks:
- standard_app-db
restart: unless-stopped
week_db:
image: postgres:12
container_name: etherpad_week_db
volumes:
- week_db:/var/lib/postgresql/data
env_file: ./secrets/etherpad-week-db.secrets
networks:
- week_app-db
standard_app:
image: registry.picasoft.net/pica-etherpad:1.8.6
container_name: etherpad_standard_app
env_file: ./secrets/etherpad-app.secrets
volumes:
- ./settings.json:/opt/etherpad-lite/settings.json
- standard_deleted-pads:/opt/etherpad-lite/deleted_pads
- standard_api-key:/mountedAPIkey
command: ["--apikey", "/mountedAPIkey/APIKEY.txt"]
traefik.http.routers.etherpad-app.entrypoints: websecure
traefik.http.routers.etherpad-app.rule: Host(`pad.picasoft.net`)
traefik.http.services.etherpad-app.loadbalancer.server.port: 8080
LOGLEVEL: "INFO"
THEME: "colibris"
TITLE: "Picapad"
TRUST_PROXY: "true"
- proxy
- standard_app-db
- standard_dpad-app
depends_on:
restart: unless-stopped
image: registry.picasoft.net/pica-etherpad:1.8.6
container_name: etherpad_week_app
build: .
env_file: ./secrets/etherpad-week-app.secrets
volumes:
- ./settings_week.json:/opt/etherpad-lite/settings.json
- week_deleted-pads:/opt/etherpad-lite/deleted_pads
- week_api-key:/mountedAPIkey
command: ["--apikey", "/mountedAPIkey/APIKEY.txt"]
traefik.http.routers.etherpad-week-app.entrypoints: websecure
traefik.http.routers.etherpad-week-app.rule: Host(`week.pad.picasoft.net`)
traefik.http.services.etherpad-week-app.loadbalancer.server.port: 8080
LOGLEVEL: "INFO"
MINIFY: "true"
PORT: 8080
THEME: "colibris"
TITLE: "Picapad Hebdo"
TRUST_PROXY: "true"
depends_on:
- proxy
- week_app-db
- week_dpad-app
restart: unless-stopped
# script COMPLEMENTARY to etherpad plugin ep_delete_after_delay
standard_delete-pad-after-delay:
build:
context: https://gitlab.utc.fr/picasoft/projets/delete-pad-after-delay.git
- type: volume
source: standard_api-key
target: /mountedAPIkey
read_only: true
volume:
nocopy: true
- standard_deleted-pads:/opt/etherpad-lite/deleted_pads
- standard_dpad-app
environment:
URL: "http://standard_app:8080" #must be coherent with etherpad-wee-app.environment.port
DEL: 71712000 #in seconds (2 years). MUST be COHERENT with settings.json ep_delete_after_delay{
DIR: "/opt/etherpad-lite/deleted_pads"
APIKEY_PATH: "/mountedAPIkey/APIKEY.txt"
container_name: etherpad_standard_delete-pad-after-delay
depends_on:
- standard_app
# script COMPLEMENTARY to etherpad plugin ep_delete_after_delay
week_delete-pad-after-delay:
build:
context: https://gitlab.utc.fr/picasoft/projets/delete-pad-after-delay.git
target: /mountedAPIkey
read_only: true
volume:
nocopy: true
- week_deleted-pads:/opt/etherpad-lite/deleted_pads
networks:
- week_dpad-app
URL: "http://week_app:8080" #must be coherent with etherpad-wee-app.environment.port
DEL: 1209600 #14 days. MUST be COHERENT with settings_week.json ep_delete_after_delay{
DIR: "/opt/etherpad-lite/deleted_pads"
APIKEY_PATH: "/mountedAPIkey/APIKEY.txt"
container_name: etherpad_week_delete-pad-after-delay
depends_on:
- week_app