FROM node:20-alpine AS client-builder
WORKDIR /client
COPY client/package*.json ./
RUN npm ci
COPY client/ ./
RUN npm run build

FROM node:20-alpine AS production
WORKDIR /app

LABEL org.opencontainers.image.title="Enkelbudget" \
      org.opencontainers.image.description="Enkel månadsbudget och lånehanterare" \
      net.unraid.docker.webui="http://[IP]:[PORT:7842]" \
      net.unraid.docker.icon="/mnt/user/noah/images/icons/enkelbudget.png" \
      net.unraid.docker.managed="true"

COPY server/package*.json ./
RUN npm install --omit=dev
COPY server/ ./
COPY --from=client-builder /client/dist ./public
RUN mkdir -p /app/data && chmod +x /app/entrypoint.sh
EXPOSE 7842
CMD ["/app/entrypoint.sh"]
