# ---- build stage ----
FROM node:20-alpine AS build
WORKDIR /NautilusDesk

# Needed for node-gyp / native deps on Alpine
RUN apk add --no-cache python3 make g++ git

# Install deps
COPY package*.json ./
RUN npm install

# Copy source + build
COPY . .
RUN npm run build

# ---- runtime stage ----
FROM node:20-alpine AS runtime
WORKDIR /NautilusDesk/app

ENV NODE_ENV=production
ENV PORT=3000
ENV HOST=0.0.0.0

RUN addgroup -S nodegroup && adduser -S nodeuser -G nodegroup

COPY --from=build /NautilusDesk/app/.output ./.output

EXPOSE 3000
USER nodeuser

CMD ["node", ".output/server/index.mjs"]
