FROM node:22-bookworm-slim

# tzdata lets the TZ env var control what counts as "today" when logging a dose
RUN apt-get update \
    && apt-get install -y --no-install-recommends tzdata \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
ENV NODE_ENV=production PORT=3000 DATA_DIR=/data

COPY package.json package-lock.json ./
COPY scripts ./scripts
RUN npm ci --omit=dev

COPY server ./server
COPY public ./public

EXPOSE 3000
VOLUME ["/data"]

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