FROM node:22-alpine
WORKDIR /app
COPY package.json ./
COPY src ./src
COPY bin ./bin
COPY public ./public

# Run as an unprivileged user; the database lives on a mounted volume at /data.
RUN mkdir -p /data && chown node:node /data
USER node
ENV PORT=8888 DB_PATH=/data/a888.db NODE_ENV=production
VOLUME /data
EXPOSE 8888

HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://127.0.0.1:${PORT}/health || exit 1
CMD ["npm", "start"]
