Automations / Dockerfile
sivakumar330's picture
Upload 3 files
44ee7fe verified
Raw History Blame Contribute Delete
1.55 kB
# n8n self-hosted image (Hugging Face Spaces / any Docker host)
# HF Spaces runs the container as uid 1000 (= "node" user in node images),
# so we run as node and keep all writable data in /home/node.
FROM node:24-alpine
USER root
RUN apk add --no-cache \
git python3 py3-pip make g++ build-base \
cairo-dev pango-dev chromium postgresql-client yt-dlp \
tini curl
# Pin a version that really exists. If the build fails with "No matching version",
# change this to n8n@latest (or run: npm view n8n versions --json to see valid ones).
RUN npm install -g n8n@2.42.6
# Writable data folder for uid 1000
RUN mkdir -p /home/node/.n8n && chown -R node:node /home/node
ENV NODE_OPTIONS="--dns-result-order=ipv4first" \
PUPPETEER_SKIP_DOWNLOAD=true \
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \
N8N_RUNNERS_ENABLED=true \
N8N_PORT=7860 \
N8N_LISTEN_ADDRESS=0.0.0.0 \
N8N_USER_FOLDER=/home/node \
HOME=/home/node \
N8N_PROTOCOL=https \
N8N_PROXY_HOPS=1 \
N8N_DEFAULT_BINARY_DATA_MODE=filesystem \
N8N_DIAGNOSTICS_ENABLED=false \
N8N_PERSONALIZATION_ENABLED=false \
EXECUTIONS_DATA_PRUNE=true \
EXECUTIONS_DATA_MAX_AGE=168 \
GENERIC_TIMEZONE=Asia/Kolkata \
TZ=Asia/Kolkata \
NODE_FUNCTION_ALLOW_BUILTIN=* \
NODE_FUNCTION_ALLOW_EXTERNAL=*
USER node
WORKDIR /home/node
EXPOSE 7860
HEALTHCHECK --interval=60s --timeout=10s --start-period=90s --retries=3 \
CMD curl -fs http://127.0.0.1:7860/healthz || exit 1
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["n8n", "start"]