FROM python:3.13-trixie

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/usr/local/lib/python3.13/site-packages
ENV ZIMPHONY_DATA_DIR=/app/data
ENV DATABASE_URL=sqlite:////app/data/platform.db
ENV LICENSE_CACHE_PATH=/app/data/license-status-cache.json

WORKDIR /app
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        cpanminus \
        libauthen-ntlm-perl \
        libcgi-pm-perl \
        libcrypt-openssl-rsa-perl \
        libdata-uniqid-perl \
        libencode-imaputf7-perl \
        libfile-copy-recursive-perl \
        libfile-tail-perl \
        libhtml-parser-perl \
        libio-socket-inet6-perl \
        libio-socket-ssl-perl \
        libio-tee-perl \
        libjson-webtoken-perl \
        libmail-imapclient-perl \
        libmodule-scandeps-perl \
        libparse-recdescent-perl \
        libproc-processtable-perl \
        libreadonly-perl \
        libregexp-common-perl \
        libsys-meminfo-perl \
        libterm-readkey-perl \
        libtest-deep-perl \
        libtest-mockobject-perl \
        libtest-nowarnings-perl \
        libtest-pod-perl \
        libtest-warn-perl \
        libunicode-string-perl \
        liburi-perl \
        libwww-perl \
        time \
    && rm -rf /var/lib/apt/lists/*

COPY vendor/imapsync/imapsync /usr/local/bin/imapsync
RUN chmod +x /usr/local/bin/imapsync

COPY backend/requirements.txt .
RUN pip install --no-cache-dir --upgrade pip==26.1.2 \
    && pip install --no-cache-dir -r requirements.txt

COPY backend/encoded ./backend.dist
RUN chmod +x /app/backend.dist/zimphony-backend \
    && mkdir -p /app/data

EXPOSE 8000
CMD ["/app/backend.dist/zimphony-backend"]
