# Pyro Monitor — turné mini PC (Linux) image
# Build:  docker compose build
# Run:    docker compose up -d          (lásd docker-compose.yml)
FROM node:22-bookworm-slim

# ffmpeg: ALSA capture + LTC-dekódoláshoz a PCM-stream
# avahi-utils: Bonjour-hirdetés az iPad appnak (host D-Bus kell hozzá, opcionális)
# alsa-utils: arecord/amixer hibakereséshez a konténerben
RUN apt-get update \
 && apt-get install -y --no-install-recommends ffmpeg avahi-utils alsa-utils \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY pyro-server.js display.html ./
COPY assets/icon-ios.svg ./assets/

# minden írható állapot a /data köteten él (xml/, notes.json, overrides.json,
# usage.json, osc.json, lastinput.json, showdata.json)
ENV PYRO_DATA=/data
VOLUME /data

EXPOSE 8090
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s \
  CMD node -e "require('http').get('http://localhost:'+(process.env.PYRO_PORT||8090)+'/health',r=>process.exit(r.statusCode===200?0:1)).on('error',()=>process.exit(1))"
# node PID 1-ként is korrekt: SIGTERM-re lelövi az ffmpeg-et és kilép
CMD ["node", "pyro-server.js"]
