Trong nhiều workflow tự động hóa, việc xử lý file media như chuyển đổi video, trích xuất âm thanh hoặc nén dung lượng file là nhu cầu khá phổ biến. Tuy nhiên, n8n mặc định không tích hợp sẵn công cụ xử lý media mạnh mẽ như FFmpeg, vì vậy bạn cần cài đặt thêm để mở rộng khả năng của hệ thống. Bài viết này sẽ hướng dẫn bạn cách cài đặt FFmpeg cho n8n trên VPS sử dụng template n8n của Vietnix bằng phương pháp tùy chỉnh Docker Image.
Điều kiện chuẩn bị
Trước khi bắt đầu, bạn cần chuẩn bị một số điều kiện sau:
- VPS đã cài đặt n8n theo template của Vietnix và vẫn giữ nguyên cấu trúc mặc định.
- Có quyền root hoặc user có quyền sudo trên VPS.
- Đã backup toàn bộ workflow và dữ liệu quan trọng trên n8n để tránh rủi ro trong quá trình cấu hình.
Bước 1: Kiểm tra tình trạng container và FFmpeg
Trước khi cài đặt, bạn cần xác nhận n8n đang hoạt động đúng cấu trúc của Vietnix.
Truy cập SSH vào VPS và kiểm tra danh sách container qua lệnh:
docker ps
Yêu cầu hệ thống phải hiển thị đủ 3 container sau:
n8n_docker(Image:n8nio/n8n:latest)postgres_n8n_docker(Image:postgres:14-alpine)caddy_n8n_docker(Image:caddy:latest)
Tiếp theo, kiểm tra xem FFmpeg đã tồn tại hay chưa:
Cách 1 (Qua giao diện n8n): Tạo một workflow mới, thêm node Execute Command và nhập lệnh: ffmpeg -version.

Cách 2 (Qua Terminal): Chạy lệnh trực tiếp vào container:
docker exec -it n8n_docker sh -lc 'ffmpeg -version'
Nếu hệ thống trả về: sh: ffmpeg: not found, có nghĩa là FFmpeg chưa được cài đặt.
Ngược lại, nếu hiển thị thông tin phiên bản FFmpeg thì hệ thống đã có sẵn công cụ này.
Bước 2: Stop n8n và tạo Dockerfile
Để cài thêm thư viện vào container, chúng ta cần build một Docker image mới dựa trên image gốc của n8n.
2.1. Di chuyển đến thư mục cài đặt n8n:
cd /home/n8n-deploy2.2. Dừng các container đang chạy:
docker compose down
Lưu ý
Nếu bạn dùng phiên bản cũ, lệnh có thể là docker-compose down.

2.3. Tạo file Dockerfile: Sử dụng một trình soạn thảo văn bản như nano hoặc vi để tạo file mới tên là Dockerfile với nội dung chính xác như sau:
FROM n8nio/n8n:latest
USER root
RUN set -eux; \
REPO_MAIN="http://dl-cdn.alpinelinux.org/alpine/v3.22/main"; \
REPO_COMMUNITY="http://dl-cdn.alpinelinux.org/alpine/v3.22/community"; \
\
# Download apk.static (bootstrap binary) then install apk-tools
wget -O /tmp/apk.static https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v2.14.4/x86_64/apk.static; \
chmod +x /tmp/apk.static; \
/tmp/apk.static -X "$REPO_MAIN" -U --allow-untrusted --initdb add apk-tools; \
\
# Install ffmpeg (usually in community repo)
echo "$REPO_MAIN" > /etc/apk/repositories; \
echo "$REPO_COMMUNITY" >> /etc/apk/repositories; \
apk update; \
apk add --no-cache ffmpeg; \
\
rm -f /tmp/apk.static
USER nodeBước 3: Cấu hình docker-compose.yml và kích hoạt FFmpeg
Sau khi tạo Dockerfile, bạn cần chỉnh sửa file docker-compose.yml để hệ thống sử dụng image mới.
3.1. Sao lưu file cấu hình hiện tại để đảm bảo an toàn:
cd /home/n8n-deploy
cp docker-compose.yml docker-compose.yml.backup.$(date +%Y-%m-%d_%H-%M)
3.2. Chỉnh sửa file docker-compose.yml. Tìm đến dịch vụ (service) n8n và sửa đổi như sau:
Cấu hình gốc:
n8n:
image: n8nio/n8n:latest
restart: always
pull_policy: if_not_present
container_name: n8n_docker
depends_on:
- postgresSau khi sửa:
n8n:
image: n8n-custom:ffmpeg
build:
context: .
dockerfile: Dockerfile
restart: always
pull_policy: if_not_present
container_name: n8n_docker
depends_on:
- postgresn8n: image: n8n-custom:ffmpeg build: context: . dockerfile: Dockerfile restart: always pull_policy: if_not_present container_name: n8n_docker depends_on: – postgres
Thay đổi chính là xóa dòng image: n8nio/n8n:latest và thêm vào khối build cùng một tên image tùy chỉnh mới.
3.3. Khởi động lại n8n với cấu hình mới:
docker compose up -dLúc này, Docker sẽ đọc Dockerfile, tải các gói cần thiết, cài đặt FFmpeg và tạo ra một image mới tên là n8n-custom:ffmpeg. Quá trình này có thể mất vài phút.

Bước 4: Kiểm tra lại kết quả
Sau khi quá trình build hoàn tất và các container đã khởi động, hãy kiểm tra lại một lần nữa để chắc chắn FFmpeg đã sẵn sàng hoạt động:
Kiểm tra qua Terminal:
docker exec -it n8n_docker sh -lc 'ffmpeg -version'
Kiểm tra qua Giao diện n8n: Dùng node Execute Command và chạy lệnh ffmpeg -version. Nếu kết quả trả về thông tin phiên bản (ví dụ: ffmpeg version 6.x.x…), bạn đã cài đặt thành công.

Việc tích hợp FFmpeg vào môi trường n8n không chỉ đơn thuần là cài thêm một công cụ xử lý media, mà còn giúp mở rộng đáng kể khả năng tự động hóa của hệ thống. Khi FFmpeg được cài đặt thành công, bạn có thể xây dựng các workflow nâng cao như tự động xử lý video, chuyển đổi định dạng file, trích xuất âm thanh hoặc tối ưu dung lượng media mà không cần thao tác thủ công. Chúc bạn xây dựng được nhiều workflow hiệu quả và tiết kiệm thời gian hơn trong quá trình vận hành.
VIETNIX – DỊCH VỤ HOSTING, VPS TỐC ĐỘ CAO, ỔN ĐỊNH, BẢO MẬT
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
- Điện thoại: 1800 1093
- Email liên hệ: sales@vietnix.com.vn
- Website: https://vietnix.vn/

