# ========================================== # OMNIGROUP - N8N + PUPPETEER + PYTHON VENV # Spécial Hugging Face Spaces + Persistence Bucket # Configuration : Node.js Latest + n8n v2.15.1 (Choix utilisateur) # ========================================== FROM node:24.15.0-bookworm USER root # 1. Configuration Environnement ENV DEBIAN_FRONTEND=noninteractive \ PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \ PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \ N8N_PORT=7860 \ N8N_USER_MANAGEMENT_DISABLED=true \ N8N_USER_FOLDER="/data/.n8n" \ HOME=/home/node \ PYTHON=/usr/bin/python3 # 2. Installation des dépendances système RUN apt-get update && apt-get install -y --no-install-recommends \ chromium \ ffmpeg \ python3 \ python3-pip \ python3-venv \ python3-dev \ python-is-python3 \ build-essential \ git \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # 3. Installation de n8n (Version spécifique choisie par Madiba) # On force l'installation de la version 2.15.1 RUN npm install -g n8n@2.15.1 --unsafe-perm --loglevel notice # 4. Configuration des dossiers pour le Bucket HF RUN mkdir -p /data /home/node/scripts /home/node/venv && \ chown -R node:node /data /home/node WORKDIR /home/node/scripts # 5. Préparation de l'environnement Python RUN python3 -m venv /home/node/venv ENV PATH="/home/node/venv/bin:$PATH" # 6. Installation des outils de capture (Puppeteer) COPY --chown=node:node . /home/node/scripts/ RUN npm init -y && \ npm install puppeteer puppeteer-screen-recorder && \ chown -R node:node /home/node/scripts # 7. Finalisation USER node WORKDIR /home/node ENV NODE_OPTIONS="--max-old-space-size=16384" \ N8N_LISTEN_ADDRESS=0.0.0.0 \ NODE_FUNCTION_ALLOW_BUILTIN=fs,child_process EXPOSE 7860 # Démarrage avec persistance des données sur le volume /data CMD ["sh", "-c", "mkdir -p /data/.n8n && n8n start"]