# Stage 1: build
FROM node:22-slim AS build
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build

# Stage 2: runtime
FROM node:22-slim AS runtime
WORKDIR /app
ENV NODE_ENV=production
COPY package.json package-lock.json ./
RUN npm ci --omit=dev && npm cache clean --force
COPY --from=build /app/dist ./dist
COPY scripts ./scripts
# Contenuti del Biohacking Campus (generati con sync-campus e committati nel repo)
COPY campus-content ./campus-content

# Tre database distinti, tutti nello stesso volume:
#  - piattaforme.db  utenti e sessioni di quest'app (NON quelli del sito)
#  - longevity.db    misure e punteggi, senza nomi
#  - identity.db     la mappatura codice ↔ persona, l'unico file con dei nomi dentro
ENV HOST=0.0.0.0 \
    PORT=4321 \
    DB_PATH=/app/data/piattaforme.db \
    LONGEVITY_DB_PATH=/app/data/longevity.db \
    IDENTITY_DB_PATH=/app/data/identity.db
EXPOSE 4321
CMD ["node", "./dist/server/entry.mjs"]
