FROM python:3.12-slim

WORKDIR /app

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    DASHBOARD_HOST=0.0.0.0 \
    DASHBOARD_PORT=8765 \
    DASHBOARD_OPEN_BROWSER=false

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY config.py run_tablero.py script.py ./
COPY auth/ auth/
COPY dashboard/ dashboard/
COPY export/ export/
COPY services/ services/
COPY web/ web/
COPY config/ config/

RUN mkdir -p output

EXPOSE 8765

HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
    CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8765/api/health')" || exit 1

CMD ["python", "run_tablero.py", "--no-browser"]
