version: '3.8'

services:
  whatshooked:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: whatshooked-server
    ports:
      - "0.0.0.0:8825:8825"
    volumes:
      # Mount config file
      - type: bind                                                                                                                                                                            
        source: ./bin/config.json                                                                                                                                                             
        target: /app/config.json                                                                                                                                                              
  

      # Mount sessions directory for WhatsApp authentication persistence
      - ./bin/sessions:/app/sessions

      # Mount data directory for storing  data files
      - ./bin/data/:/app/data/

    restart: unless-stopped

    # Health check
    healthcheck:
      test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8825/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

    # Environment variables (optional - can override config.json settings)
    # environment:
    #   - LOG_LEVEL=info



    # Resource limits (optional)
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 1024M
        # reservations:
        #   cpus: '0.25'
        #   memory: 128M

# Optional: Add networks for more complex setups

# networks:
#   default:
#     external: true
#     name: podman