# Stage 1: Build frontend FROM node:20-alpine AS builder WORKDIR /app/src COPY src/package.json ./ RUN npm install COPY src/ ./ RUN npm run build # Stage 2: Production server FROM node:20-alpine WORKDIR /app COPY package.json ./ RUN npm install --omit=dev COPY server.js ./ COPY --from=builder /app/src/dist ./public RUN mkdir -p /app/data EXPOSE 8080 CMD ["node", "server.js"]