FROM node:20-slim AS frontend-build
WORKDIR /app

# Required: build-time injection for frontend
ARG VITE_BACKEND_URL
ENV VITE_BACKEND_URL=${VITE_BACKEND_URL}

COPY hls-player/package*.json hls-player/
RUN cd hls-player && npm ci

COPY hls-player hls-player
RUN cd hls-player && npm run build

FROM node:20-slim AS backend-runtime
RUN apt-get update \
  && apt-get install -y ffmpeg \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY backend/package*.json backend/
RUN cd backend && npm ci --omit=dev

COPY backend backend
COPY --from=frontend-build /app/hls-player/dist hls-player/dist

ENV NODE_ENV=production
EXPOSE 2738

CMD ["node", "backend/index.js"]
