FROM node:24-bookworm-slim WORKDIR /app ENV NODE_ENV=production COPY package.json ./ COPY src ./src COPY public ./public RUN mkdir -p /data && chown -R node:node /data /app USER node EXPOSE 3000 EXPOSE 25 EXPOSE 465 EXPOSE 587 EXPOSE 2525 VOLUME ["/data"] HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \ CMD node -e "fetch('http://127.0.0.1:3000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" CMD ["node", "src/server.js"]