version : "3.7"

volumes:
  db:
    name: etherpad-db-pg
  deleted-pads:
    name: deleted-pads-standard
  api-key:
    name: etherpad-api-key

networks:
  app-db:
    name: etherpad-queries-database
  dpad-app:
    name: etherpad-dpad-queries-app
  proxy:
    external: true

services:
  db:
    image: postgres:12
    container_name: etherpad_db
    volumes:
      - db:/var/lib/postgresql/data
    env_file: ./secrets/etherpad-db.secrets
    networks:
      - app-db
    restart: unless-stopped

  app:
    image: registry.picasoft.net/pica-etherpad:1.8.6
    build: ..
    container_name: etherpad_app
    env_file: ./secrets/etherpad-app.secrets
    volumes:
      - ./settings.json:/opt/etherpad-lite/settings.json:ro
      - api-key:/mountedAPIkey
    command: ["--apikey", "/mountedAPIkey/APIKEY.txt"]
    labels:
      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
      traefik.enable: true
    environment:
      DB_HOST: "etherpad_db"
      LOGLEVEL: "INFO"
      MINIFY: "true"
      PORT: 8080
      THEME: "colibris"
      TITLE: "Picapad"
      TRUST_PROXY: "true"
    networks:
      - proxy
      - app-db
      - dpad-app
    depends_on:
      - db
    restart: unless-stopped

  delete-pad-after-delay:
    image: registry.picasoft.net/pica-etherpad-delete-after-delay:picasoft-docker.1.0
    container_name: etherpad_delete-pad-after-delay
    build:
      context: https://gitlab.utc.fr/picasoft/projets/delete-pad-after-delay.git#picasoft-docker.1.0
    volumes:
      - api-key:/mountedAPIkey:ro
      - deleted-pads:/opt/etherpad-lite/deleted_pads
    networks:
      - dpad-app
    environment:
      # Must match app container name and port
      URL: "http://etherpad_app:8080"
      # In seconds (2 years). MUST be COHERENT with settings.json
      DEL: 71712000
      # Same mount point than deleted-pads
      DIR: "/opt/etherpad-lite/deleted_pads"
      # Same mount point than api-key + APIKEY.txt
      APIKEY_PATH: "/mountedAPIkey/APIKEY.txt"
    depends_on:
      - app
    restart: unless-stopped