FROM node:20-alpine

WORKDIR /app

# Install OS dependencies for audio processing
RUN apk add --no-cache ffmpeg chromaprint

# Install dependencies
COPY server/package*.json ./server/
RUN cd server && npm ci --omit=dev

# Copy app source
COPY server/ ./server/
COPY public/ ./public/
COPY shared/ ./shared/

# Set ownership and switch to non-root user
RUN chown -R node:node /app
USER node

# Start server
WORKDIR /app/server
EXPOSE 3000
CMD ["node", "index.js"]
