# 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"]