FROM node:24-bookworm-slim

ENV PUPPETEER_CACHE_DIR=/firefox
WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends \
      libgtk-3-0 libasound2 libdbus-glib-1-2 libx11-xcb1 libxtst6 libxt6 \
      fonts-liberation ca-certificates xz-utils \
 && rm -rf /var/lib/apt/lists/*

ADD https://addons.mozilla.org/firefox/downloads/file/5034826/ublock_origin-1.75.0.xpi /opt/ubo.xpi
RUN chmod 0444 /opt/ubo.xpi

COPY package.json ./

RUN npm install --omit=dev \
 && npx puppeteer browsers install firefox@stable_158.0 \
 && chmod -R a+rX /firefox \
 && npm cache clean --force

COPY bot.js bot.html ./

RUN useradd -m -u 10001 bot
USER bot

ENV NODE_ENV=production
ENV UBO_XPI=/opt/ubo.xpi
EXPOSE 1337
CMD ["node", "bot.js"]
