File size: 1,328 Bytes
864ab5e
a63322d
 
864ab5e
a63322d
 
1c1b077
 
 
864ab5e
 
 
a63322d
1c1b077
a63322d
 
 
864ab5e
 
a63322d
864ab5e
e4e288e
a63322d
 
864ab5e
 
 
 
 
a63322d
 
864ab5e
a63322d
864ab5e
 
 
 
 
 
 
e4e288e
864ab5e
 
63ba249
864ab5e
84132fa
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
# Use official Node.js slim image
FROM node:20-slim

# Install system dependencies for image/audio processing (optional)
USER root
RUN apt update && apt install -y \
    ffmpeg git python3 python3-pip make g++ build-essential \
    libcairo2-dev libpango1.0-dev libjpeg-dev libpng-dev libgif-dev \
    librsvg2-dev chromium libvips-dev libvips-tools imagemagick \
    libmagickwand-dev libglib2.0-dev libjpeg62-turbo-dev \
    libexif-dev libheif-dev graphicsmagick && \
    apt clean

# Puppeteer Chromium path
ENV PUPPETEER_SKIP_DOWNLOAD=true
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium

# Install n8n globally
RUN npm install -g n8n

# Switch to HF default node user
USER node
WORKDIR /workspace

# Expose HF default port
ENV N8N_PORT=7860
EXPOSE 7860

# Timezone & debug
ENV TZ=UTC
ENV GENERIC_TIMEZONE=UTC
ENV SHARP_VERBOSE=true

# PostgreSQL config will come from secrets
ENV DB_TYPE=postgresdb
ENV DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
ENV DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}
ENV DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
ENV DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
ENV DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}

# n8n credentials encryption key
ENV N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}

# Start n8n with tunnel for public HF URL
CMD ["n8n", "start", "--host", "0.0.0.0", "--port", "7860"]