

Hướng dẫn tự cài đặt n8n comunity trên CyberPanel, trỏ tên miền
- 21-04-2025
- Toanngo92
- 0 Comments
Ở bài viết này, mình sẽ chia sẻ với các bạn cách cài đặt n8n comunity trên cloud server/home server để tiết kiệm chi phí. Nếu setup kĩ thuật bằng docker đã có nhiều bài viết trên mạng, ở bài viết này mình sẽ hướng dẫn các bạn tạo n8n đằng docker, sau đó trỏ tên miền và đưa proxy vào docker bằng tính năng quản lý container trên giao diện của cyberpanel.
Mục lục
Cài đặt n8n trên CyberPanel thông qua giao diện quản lý docker
Bước 1: Truy cập Docker Manager
Vào CyberPanel > Docker Manager > Create New Container
Bước 2: Nhập cấu hình container
Mục | Giá trị nhập |
---|---|
Image Name | n8nio/n8n |
Container Name | n8ncontainer (hoặc tên bất kỳ), hoặc để mặc định giá trị là n8nio.n8n |
Port Mapping | 5678:5678 |
Volume Mapping | /home/n8n/data:/home/node/.n8n (nếu có) |
Trong giao diện cấu hình container, mapping dữ liệu tương ứng như sau:
ENV Key | ENV Value |
---|---|
N8N_BASIC_AUTH_ACTIVE | true |
N8N_BASIC_AUTH_USER | admin |
N8N_BASIC_AUTH_PASSWORD | matkhau |
N8N_HOST (nếu dùng domain) | 0.0.0.0 |
WEBHOOK_URL (nếu dùng domain) | http://yourdomain.com |
Volume Mapping (nên có để không mất dữ liệu):
Click Add field dưới Map Volumes
, thêm:
- /home/node/.n8n →
/home/n8n/data
(hoặc đường dẫn lưu dữ liệu trên host)
Container Path | Host Path |
---|---|
/home/node/.n8n | /home/n8n/data |

Với cách cấu hình này, chúng ta hiểu n8n đang sử dụng CSDL Sql.Lite, nếu bạn muốn sử dụng posgres, có thể cấu hình thêm biến môi trường như sau:
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=host.docker.internal # hoặc IP máy PostgreSQL
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8nuser
DB_POSTGRESDB_PASSWORD=yourpass
Nếu trong quá trình cài gặp lỗi, (như tình huống mình đã gặp), truy cập ssh và gõ lệnh:
docker logs n8nio.n8n
Trong đó, n8nio.n8n là tên container bạn vừa tạo.
Nếu lỗi trả ra dạng thế này:
(node:7) [EACCES] Warning: Error
module: @oclif/core@4.0.7
task: findCommand (audit)
plugin: n8n
root: /usr/local/lib/node_modules/n8n
code: EACCES
message: EACCES: permission denied, open '/home/node/.n8n/config'
Điều này xác nhận rằng container n8n
của bạn không có quyền ghi vào thư mục /home/node/.n8n
trong container do vấn đề phân quyền từ volume bạn đã mount vào (/home/n8n/data
).
Giải pháp khắc phục:
sudo chown -R 1000:1000 /home/n8n/data
sudo chmod -R 755 /home/n8n/data
1000:1000 là UID/GID mặc định của user node bên trong container n8n.
Nếu bạn không chắc, bạn cũng có thể thử:
chmod -R 777 /home/n8n/data
Sau bước này, bấm start lại container trên giao diện cyberpanel để kiểm tra.
Cấu hình tên miền trỏ tới ứng dụng n8n
Bước 1: Trỏ domain về server
Truy cập quản lý DNS (VD: Cloudflare, Namecheap…)
Trỏ record A
:
yourdomain.com → <IP của server CyberPanel>
Bước 2: Tạo website trong CyberPanel
Thao tác:
Websites → Create Website
- Domain:
yourdomain.com
- Package: Chọn bất kỳ
- Owner: admin
- PHP: 8.x (không quan trọng với N8N)
- Nhấn Create Website
Trước khi cấu hình thêm, chúng ta cần tiến hành truy cập onelitespeed admin trong cyberpanel:
http://<IP-server>:7080
sername/password mặc định là admin
. Nếu bạn quên, có thể reset bằng:
/usr/local/lsws/admin/misc/admpass.sh
Thêm External App
- Vào menu: Virtual Hosts →
yourdomain.com
- Chọn tab External App → Add
- Chọn loại: Web Server
- Điền thông tin:
Field | Value |
---|---|
Name | n8n (hoặc n8napp ) |
Type | Web Server |
Address | 127.0.0.1:5678 |
Max Connections | 100 (mặc định) |

Cấu hình đầy đủ:
Trường | Giá trị nên dùng | Ghi chú |
---|---|---|
Name | n8n | ✅ Tên dùng trong rewrite |
Address | 127.0.0.1:5678 | ✅ Port của container |
Max Connections | 100 (không cần 2000) | ✅ Yêu cầu trong khoảng 1–2000 |
Connection Keep-Alive Timeout | 60 | Tuỳ chọn, có thể để trống |
Initial Request Timeout | 60 | ✅ Giá trị >= 1 |
Retry Timeout | 10 | ✅ Giá trị >= 0 |
Response Buffering | no | ✅ Chọn No là đúng |
Sau khi lưu, tiến hành quay lại tính năng:
- List website -> chọn website bạn đang cần sử dụng cho n8n
- Bấm managage
- Tìm tab rewrite
Nộidung cấp hình .htaccess
RewriteEngine On
RewriteRule ^(.*)$ HTTP://n8n/$1 [P]
Sau bước này, bạn đã có thể truy cập n8n thông qua domain. Lưu ý, nên issue SSL trước khi truy cập đảm bảo https hoạt động đúng.
Chúc bạn thành công !