version: '3.8'

services:
  backend:
    build:
      context: ../..
      dockerfile: docker/backend/Dockerfile.fat
    container_name: stirling-pdf-backend-fat
    restart: on-failure:5
    deploy:
      resources:
        limits:
          memory: 6G
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:8080/api/v1/info/status | grep -q 'UP'"]
      interval: 5s
      timeout: 10s
      retries: 16
    ports:
      - "8080:8080"  # TODO: Remove in production - for debugging only
    expose:
      - "8080"
    volumes:
      - ../../stirling/latest/data:/usr/share/tessdata:rw
      - ../../stirling/latest/config:/configs:rw
      - ../../stirling/latest/logs:/logs:rw
    environment:
      DISABLE_ADDITIONAL_FEATURES: "false"
      SECURITY_ENABLELOGIN: "false"
      FAT_DOCKER: "true"
      INSTALL_BOOK_AND_ADVANCED_HTML_OPS: "false"
      LANGS: "en_GB,en_US,ar_AR,de_DE,fr_FR,es_ES,zh_CN,zh_TW,ca_CA,it_IT,sv_SE,pl_PL,ro_RO,ko_KR,pt_BR,ru_RU,el_GR,hi_IN,hu_HU,tr_TR,id_ID"
      SYSTEM_DEFAULTLOCALE: en-US
      UI_APPNAME: Stirling-PDF
      UI_HOMEDESCRIPTION: Full-featured Stirling-PDF with all capabilities
      UI_APPNAMENAVBAR: Stirling-PDF Fat
      SYSTEM_MAXFILESIZE: "200"
      METRICS_ENABLED: "true"
      SYSTEM_GOOGLEVISIBILITY: "true"
      SHOW_SURVEY: "true"
    networks:
      - stirling-network

  frontend:
    build:
      context: ../../frontend
      dockerfile: ../docker/frontend/Dockerfile
    container_name: stirling-pdf-frontend-fat
    restart: on-failure:5
    ports:
      - "3000:80"
    environment:
      BACKEND_URL: http://backend:8080
    depends_on:
      - backend
    networks:
      - stirling-network

networks:
  stirling-network:
    driver: bridge

volumes:
  stirling-data:
  stirling-config:
  stirling-logs: