Chào mừng bạn đến với hướng dẫn chi tiết về cách cài đặt môi trường ERPNext cho mục đích sử dụng thực tế (Production). Tài liệu này tập trung vào phương pháp hiện đại và được khuyến nghị nhất: sử dụng frappe-manager (fm) để triển khai và quản lý ERPNext thông qua Docker.
Phương pháp này mang lại nhiều lợi ích vượt trội so với cài đặt thủ công:
- Dễ Quản Lý: Tạo, khởi động, dừng và cập nhật các trang web chỉ bằng vài lệnh đơn giản.
- Môi trường Biệt lập: Mỗi trang web chạy trong các container riêng biệt, tránh xung đột và tăng cường bảo mật.
- Sạch sẽ: Giữ cho hệ điều hành máy chủ của bạn gọn gàng, không cần cài đặt nhiều gói phụ thuộc trực tiếp.
- Dễ dàng Nâng cấp: Quy trình nâng cấp phiên bản Frappe/ERPNext trở nên an toàn và đơn giản hơn rất nhiều.
Tạo một Người dùng Non-root có quyền Sudo
Trước khi bắt đầu, hãy đảm bảo máy chủ Ubuntu của bạn (khuyến nghị phiên bản 22.04 LTS hoặc mới hơn) đã sẵn sàng.
Vì lý do bảo mật, không nên thực hiện mọi thao tác với tài khoản root.
# Đăng nhập vào máy chủ với tài khoản root
ssh root@YOUR_SERVER_IP
# Tạo người dùng mới (ví dụ: 'frappe')
adduser frappe
# Thêm người dùng vào nhóm 'sudo' để cấp quyền quản trị
usermod -aG sudo frappe
# Chuyển sang người dùng mới.
# Cách 1 (Khuyến nghị cho SSH): Đăng xuất khỏi root và đăng nhập lại bằng người dùng mới.
exit
ssh frappe@YOUR_SERVER_IP
# Cách 2 (Nếu bạn đang ở trên terminal vật lý của server): Chuyển người dùng trực tiếp.
su - frappe
Cập nhật Hệ thống
Luôn đảm bảo hệ thống của bạn được cập nhật các bản vá lỗi và bảo mật mới nhất.
sudo apt update && sudo apt upgrade -y
Cài đặt Docker Engine
frappe-manager sử dụng Docker làm nền tảng để tạo và quản lý các container.
# Cài đặt các gói cần thiết
sudo apt-get install ca-certificates curl gnupg
# Thêm GPG Key chính thức của Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Thêm kho lưu trữ của Docker vào danh sách nguồn của APT
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Cập nhật lại danh sách gói và cài đặt Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# Thêm người dùng hiện tại vào nhóm 'docker' để có thể chạy lệnh docker mà không cần 'sudo'
sudo usermod -aG docker $USER
# Thông báo người dùng đăng xuất
echo "QUAN TRỌNG: Vui lòng đăng xuất khỏi máy chủ và đăng nhập lại để áp dụng quyền Docker."
Lưu ý quan trọng: Sau khi chạy lệnh trên, bạn cần đăng xuất (logout) khỏi SSH và đăng nhập (login) lại để các thay đổi về quyền có hiệu lực.
Cài đặt Frappe Manager (fm)
Chúng tôi sẽ sử dụng pipx để cài đặt fm. pipx giúp cài đặt và chạy các ứng dụng Python trong môi trường biệt lập, tránh xung đột với các gói hệ thống.
# Cài đặt pipx
sudo apt install pipx -y
pipx ensurepath
# Cài đặt Frappe Manager
pipx install frappe-manager
# Cài đặt tự động hoàn thành lệnh (tùy chọn nhưng rất hữu ích)
fm --install-completion
Lưu ý: Sau bước này, hãy đóng và mở lại terminal hoặc chạy lệnh source ~/.bashrc để fm có thể được nhận diện.
Tạo Site ERPNext Production
Bây giờ, chúng ta sẽ sử dụng fm để tạo một trang ERPNext hoàn chỉnh cho môi trường production.
Kịch bản 1: Cài đặt trên Server thật với Tên miền và IP tĩnh (Khuyến nghị)
Đây là phương pháp chuẩn cho môi trường thực tế. Bạn cần trỏ DNS của tên miền về IP máy chủ trước khi chạy lệnh này.
# Lệnh tạo site production với SSL
fm create erp.yourdomain.com \
--apps erpnext:version-15 \
--environment prod \
--ssl letsencrypt \
--letsencrypt-email your-email@example.com
Giải thích các tham số:
- erp.yourdomain.com: Tên trang web thật của bạn.
- --apps erpnext:version-15: Chỉ định cài đặt ứng dụng erpnext phiên bản 15.
- --environment prod: Thiết lập môi trường production (Nginx, Redis, v.v.).
- --ssl letsencrypt: Tự động cấu hình HTTPS an toàn.
- --letsencrypt-email: Email của bạn để nhận thông báo từ Let's Encrypt.
Kịch bản 2: Cài đặt để Thử nghiệm trên Máy ảo (Không có IP tĩnh/Tên miền thật)
Phương pháp này rất phù hợp với tình huống của bạn: cài đặt trên máy ảo VirtualBox để thử nghiệm mà không cần tên miền thật hay IP tĩnh.
Bước 4.1: Tạo Site trên Máy ảo Ubuntu
Trên máy ảo Ubuntu, chạy lệnh fm create nhưng bỏ qua các tham số về SSL. Chúng ta sẽ sử dụng một tên miền giả, ví dụ erp.test.
# Lệnh tạo site production cho môi trường thử nghiệm (chỉ HTTP)
fm create erp.xhuman \
--apps erpnext:version-15 \
--environment prod
Lệnh này sẽ tạo một site production hoàn chỉnh nhưng chỉ có thể truy cập qua giao thức http://.
Bước 4.2: Cấu hình file hosts trên Máy tính Windows (Máy thật)
Để máy Windows của bạn "hiểu" được erp.test là địa chỉ nào, bạn cần chỉnh sửa file hosts.
- Mở Notepad với quyền Administrator:
- Nhấn phím Windows, gõ Notepad.
- Chuột phải vào ứng dụng Notepad và chọn Run as administrator.
- Mở file hosts:
- Trong Notepad, vào File -> Open.
- Dán đường dẫn sau vào ô File name và nhấn Enter: C:\Windows\System32\drivers\etc\hosts
- Nếu không thấy file, hãy chắc chắn bạn đã chọn "All Files" ở góc dưới bên phải thay vì "Text Documents (*.txt)".
- Thêm dòng cấu hình:
- Thêm một dòng mới vào cuối file với định dạng: IP_MÁY_ẢO TÊN_MIỀN_GIẢ
Ví dụ: Nếu IP của máy ảo Ubuntu (card mạng Host-Only) là 192.168.56.101, bạn sẽ thêm dòng:
192.168.56.101 erp.xhuman
- Lưu file (Ctrl + S).
Bước 4.3: Truy cập Site
Bây giờ, hãy mở trình duyệt trên máy Windows của bạn và truy cập vào địa chỉ:
Bạn sẽ thấy trang đăng nhập của ERPNext. Chúc mừng, bạn đã cài đặt thành công môi trường production để thử nghiệm!
Quản lý Site với fm
frappe-manager cung cấp các lệnh đơn giản và mạnh mẽ để quản lý vòng đời của trang web:
- Liệt kê tất cả các trang: fm list
- Xem thông tin chi tiết một trang: fm info erp.xhuman
- Khởi động trang: fm start erp.xhuman
- Dừng trang: fm stop erp.xhuman
- Khởi động lại trang: fm restart erp.xhuman
- Xem logs (nhật ký) của trang: fm logs erp.xhuman -f
- Truy cập shell của bench: fm shell erp.xhuman
- Lệnh này rất quan trọng, cho phép bạn chạy các lệnh bench truyền thống như bench migrate, bench install-app, v.v. bên trong container.
- Sao lưu trang: fm backup erp.xhuman
- Xóa hoàn toàn một trang: fm destroy erp.xhuman (Hãy cẩn thận với lệnh này!)