FROM node:22-slim AS frontend
RUN corepack enable pnpm
WORKDIR /app/web
COPY web/package.json ./
RUN pnpm install
COPY web/ ./
RUN pnpm run build

FROM node:22-slim AS production
RUN corepack enable pnpm
WORKDIR /app

# Build tools needed to compile better-sqlite3 native addon
RUN apt-get update && apt-get install -y python3 make g++ && rm -rf /var/lib/apt/lists/*

COPY server/package.json ./server/
WORKDIR /app/server
RUN pnpm install --prod

COPY server/ ./
COPY --from=frontend /app/web/dist /app/web/dist

EXPOSE 3456

CMD ["pnpm", "exec", "tsx", "src/index.ts"]
