FROM node:24-bookworm-slim

ENV NODE_ENV=production \
    FC_LIBRARY_DATA_DIR=/var/lib/fc-emulator \
    FC_LIBRARY_HOST=0.0.0.0 \
    FC_LIBRARY_PORT=8282 \
    FC_LIBRARY_DIRECTORY_BROWSE_ROOT=/library \
    FC_LIBRARY_DIRECTORY_BROWSE_VOLUMES_ONLY=no

WORKDIR /opt/fc-emulator

RUN mkdir -p /var/lib/fc-emulator /library \
    && chown node:node /var/lib/fc-emulator /library

COPY --chown=node:node app/package.json app/server.js ./
COPY --chown=node:node app/public ./public
COPY --chown=node:node app/resources ./resources

USER node
EXPOSE 8282

HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
  CMD node -e "fetch('http://127.0.0.1:8282/api/health').then(response => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))"

CMD ["node", "server.js"]
