FROM python:3.12-slim

ENV PYTHONUNBUFFERED=1 \
    PIP_NO_CACHE_DIR=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1

# git is required for clone/pull/push; openssh-client for ssh remotes (future).
RUN apt-get update \
 && apt-get install -y --no-install-recommends git openssh-client ca-certificates tini \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt

COPY catalog.py /app/catalog.py
COPY templates /app/templates

# Forge globally so the bot identity persists even if env vars get dropped.
RUN git config --global user.name "obsidian-ai" \
 && git config --global user.email "obsidian-ai@s8n.ru" \
 && git config --global pull.rebase true \
 && git config --global init.defaultBranch main

EXPOSE 5055
ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["python", "/app/catalog.py"]
