# Stage 1 — Build client FROM node:20-alpine AS builder WORKDIR /app COPY client/package*.json ./client/ RUN cd client && npm install COPY client/ ./client/ RUN cd client && npm run build # Stage 2 — Production FROM node:20-alpine RUN apk add --no-cache ffmpeg openssl python3 py3-pip \ && pip3 install --break-system-packages pywidevine WORKDIR /app COPY server/package*.json ./server/ RUN cd server && npm install --production COPY server/ ./server/ COPY --from=builder /app/client/dist ./client/dist ENV PORT=3001 ENV DB_PATH=/data/db/ofapp.db ENV MEDIA_PATH=/data/media ENV DOWNLOAD_DELAY=1000 EXPOSE 3001 3443 CMD ["node", "server/index.js"]