Spaces:
Paused
Paused
| # 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"] | |