version: '3.8'

services:
  app:
    build: .
    ports:
      - "5000:5000"
    environment:
      - FLASK_ENV=development
      - DATABASE_URL=sqlite:///app/data/snauw_counter.db
      - SECRET_KEY=development-secret-key-not-for-production
    volumes:
      - ./app:/app/app
      - ./migrations:/app/migrations
      - sqlite_data:/app/data
    command: flask run --host=0.0.0.0 --port=5000 --debug

  # Optional PostgreSQL for future use
  # db:
  #   image: postgres:15-alpine
  #   environment:
  #     - POSTGRES_DB=snauw_counter
  #     - POSTGRES_USER=snauw_user
  #     - POSTGRES_PASSWORD=snauw_pass
  #   ports:
  #     - "5432:5432"
  #   volumes:
  #     - postgres_data:/var/lib/postgresql/data
  #   healthcheck:
  #     test: ["CMD-SHELL", "pg_isready -U snauw_user -d snauw_counter"]
  #     interval: 10s
  #     timeout: 5s
  #     retries: 5

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

volumes:
  sqlite_data:
  redis_data:
