sam12345324 commited on
Commit
864ab5e
·
verified ·
1 Parent(s): 6d65e37

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +25 -47
Dockerfile CHANGED
@@ -1,68 +1,46 @@
1
- # -----------------------------
2
- # Base image
3
- # -----------------------------
4
  FROM node:20-slim
5
 
6
- # -----------------------------
7
- # Install system dependencies
8
- # -----------------------------
9
  USER root
10
  RUN apt update && apt install -y \
11
  ffmpeg git python3 python3-pip make g++ build-essential \
12
  libcairo2-dev libpango1.0-dev libjpeg-dev libpng-dev libgif-dev \
13
  librsvg2-dev chromium libvips-dev libvips-tools imagemagick \
14
- libmagickwand-dev libglib2.0-dev libjpeg62-turbo-dev libexif-dev \
15
- libheif-dev graphicsmagick && apt clean
 
16
 
17
  # Puppeteer Chromium path
18
  ENV PUPPETEER_SKIP_DOWNLOAD=true
19
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
20
 
21
- # -----------------------------
22
- # Install n8n and image libraries
23
- # -----------------------------
24
- RUN npm install -g n8n sharp@0.33.5 jimp imagemagick
25
 
26
- # -----------------------------
27
- # Create persistent folder in /mnt/data
28
- # -----------------------------
29
- RUN mkdir -p /mnt/data/n8n && chown -R node:node /mnt/data/n8n
30
-
31
- # -----------------------------
32
- # Switch to node user
33
- # -----------------------------
34
  USER node
35
  WORKDIR /workspace
36
 
37
- # -----------------------------
38
- # Timezone
39
- # -----------------------------
 
 
40
  ENV TZ=UTC
41
  ENV GENERIC_TIMEZONE=UTC
 
42
 
43
- # -----------------------------
44
- # Persistent n8n storage
45
- # -----------------------------
46
- ENV N8N_USER_FOLDER=/mnt/data/n8n
47
- ENV DB_TYPE=sqlite
48
- ENV DB_SQLITE_DATABASE=/mnt/data/n8n/database.sqlite
49
- ENV DB_SQLITE_VACUUM_ON_STARTUP=true
50
- ENV DB_SQLITE_POOL_SIZE=5
51
- ENV N8N_ENCRYPTION_KEY_FILE=/mnt/data/n8n/config
52
-
53
- # -----------------------------
54
- # Custom port
55
- # -----------------------------
56
- ENV N8N_PORT=7860
57
 
58
- # -----------------------------
59
- # Task runners & security
60
- # -----------------------------
61
- ENV N8N_RUNNERS_ENABLED=false
62
- ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
63
- ENV N8N_BLOCK_ENV_ACCESS_IN_NODE=false
64
 
65
- # -----------------------------
66
- # Start n8n on HF Spaces assigned port
67
- # -----------------------------
68
- CMD ["sh", "-c", "n8n start --port $N8N_PORT --host 0.0.0.0"]
 
1
+ # Use official Node.js slim image
 
 
2
  FROM node:20-slim
3
 
4
+ # Install system dependencies for image/audio processing (optional)
 
 
5
  USER root
6
  RUN apt update && apt install -y \
7
  ffmpeg git python3 python3-pip make g++ build-essential \
8
  libcairo2-dev libpango1.0-dev libjpeg-dev libpng-dev libgif-dev \
9
  librsvg2-dev chromium libvips-dev libvips-tools imagemagick \
10
+ libmagickwand-dev libglib2.0-dev libjpeg62-turbo-dev \
11
+ libexif-dev libheif-dev graphicsmagick && \
12
+ apt clean
13
 
14
  # Puppeteer Chromium path
15
  ENV PUPPETEER_SKIP_DOWNLOAD=true
16
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
17
 
18
+ # Install n8n globally
19
+ RUN npm install -g n8n
 
 
20
 
21
+ # Switch to HF default node user
 
 
 
 
 
 
 
22
  USER node
23
  WORKDIR /workspace
24
 
25
+ # Expose HF default port
26
+ ENV N8N_PORT=7860
27
+ EXPOSE 7860
28
+
29
+ # Timezone & debug
30
  ENV TZ=UTC
31
  ENV GENERIC_TIMEZONE=UTC
32
+ ENV SHARP_VERBOSE=true
33
 
34
+ # PostgreSQL config will come from secrets
35
+ ENV DB_TYPE=postgresdb
36
+ ENV DB_POSTGRESDB_HOST=${DB_POSTGRESDB_HOST}
37
+ ENV DB_POSTGRESDB_PORT=${DB_POSTGRESDB_PORT}
38
+ ENV DB_POSTGRESDB_DATABASE=${DB_POSTGRESDB_DATABASE}
39
+ ENV DB_POSTGRESDB_USER=${DB_POSTGRESDB_USER}
40
+ ENV DB_POSTGRESDB_PASSWORD=${DB_POSTGRESDB_PASSWORD}
 
 
 
 
 
 
 
41
 
42
+ # n8n credentials encryption key
43
+ ENV N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
 
 
 
 
44
 
45
+ # Start n8n with tunnel for public HF URL
46
+ CMD ["n8n", "start", "--tunnel", "--host", "0.0.0.0", "--port", "7860"]