FROM node:22-bookworm-slim AS base WORKDIR /app COPY --chown=node:node package.json package-lock.json ./ RUN npm ci --omit=dev --ignore-scripts --no-audit --no-fund COPY --chown=node:node server.mjs studio.mjs flow-*.mjs query-events.mjs ./ COPY --chown=node:node public ./public RUN mkdir /app/data && chown node:node /app/data FROM base AS test COPY --chown=node:node *.test.mjs ./ USER node RUN npm test FROM base AS runtime USER node ENV PORT=3080 DATA_DIR=/app/data EXPOSE 3080 CMD ["npm", "start"]