# Build stage
FROM --platform=$TARGETPLATFORM node:20-slim AS builder

WORKDIR /app

# Copy package files
COPY backend/package*.json  ./backend/
COPY frontend/package*.json ./frontend/

# Copy source files
COPY . .

# Build frontend and backend
RUN npm install
RUN npm run build --workspaces

# Production stage
FROM --platform=$TARGETPLATFORM debian:testing-20250203

RUN apt-get update && apt-get install -y \
    mpv npm yt-dlp pulseaudio pulseaudio-utils \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Install only production dependencies
COPY backend/package*.json ./
COPY package-lock.json ./
RUN npm ci --production

# Copy built files
COPY --from=builder /app/backend/build ./build
COPY --from=builder /app/frontend/dist ./dist/frontend

EXPOSE 3000
CMD ["node", "build/server.js"] 
