# Image: Python + btodos (Jinja2 for HTML templates).
FROM python:3.13-alpine

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    BTODOS_HOST=0.0.0.0

WORKDIR /app
COPY pyproject.toml README.md ./
COPY src/ ./src/

RUN pip install --no-cache-dir . \
    && rm -rf /app/src /app/pyproject.toml /root/.cache \
    && adduser -D -H btodos

USER btodos
WORKDIR /work
EXPOSE 4321

# The workspace (config, cache, Markdown output) is mounted at /work.
CMD ["btodos", "serve"]
