FROM python:3.12-slim

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1 \
    PLAYWRIGHT_BROWSERS_PATH=/ms-playwright \
    HOME=/opt/kino-projekt

WORKDIR /app/backend

RUN apt-get update && apt-get install -y --no-install-recommends \
      ca-certificates curl ffmpeg openssh-client rsync \
    && rm -rf /var/lib/apt/lists/*

COPY backend/ ./
RUN pip install --no-cache-dir .[test] yt-dlp \
    && python -m playwright install --with-deps chromium \
    && pytest -q

RUN groupadd --gid 10001 kino \
    && useradd --uid 10001 --gid 10001 --create-home --home-dir /opt/kino-projekt --shell /usr/sbin/nologin kino \
    && mkdir -p /opt/kino-projekt/data /opt/kino-projekt/export /opt/kino-projekt/.ssh /opt/kino-projekt/.cache \
    && chown -R kino:kino /opt/kino-projekt /app /ms-playwright

USER kino
EXPOSE 8080
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8080"]
