FROM docker.n8n.io/n8nio/n8n:latest

USER root

RUN apk update && apk add --no-cache \
    hugo \
    chromium \
    nss \
    glib \
    freetype \
    freetype-dev \
    harfbuzz \
    ca-certificates \
    ttf-freefont \
    udev \
    ttf-liberation \
    font-noto-emoji \
    python3 \
    make \
    g++ \
    sqlite-dev \
    sqlite \
    py3-distutils-extra

ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
    PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser

COPY docker-custom-entrypoint.sh /docker-custom-entrypoint.sh
RUN chmod +x /docker-custom-entrypoint.sh && \
    chown node:node /docker-custom-entrypoint.sh

RUN mkdir -p /opt/n8n-custom-nodes && \
    cd /opt/n8n-custom-nodes && \
    npm install n8n-nodes-puppeteer \ 
    npm rebuild sqlite3 && \
    chown -R node:node /opt/n8n-custom-nodes

USER node

ENTRYPOINT ["/docker-custom-entrypoint.sh"]

