| # Sử dụng môi trường Node.js 20 (LTS) chuẩn Debian (dễ chịu hơn Alpine cho dev) | |
| FROM node:20-bookworm-slim | |
| # Thiết lập Port 7860 bắt buộc cho Hugging Face Spaces | |
| ENV PORT=7860 | |
| ENV N8N_PORT=7860 | |
| ENV N8N_HOST=0.0.0.0 | |
| ENV N8N_PROTOCOL=https | |
| # Tắt các thông báo/telemetry không cần thiết | |
| ENV N8N_DIAGNOSTICS_ENABLED=false | |
| ENV N8N_PERSONALIZATION_ENABLED=false | |
| # Thiết lập thư mục làm việc | |
| WORKDIR /app | |
| # Cài đặt n8n Global (bản Core mới nhất từ NPM) | |
| # Đây là cách clean nhất để chạy n8n trên môi trường Node | |
| RUN npm install -g n8n | |
| # Tạo thư mục dữ liệu và cấp quyền cho user 'node' (tránh lỗi EACCES) | |
| RUN mkdir -p /home/node/.n8n && \ | |
| chown -R node:node /home/node/.n8n /app | |
| # Chuyển sang user node (Best practice bảo mật) | |
| USER node | |
| # Mở cổng | |
| EXPOSE 7860 | |
| # Chạy n8n trực tiếp | |
| CMD ["n8n", "start"] |