FROM node:24-bookworm-slim
ENV NODE_ENV=production HOST=0.0.0.0 PORT=8090 SOCIAL_MEDIA_DIR=/data/media
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci --omit=dev && npm cache clean --force
COPY backend ./backend
COPY shared ./shared
COPY bulk ./bulk
COPY database ./database
COPY scripts/configure-installation.mjs scripts/manage-access.mjs ./scripts/
RUN mkdir -p /data/media && chown -R node:node /data /app
USER node
EXPOSE 8090
HEALTHCHECK --interval=15s --timeout=5s --start-period=15s --retries=8 CMD node -e "fetch('http://127.0.0.1:8090/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"
CMD ["node","backend/server.mjs"]
