services:
  # Marreta
  marreta:
    container_name: marreta
    image: ghcr.io/manualdousuario/marreta:latest
    ports:
      - "80:80"
    volumes:
      - ./app/cache:/app/cache
      - ./app/logs:/app/logs
    environment:
      - SITE_NAME=${SITE_NAME:-}
      - SITE_DESCRIPTION=${SITE_DESCRIPTION:-}
      - SITE_URL=${SITE_URL:-https://marreta.localhost}
      - DNS_SERVERS=${DNS_SERVER:-1.1.1.1,8.8.8.8}
      - LANGUAGE=${LANGUAGE:-pt-br}
      - LOG_LEVEL=${LOG_LEVEL:-WARNING}
      - SELENIUM_HOST=${SELENIUM_HOST:-selenium-hub:4444}
      - CLEANUP_DAYS=7 # Optional
    restart: unless-stopped
  # Selenium
  selenium-hub:
    image: selenium/hub:4.27.0-20241204
    container_name: selenium-hub
    environment:
      - SE_ENABLE_TRACING=false
      - GRID_MAX_SESSION=10
      - GRID_BROWSER_TIMEOUT=10
      - GRID_TIMEOUT=10
    depends_on:
      - marreta
    ports:
      - 4442:4442
      - 4443:4443
      - 4444:4444
  selenium-chromium:
    container_name: selenium-chromium
    image: selenium/node-chromium:4.27.0-20241204
    shm_size: 2gb
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
      - SE_ENABLE_TRACING=false
      - SE_NODE_MAX_SESSIONS=10
      - SE_NODE_OVERRIDE_MAX_SESSIONS=true
    entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh'
    depends_on:
      - selenium-hub
  selenium-firefox:
    container_name: selenium-firefox
    image: selenium/node-firefox:4.27.0-20241204
    shm_size: 2gb
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
      - SE_ENABLE_TRACING=false
      - SE_NODE_MAX_SESSIONS=10
      - SE_NODE_OVERRIDE_MAX_SESSIONS=true
    entrypoint: bash -c 'SE_OPTS="--host $$HOSTNAME" /opt/bin/entry_point.sh'
    depends_on:
      - selenium-hub