File size: 1,403 Bytes
5a915ba
77f745b
 
 
 
0ba666d
77f745b
 
 
 
 
 
 
 
 
f223800
 
 
 
 
 
 
77f745b
 
5a915ba
 
77f745b
 
 
 
5a915ba
 
f223800
77f745b
0ba666d
 
 
 
c7d0f85
 
0ba666d
c7d0f85
 
 
 
 
 
0ba666d
 
f223800
77f745b
5a915ba
 
 
77f745b
 
5a915ba
 
 
 
 
 
 
77f745b
 
5a915ba
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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"]