FROM mcr.microsoft.com/playwright:v1.58.2-noble

USER root
RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
       fonts-noto-cjk novnc openbox websockify x11vnc xvfb \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY app/package.json app/package-lock.json ./
RUN npm ci --omit=dev
COPY --chown=pwuser:pwuser app/ ./
COPY --chown=pwuser:pwuser entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh \
    && chmod -R a+rX /app \
    && mkdir -p /data \
    && chown -R pwuser:pwuser /data /app

USER pwuser
ENV DISPLAY=:99 \
    HOME=/home/pwuser \
    PORT=8091 \
    DATA_DIR=/data

EXPOSE 8091 6080
ENTRYPOINT ["/entrypoint.sh"]

