FROM node:lts-bookworm-slim

ARG VERSION=latest

# Update everything and install needed dependencies
RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get install -y -q \
        graphicsmagick \
        tzdata \
        curl \
        zip \
        unzip \
        jq \
        sed \
        python3 \
        ca-certificates \
        build-essential

# Install n8n and temporarily all packages it needs to build correctly.
RUN echo "Installing n8n version: ${VERSION}" && \
    npm_config_user=root npm install -g "n8n@${VERSION}" && \
    apt-get remove -y build-essential && \
    apt-get autoremove -y && \
    apt-get clean all

# Set a custom user to not have n8n run as root
USER node

WORKDIR /data

CMD ["n8n"]
