FROM python:3.14-slim
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

WORKDIR /opt/tisbackup

COPY entrypoint.sh /entrypoint.sh
COPY . /opt/tisbackup

ENV DEBIAN_FRONTEND=noninteractive
ENV UV_PROJECT_ENVIRONMENT=/usr/local
ENV UV_PYTHON_DOWNLOADS=never

RUN apt-get update && apt-get upgrade -y \
   && apt-get install --no-install-recommends -y rsync ssh cron \
   && rm -rf /var/lib/apt/lists/* \
   && uv sync --locked --no-dev --no-install-project \
   && rm -f /bin/uv /bin/uvx \
   && mkdir -p /var/spool/cron/crontabs \
   && echo '59 03 * * * root /bin/bash /opt/tisbackup/backup.sh' > /etc/crontab \
   && echo '' >> /etc/crontab \
   && crontab /etc/crontab

EXPOSE 8080

ENTRYPOINT ["/entrypoint.sh"]
CMD ["/usr/local/bin/python3.14","/opt/tisbackup/tisbackup_gui.py"]
