# Validate the published archive at runtime; this is not the source build stage.
FROM node:26-bookworm-slim AS archive
WORKDIR /unpack
COPY artifacts/kiro-media-server.tar.gz /tmp/kiro-media-server.tar.gz
RUN tar -xzf /tmp/kiro-media-server.tar.gz -C /unpack

FROM node:26-bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg ca-certificates python3 make g++ && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=archive /unpack/ ./
RUN npm ci --omit=dev && mkdir -p /data && chown node:node /data /app
ENV NODE_ENV=production DATABASE_URL=file:/data/kiro.sqlite PORT=4500
USER node
EXPOSE 4500
HEALTHCHECK --interval=30s --timeout=5s --start-period=30s CMD node -e "fetch('http://127.0.0.1:4500/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))"
VOLUME ["/data"]
CMD ["node", "scripts/media-server/container-bootstrap.js"]
