Spaces:
Paused
Paused
| FROM node:20-alpine | |
| # Set user to root for installation | |
| USER root | |
| # Install system dependencies | |
| RUN apk add --no-cache \ | |
| git \ | |
| python3 \ | |
| py3-pip \ | |
| make \ | |
| g++ \ | |
| build-base \ | |
| cairo-dev \ | |
| pango-dev \ | |
| libtool \ | |
| autoconf \ | |
| automake \ | |
| libpng-dev \ | |
| jpeg-dev \ | |
| giflib-dev \ | |
| librsvg-dev \ | |
| chromium \ | |
| postgresql-client \ | |
| yt-dlp \ | |
| su-exec | |
| # Set environment variables | |
| ENV PUPPETEER_SKIP_DOWNLOAD=true | |
| ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser | |
| ENV N8N_USER_FOLDER=/home/node/.n8n | |
| ENV N8N_PORT=7860 | |
| ENV NODE_ENV=production | |
| # n8n Security & Access Settings for Hugging Face | |
| ENV N8N_LISTEN_ADDRESS=0.0.0.0 | |
| ENV N8N_PROTOCOL=https | |
| ENV WEBHOOK_URL=https://tsitsi19-n8n-void-instance.hf.space/ | |
| # CRITICAL: Allow n8n to be embedded in iframes | |
| ENV N8N_SECURE_COOKIE=false | |
| ENV N8N_USE_BEHIND_PROXY=true | |
| ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false | |
| # Disable some security headers that block iframes | |
| ENV N8N_BLOCK_IFRAME_EMBED=false | |
| ENV N8N_X_FRAME_OPTIONS=ALLOWALL | |
| # Install n8n globally | |
| RUN npm install -g n8n --unsafe-perm | |
| # Create necessary directories and set permissions | |
| RUN mkdir -p /home/node/.n8n && \ | |
| chown -R node:node /home/node/.n8n | |
| # Set working directory | |
| WORKDIR /home/node | |
| # Hugging Face Spaces uses port 7860 by default | |
| EXPOSE 7860 | |
| # Switch to non-root user | |
| USER node | |
| # Start n8n | |
| CMD ["n8n", "start"] | |