Bài viết này mình sẽ hướng dẫn các bạn Cách cài đặt n8n kết hợp với FFMPEG xử lý video trên Easy Panel đơn giản cho người không chuyên lập trình
Như các bạn đã biết Easy Panel là một công cụ rất trực quan giúp bạn có thể quản lý nhiều tác vụ tương tự như Docker Desktop, việc cài đặt Easy Panel lên trên VPS cực kì đơn giản
Đặc biệt Easy Panel cho phép bạn tạo tên miền riêng giúp xử lý được Webhook cho telegram hoặc một số bên khác yêu cầu Webhook khác mà không cần phải thông qua Ngrok hay mua tên miền về trỏ. Việc trỏ tên miền riêng với Easy panel cũng rất đơn giản.
Chỉ cần bạn đăng nhập vào VPS Ubuntu với quyền Admin. Chạy dòng lệnh:
curl -sSL https://get.easypanel.io | sh
Là easy panel đã được cài đặt trên VPS của bạn. Hướng dẫn chi tiết cài n8n bằng easy panel bạn có thể tham khảo trong video dưới, có bao gồm cách để trỏ tiên miền riêng từng bước.
Cài n8n kết hợp FFMPEG như sau:
Bước 1: Tạo Project mới, ở đây mình đặt tên là n8n-ffmpeg
Bước 2: Trong project mới, tạo “Service –> App” để tạo ứng dụng mới.
Đặt tên cho ứng dụng mới để dễ quản lý (VD:edit-video-n8n)

Sau khi tạo ứng dụng mới trong Service bạn vào mục Dockerfile và gõ dòng lệnh như sau:
FROM n8nio/n8n:1.120.4USER rootRUN apk update && apk add –no-cache ffmpegUSER node
Trong đó FROM n8nio/n8n:1.120.4 là lệnh để cài đặt n8n trên Docker, phiên bản mình cài là 1.120.4 Là phiên bản đảm bảo về bảo mật hiện tại và chức năng không quá mới như bản 2.0 và đặc biệt là chạy ổn định. Nếu bạn muốn cài bản mới nhất của n8n có thể để là FROM n8nio/n8n: latest
Những dòng còn lại là phân quyền Root (cấp quyền cao nhất) và cài đặt ffmpeg.

Bấm Save để lưu thông tin.
Bước 3: Cài đặt các biến môi trường ban đầu cho n8n:
Tiếp theo chúng ta cần cài đặt các biến môi trường để easy panel chạy được thành công:
Bạn truy cập vào Environment và copy đoạn Biến môi trường dưới đây. Sau đó bấm Save để lưu lại
N8N_PORT=5678N8N_PROTOCOL=httpGENERIC_TIMEZONE=Asia/Ho_Chi_MinhTZ=Asia/Ho_Chi_MinhN8N_DEFAULT_BINARY_DATA_MODE=filesystemEXECUTIONS_DATA_MAX_AGE=168EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
Tiếp theo bấm Deploy để Easy Panel bắt đầu tiến hành cài đặt n8n+ffmpeg
Tuỳ vào VPS của các bạn, VPS của mình Ram 4GB nên cài đặt mất 15 phút để hoàn thành
Để kiểm tra quá trình cài đặt có bị lỗi gì không bạn truy cập vào mục Deployments, Phần Action hiện lên sẽ cho bạn biết App đang được cài đặt như nào.

Trạng thái sau khi cài đặt xong sẽ hiện như sau:

Sau khi hoàn thành xong bạn đã có thể truy cập được vào n8n tích hợp FFMPEG để xử lý video thành công. (Ảnh dưới khi Service n8n-ffmpeg của mình sáng chấm xanh lá là đã cài và chạy thành công)
Để truy cập được vào n8n bằng tên miền mặc định của Easy panel bạn vào mục Domain như ảnh bên dưới.
Khu vực Domain này cũng giúp bạn trỏ tên miền riêng rất dễ dàng.

Lưu ý để n8n chạy ổn định và vì xử lý video nên các file rác trong quá trình chạy n8n sẽ tương đối nhiều trong Executions bạn nên cài biến môi trường như sau để tránh VPS của bạn sau một thời gian bị quá tải:
Gợi ý file Env của mình đang sử dụng
Lưu ý: File ENV này sau khi cài sẽ không lưu các Execution thành công, không lưu Execution khi bạn bấm chạy thử nghiệm (Manual Trigger) các Workflow, chỉ lưu Execution lỗi phục vụ việc khắc phục sự cố. Khi tạo các workflow mới và trong quá trình thử nghiệm bạn cần set lại chế độ lưu Execution trong Setting của từng Workflow.
# Cấu hình Webhook sau khi đã trỏ xong tên miền, nếu dùng mặc định của Easy panel thì xoá dòng nàyWEBHOOK_URL=https://demo.workflowfree.com# Cấu hình múi giờ chungGENERIC_TIMEZONE=Asia/Ho_Chi_Minh# Cấu hình chế độ lưu trữ dữ liệu nhị phân mặc định của n8nN8N_DEFAULT_BINARY_DATA_MODE=filesystem# Bật chế độ kiểm soát quyền truy cập tệp cấu hìnhN8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true# Kích hoạt tính năng dọn dẹp dữ liệu thực thiEXECUTIONS_DATA_PRUNE=true# Giới hạn thời gian lưu trữ dữ liệu thực thi (tính theo giờ)EXECUTIONS_DATA_MAX_AGE=72# Giới hạn số lượng bản ghi dữ liệu thực thi được lưu trữEXECUTIONS_DATA_PRUNE_MAX_COUNT=50000# Mọi workflow sẽ chạy trực tiếp trong process chính của n8nEXECUTIONS_PROCESS=main# Khi workflow bị lỗi, n8n sẽ lưu lại dữ liệu executionEXECUTIONS_DATA_SAVE_ON_ERROR=all# Khi workflow chạy thành công, n8n không lưu dữ liệu execution.EXECUTIONS_DATA_SAVE_ON_SUCCESS=none# n8n lưu dữ liệu tạm ở từng bước để nếu bị dừng giữa chừng, bạn vẫn xem được phần đã chạyEXECUTIONS_DATA_SAVE_ON_PROGRESS=true# Khi bạn chạy workflow bằng tay (manual mode trong editor UI), n8n không lưu dữ liệu của lần chạy đóEXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=falseDB_SQLITE_VACUUM_ON_STARTUP=true


