# Build stage
FROM node:24-alpine AS builder

WORKDIR /app

COPY package.json package-lock.json ./
RUN npm install

COPY . .
RUN node ace build

# Production stage
FROM node:24-alpine AS production

WORKDIR /app

ENV NODE_ENV=production
ENV PORT=8080
ENV HOST=0.0.0.0

COPY --from=builder /app/build ./
RUN npm install --omit=dev

RUN addgroup -g 1001 -S appgroup && \
    adduser -u 1001 -S appuser -G appgroup && \
    mkdir -p /app/data /app/logs/tr069 && \
    chown -R appuser:appgroup /app/data /app/logs

USER appuser

EXPOSE 8080

CMD ["node", "bin/server.js"]
