Sau khi cài đặt ubuntu, chạy các lệnh sau để tiến hành cài đặt easy Panel
curl -sSL https://get.easypanel.io | sh
⏳ Chờ đợi: Quá trình này mất khoảng 2-5 phút tùy tốc độ mạng. Khi nào thấy dòng chữ “Easypanel is running” màu xanh lá cây hiện ra là xong.
Bước 3: Mở cổng (Firewall)
Nếu Ubuntu của bạn đang bật tường lửa (UFW), bạn cần mở cổng 3000 để truy cập bảng điều khiển Easypanel. Chạy lệnh:
Bash
ufw allow 3000
ufw allow 80
ufw allow 443
(Nếu nó báo ufw: command not found hoặc inactive thì bỏ qua, mặc định Ubuntu mới cài thường chưa bật firewall chặt).
Bước 4: Thiết lập Easypanel trên trình duyệt
- Mở trình duyệt (Chrome/Edge) trên máy tính của bạn.
- Truy cập địa chỉ:
http://<IP-SERVER-CUA-BAN>:3000- Ví dụ:
http://192.168.1.20:3000
- Ví dụ:
- Giao diện Easypanel hiện ra, bạn cần nhập:
- Email: (Nhập email của bạn).
- Password: (Tạo mật khẩu quản trị).
- Bấm Create Account.
Bước 5: Cài đặt n8n (Chỉ 3 cú click chuột)
Hệ thống sẽ tự động tải n8n, cài đặt Database Postgres đi kèm (để n8n chạy mượt hơn dùng SQLite mặc định) và thiết lập mạng.
Bước 1: Thiết lập tài khoản Admin Easypanel
- Truy cập vào:
http://<IP-CUA-BAN>:3000(Ví dụ:192.168.1.20:3000). - Bạn sẽ thấy màn hình chào mừng. Hãy điền Email và Mật khẩu để tạo tài khoản quản trị viên cho Easypanel.
Bước 2: Tạo Project
- Sau khi đăng nhập, bấm nút Create Project.
- Đặt tên project là:
Automation-> Bấm Create.
Bước 3: Cài n8n từ Template
- Trong Project vừa tạo, bấm nút Templates.
- Ở ô tìm kiếm, gõ:
n8n. - Chọn biểu tượng n8n.
- Ở màn hình hiện ra, bạn không cần sửa gì cả, cứ để mặc định.
- Bấm nút Create.
⏳ Chờ khoảng 1-2 phút: Easypanel sẽ tự động tải n8n và cài đặt Database đi kèm. Khi nào bạn thấy biểu tượng n8n chuyển sang màu Xanh lá (Running) là xong phần cài đặt.
Lúc này, bạn có thể bấm vào nút Open để vào n8n, nhưng đó mới chỉ là mạng nội bộ (LAN).
Bước 6: Truy cập n8n
Sau khi Easypanel báo “Running” (màu xanh):
- Bấm vào biểu tượng Open (hoặc link) trong thẻ n8n.
- Lúc này, n8n của bạn sẽ chạy tại đường dẫn do Easypanel cấp (thường là qua IP hoặc tên miền bạn cấu hình).
- Tạo tài khoản Admin cho n8n và bắt đầu tạo workflow!
⚠️ Một lưu ý nhỏ (Quan trọng)
Vì bạn cài Easypanel sau khi đã cài thủ công Docker:
- Quyền quản lý: Từ giờ trở đi, bạn nên tạo và quản lý các ứng dụng (như n8n) thông qua giao diện web của Easypanel. Đừng dùng lệnh
docker runthủ công nữa để tránh việc Easypanel không quản lý được ứng dụng đó. - Xung đột cổng: Easypanel sử dụng cổng 80 (Web) và 443 (HTTPS) để làm cổng chính. Nếu trước đó bạn đã lỡ cài một web server nào khác (như Nginx hay Apache) chiếm dụng cổng này, Easypanel có thể báo lỗi.
💡 Mẹo nâng cao (Để n8n nhận được Webhook từ Facebook/Google)
Hiện tại bạn đang chạy trên IP nội bộ (LAN), n8n sẽ hoạt động tốt nhưng không thể nhận tín hiệu từ bên ngoài (ví dụ: Khách điền form Google Sheet thì n8n không tự chạy được).
PHẦN 2: TRUY CẬP TỪ INTERNET (BẰNG CLOUDFLARE TUNNEL)
Đây là phương pháp An toàn nhất – Chuyên nghiệp nhất hiện nay. Bạn không cần mở port modem, không sợ lộ IP nhà, và có sẵn ổ khóa bảo mật (HTTPS).
⚠️ Yêu cầu bắt buộc: Bạn cần có một Tên miền (Domain) riêng (ví dụ: nguyenvanam.com).
- Nếu chưa có: Hãy mua một cái (trên Namecheap, Matbao, Tenten…), giá chỉ khoảng vài chục nghìn đến hơn 200k/năm.
- Nếu đã có: Hãy làm theo các bước dưới đây.
Bước 1: Đưa tên miền về Cloudflare
- Đăng ký tài khoản miễn phí tại Cloudflare.com.
- Bấm Add a Site -> Nhập tên miền của bạn vào.
- Cloudflare sẽ cấp cho bạn 2 dòng Nameserver. Hãy vào trang quản lý nơi bạn mua tên miền, tìm chỗ đổi Nameserver và thay bằng 2 dòng này của Cloudflare.
Bước 2: Tạo đường hầm (Tunnel)
- Tại trang chủ Cloudflare, menu bên trái chọn Zero Trust. (Lần đầu vào nó sẽ bắt bạn nhập thẻ visa để xác minh free plan, cứ nhập vào, nó không trừ tiền đâu).
- Trong giao diện Zero Trust: Chọn Networks -> Tunnels.
- Bấm Create a tunnel.
- Chọn Cloudflared -> Next.
- Đặt tên Tunnel (ví dụ:
n8n-server) -> Save tunnel.
Bước 3: Cài đặt kết nối lên Server (Ubuntu)
- Tại màn hình Cloudflare, bạn sẽ thấy mục “Choose your environment”. Hãy chọn biểu tượng Docker.
- Bên dưới sẽ hiện ra một đoạn mã lệnh dài ngoằng. Copy đoạn mã đó.
- Quay lại cửa sổ SSH (Terminal) đang kết nối với máy chủ Ubuntu của bạn.
- Dán (Paste) đoạn mã đó vào và nhấn Enter.
Lúc này, máy chủ Ubuntu của bạn đã âm thầm kết nối với Cloudflare.
Bước 4: Trỏ tên miền về n8n (Public Hostname)
- Quay lại trình duyệt web (trang Cloudflare Tunnel lúc nãy), bấm Next.
- Tab Public Hostnames: Bấm Add a public hostname.
- Điền thông tin như sau:
- Subdomain: Điền tên bạn muốn (ví dụ:
n8n). - Domain: Chọn tên miền của bạn (ví dụ:
nguyenvanam.com). - Path: Để trống.
- Service:
- Type: chọn HTTP.
- URL: điền
localhost:5678(hoặc xem trong Easypanel, n8n thường chạy port 5678 hoặc port nội bộ mà Easypanel cấp, nhưng Cloudflare chạy trên cùng máy nên thửlocalhost:5678trước, nếu không được thì đổi thànhlocalhost:80vì Easypanel proxy ra port 80). - Mẹo: Với Easypanel, thường bạn trỏ về IP nội bộ của container n8n, nhưng cách đơn giản nhất là trỏ về cổng Easypanel quản lý. Hãy thử:
localhost:80và ở phần Host Header (trong Additional Settings) điền tên miềnn8n.nguyenvanam.com.
- Subdomain: Điền tên bạn muốn (ví dụ:
UPDATE QUAN TRỌNG CHO EASYPANEL: Vì Easypanel có cơ chế routing riêng, cách dễ nhất để Cloudflare Tunnel hoạt động với Easypanel là:
- Trong Cloudflare Tunnel -> Service URL: điền
http://localhost:80. - Trong Easypanel: Bấm vào Project Automation -> Chọn n8n -> Chọn tab Domains.
- Bấm Add Domain. Nhập đúng tên miền bạn vừa cấu hình bên Cloudflare (ví dụ:
n8n.nguyenvanam.com). - Bấm Save.
TỔNG KẾT
Bây giờ, từ bất kỳ đâu (quán cafe, điện thoại 4G), bạn chỉ cần gõ https://n8n.ten-mien-cua-ban.com là sẽ vào được hệ thống n8n của mình để làm việc.
Chào bạn, sử dụng Cloudflare Tunnel (trước đây là Argo Tunnel) là giải pháp tối ưu và an toàn nhất để đưa dịch vụ từ máy chủ Ubuntu (local hoặc VPS) ra internet.
Ưu điểm lớn nhất: Bạn không cần mở port (Port Forwarding) trên Router hay Firewall, giúp tránh lộ IP thật và giảm thiểu rủi ro bị tấn công trực tiếp.
Dưới đây là hướng dẫn cài đặt thông qua giao diện Cloudflare Zero Trust (cách dễ và hiện đại nhất).
Phần 1: Chuẩn bị
- Tên miền (Domain): Đã được thêm và quản lý DNS tại Cloudflare.
- Máy chủ Ubuntu: Đã chạy dịch vụ bạn muốn public (ví dụ: Web server Nginx/Apache chạy port 80, hoặc ứng dụng chạy port 3000, v.v.).
- Tài khoản Cloudflare: Đã kích hoạt tính năng Zero Trust (Miễn phí cho tối đa 50 người dùng).
Phần 2: Tạo Tunnel trên Cloudflare Dashboard
Chúng ta sẽ tạo “đường hầm” trên web trước, sau đó lấy mã cài đặt để chạy trên Ubuntu.
- Truy cập Cloudflare Zero Trust Dashboard.
- Ở menu bên trái, chọn Networks -> Tunnels.
- Nhấn nút Create a tunnel.
- Chọn Cloudflared (Connector) và nhấn Next.
- Đặt tên cho Tunnel (ví dụ:
ubuntu-home-server) và nhấn Save tunnel.
Phần 3: Cài đặt Cloudflared lên Ubuntu
Sau khi nhấn Save, Cloudflare sẽ hiện ra màn hình hướng dẫn cài đặt cho các hệ điều hành.
- Tại tab Choose your environment, bạn chọn biểu tượng Debian (hoặc Ubuntu).
- Bạn sẽ thấy một khung chứa các dòng lệnh (bắt đầu bằng
curl -L...). - Copy toàn bộ đoạn mã đó.
- Mở Terminal (SSH) vào máy chủ Ubuntu của bạn và Paste (dán) đoạn mã đó vào rồi nhấn Enter.
Điều gì sẽ xảy ra? Lệnh này sẽ tự động:
- Tải
cloudflaredvề máy. - Cài đặt nó như một Service (tự chạy khi khởi động lại máy).
- Kết nối máy Ubuntu của bạn với Cloudflare thông qua Token bí mật có trong đoạn mã.
Nếu thành công, trên giao diện web của Cloudflare, mục Connectors sẽ hiện trạng thái Connected (màu xanh lá). Nhấn Next.
Phần 4: Cấu hình tên miền (Public Hostname)
Bước này định nghĩa: “Khi người dùng gõ tên miền nào thì trỏ về dịch vụ nào trên máy Ubuntu”.
- Chuyển sang tab Public Hostnames.
- Nhấn Add a public hostname.
- Điền thông tin:
- Subdomain: Tên miền phụ bạn muốn (ví dụ:
web,app). - Domain: Chọn tên miền chính của bạn.
- Path: Để trống (trừ khi bạn muốn cấu hình nâng cao).
- Service:
- Type: Chọn giao thức (thường là
HTTPcho web). - URL: Nhập địa chỉ nội bộ trên Ubuntu (ví dụ:
localhost:80hoặclocalhost:3000).
- Type: Chọn giao thức (thường là
Type: HTTPvàURL: localhost:80. - Subdomain: Tên miền phụ bạn muốn (ví dụ:
- Nhấn Save hostname.
Phần 5: Kiểm tra kết quả
Bây giờ bạn hãy mở trình duyệt trên điện thoại hoặc máy tính khác (không dùng mạng LAN) và truy cập vào tên miền bạn vừa cấu hình (ví dụ: https://web.tenmien.com).
- Nếu trang web hiện ra: Thành công!
- Lưu ý: Cloudflare tự động cấp chứng chỉ SSL, nên bạn sẽ truy cập được qua
HTTPSngay lập tức mà không cần cài đặt SSL trên máy chủ Ubuntu.
Mở rộng: Truy cập SSH qua trình duyệt (Optional)
Nếu bạn muốn SSH vào máy Ubuntu từ xa qua trình duyệt mà không cần mở port 22:
- Trong phần Public Hostname, thêm một record mới.
- Subdomain: ví dụ
ssh. - Service Type: chọn SSH.
- URL:
localhost:22. - Lưu lại.
- Bây giờ khi truy cập
ssh.tenmien.com, Cloudflare sẽ render một giao diện Terminal ngay trên trình duyệt (cần cấu hình thêm Cloudflare Access để bảo mật bước đăng nhập).
Cách xử lý lỗi thường gặp
- Lỗi 502 Bad Gateway: Nghĩa là Cloudflare đã kết nối được tới máy chủ Ubuntu, nhưng
cloudflaredkhông kết nối được tới dịch vụ nội bộ (localhost). Hãy kiểm tra lại xem dịch vụ của bạn (Nginx, Docker, v.v.) có đang thực sự chạy đúng port đã khai báo không. - Service cloudflared không chạy: Kiểm tra bằng lệnh:Bash
sudo systemctl status cloudflared
Cloudflare Access là một dịch vụ bảo mật thuộc nền tảng Cloudflare Zero Trust.
Để dễ hình dung nhất, hãy tưởng tượng:
- Cloudflare Tunnel (bạn đã cài ở bước trước) giống như việc bạn nối một sợi dây cáp ngầm từ nhà bạn ra ngoài đường lớn internet.
- Cloudflare Access chính là người bảo vệ đứng ở đầu sợi dây đó.
Người bảo vệ này sẽ chặn tất cả mọi người lại, yêu cầu họ xuất trình “giấy tờ tùy thân” (đăng nhập bằng Gmail, GitHub, Facebook…). Chỉ khi “giấy tờ” hợp lệ và có tên trong danh sách cho phép, người bảo vệ mới mở cổng cho đi vào đường hầm để đến máy chủ của bạn.
Tại sao bạn nên dùng Cloudflare Access?
Thay vì dùng VPN truyền thống (cài đặt phức tạp, chậm chạp), Cloudflare Access giúp bạn:
- Bảo vệ ứng dụng nội bộ mà không cần VPN: Bạn có thể truy cập các công cụ nội bộ (như Home Assistant, Web quản trị, Database) từ bất cứ đâu chỉ bằng trình duyệt, nhưng vẫn an toàn tuyệt đối.
- Tích hợp đăng nhập (SSO): Thay vì phải tạo user/pass riêng cho từng ứng dụng trên máy chủ Ubuntu, bạn dùng luôn tài khoản Google (Gmail), Microsoft, hoặc GitHub để đăng nhập.
- Ví dụ: Khi truy cập
web.tenmien.com, thay vì vào thẳng web, nó sẽ hiện bảng “Đăng nhập bằng Google”. Chỉ emailabc@gmail.comcủa bạn mới được vào.
- Ví dụ: Khi truy cập
- Bảo vệ SSH (Cực kỳ quan trọng): Ở bài trước bạn đã cài SSH. Nếu public SSH ra internet, hacker có thể spam mật khẩu (Brute-force) cả ngày. Nếu dùng Cloudflare Access, hacker thậm chí không nhìn thấy màn hình nhập mật khẩu SSH. Họ phải đăng nhập qua lớp Cloudflare Access trước, nếu không qua được bước này, họ không thể chạm tới cổng 22 của máy chủ.
- Hoàn toàn miễn phí: Gói Free cho phép tối đa 50 người dùng. Quá đủ cho nhu cầu cá nhân hoặc team nhỏ.
Cách hoạt động (Quy trình)
Khi bạn cấu hình Cloudflare Access cho tên miền ssh.tenmien.com:
- Bước 1: Bạn truy cập
https://ssh.tenmien.com. - Bước 2: Cloudflare chặn lại và hiện màn hình đăng nhập (ví dụ: Login with Google).
- Bước 3: Bạn đăng nhập thành công bằng Gmail của mình.
- Bước 4: Cloudflare kiểm tra: “Email này có trong danh sách được phép không?”.
- Bước 5: Nếu đúng, Cloudflare cấp cho bạn một “vé” (Token) và cho phép kết nối đi qua Tunnel để vào máy chủ Ubuntu.
Hướng dẫn nhanh: Cách bật Cloudflare Access cho SSH
Giả sử bạn đã tạo Tunnel cho SSH (như bài trước). Giờ ta sẽ thêm “người bảo vệ” vào.
- Vào Cloudflare Zero Trust Dashboard.
- Menu trái chọn Access -> Applications.
- Nhấn Add an application -> Chọn Self-hosted.
- Điền thông tin:
- Application name: SSH Server.
- Session Duration: 24h (thời gian phải đăng nhập lại).
- Subdomain: Điền tên miền SSH của bạn (ví dụ:
ssh.tenmien.com).
- Nhấn Next để tạo chính sách (Policy):
- Policy Name: Allow Me.
- Action: Allow.
- Configure rules:
- Selector: Chọn Emails.
- Value: Điền địa chỉ email của bạn (ví dụ:
nguyenvana@gmail.com).
- Nhấn Next -> Add application.
Kết quả: Từ giờ, ai muốn vào ssh.tenmien.com đều phải đăng nhập bằng email của bạn mới vào được.
