# ---- Stage 1: build static assets ----
FROM node:22-alpine AS build

WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .

# TINODE_API_KEY is read by webpack.config.js (via DefinePlugin) at build time.
ARG TINODE_API_KEY=
ENV TINODE_API_KEY=$TINODE_API_KEY

RUN npm run build

# ---- Stage 2: serve with nginx ----
FROM nginx:alpine

COPY docker/nginx.conf /etc/nginx/conf.d/default.conf

WORKDIR /usr/share/nginx/html

COPY --from=build /app/umd ./umd
COPY --from=build /app/css/base.min.css ./css/base.min.css
COPY --from=build /app/index.html ./index.html
COPY --from=build /app/index-dev.html ./index-dev.html
COPY --from=build /app/manifest.json ./manifest.json
COPY --from=build /app/service-worker.js ./service-worker.js
COPY --from=build /app/version.js ./version.js
COPY --from=build /app/img ./img
COPY --from=build /app/audio ./audio
# Push notifications are not configured for this deployment yet.
RUN echo "" > ./firebase-init.js

HEALTHCHECK --interval=1m --timeout=3s --start-period=10s \
  CMD wget -q -O /dev/null http://localhost/ || exit 1

EXPOSE 80
