FROM node:20-slim AS build

WORKDIR /app/apps/visualizer

COPY apps/visualizer/package.json apps/visualizer/package-lock.json ./
RUN npm ci

COPY apps/visualizer/ ./
RUN npm run build

FROM node:20-slim

WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends apache2-utils && rm -rf /var/lib/apt/lists/* && mkdir -p /tokens /srv /auth

COPY --from=build /app/apps/visualizer/dist /srv
COPY services/frontend/server.mjs /app/services/frontend/server.mjs

ENV NODE_ENV=production
ENV PORT=8081

EXPOSE 8081

CMD ["node", "services/frontend/server.mjs"]
