Cách cài đặt ERPNext trên Debian 12

theanh

Administrator
Nhân viên
ERPNext là giải pháp hoạch định nguồn lực doanh nghiệp (ERP) mã nguồn mở. ERPNext có thể được sử dụng trong nhiều ngành công nghiệp khác nhau như sản xuất, phân phối, bán lẻ, thương mại, dịch vụ, giáo dục, phi lợi nhuận và chăm sóc sức khỏe. ERPNext cũng cung cấp các mô-đun như kế toán, CRM, bán hàng, mua hàng, trang web, thương mại điện tử, điểm bán hàng, sản xuất, kho, quản lý dự án, hàng tồn kho và dịch vụ.

ERPNext là nền tảng ERP doanh nghiệp được cấp phép theo Giấy phép Công cộng GNU v3. ERPNext chủ yếu được viết bằng Python và JavaScript và được phát triển bởi Frappe Technologies Pvt. Ltd. ERPNext là ứng dụng được viết theo frappeframework, một khuôn khổ web mã nguồn mở bằng Python và JavaScript.

ERPNext được phát triển như một giải pháp thay thế cho các dịch vụ như NetSuite từ Oracle, QAD, Tython, OpenBrave và Odoo. Về mặt chức năng, ERPNext tương tự như Odoo (trước đây là OpenERP).

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cài đặt ERPNext trên máy chủ Debian 12. Bạn sẽ cài đặt ERPNext với máy chủ cơ sở dữ liệu MariaDB, Nginx làm proxy ngược và trình quản lý quy trình giám sát.

Điều kiện tiên quyết​

Để bắt đầu, hãy đảm bảo bạn có quyền truy cập vào:
  • Máy chủ Debian 12.
  • Người dùng không phải root có quyền quản trị viên sudo.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt Dependencies​

ERPNext là phần mềm ERP và CRM nguồn mở được viết bằng Python. Để cài đặt ERPNext, bạn phải cài đặt các phần phụ thuộc như Python 3, MariaDB Server, Node.js, trình quản lý gói Yarn, Nginx, trình quản lý quy trình Supervisor và Redis vào máy chủ Debian của bạn.

Trong bước đầu tiên này, bạn sẽ cài đặt các phần phụ thuộc ERPNext từ kho lưu trữ Debian. Sau đó, bạn cũng sẽ xác minh từng phụ thuộc để đảm bảo mọi thứ đã được cài đặt.

Trước khi cài đặt các phụ thuộc, hãy thực hiện lệnh apt update bên dưới để làm mới chỉ mục gói Debian của bạn.
Mã:
sudo apt update
Bây giờ hãy chạy lệnh sau để cài đặt các phụ thuộc cho ERPNext, bao gồm Python 3.11, Node.js, NPM, máy chủ MariaDB, máy chủ web Nginx, trình quản lý quy trình Supervisor và Redis máy chủ.
Mã:
sudo apt install python3-dev python3-venv nodejs yarnpkg npm redis-server mariadb-server nginx supervisor fail2ban libffi-dev git python3-pip python3-testresources libssl-dev wkhtmltopdf gcc g++ make
Nhập y để tiếp tục cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22145%22%3E%3C/svg%3E


Sau khi cài đặt các phụ thuộc, hãy xác minh từng phụ thuộc bằng cách thực hiện lệnh sau. Bạn sẽ xác minh một số dịch vụ thông qua lệnh systemctl để đảm bảo rằng mỗi dịch vụ đang chạy và được bật.

Xác minh máy chủ MariaDB bằng lệnh sau.
Mã:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22256%22%3E%3C/svg%3E


Xác minh dịch vụ Nginx để đảm bảo rằng dịch vụ đang chạy và đã bật.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22258%22%3E%3C/svg%3E


Bây giờ hãy xác minh dịch vụ quản lý quy trình giám sát bằng lệnh bên dưới.
Mã:
sudo systemctl is-enabled supervisor
sudo systemctl status supervisor

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22211%22%3E%3C/svg%3E


Sau đó, xác minh Redis để đảm bảo nó khả dụng và sẵn sàng cho ERPNext sản xuất.
Mã:
sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22223%22%3E%3C/svg%3E


Tiếp theo, hãy xác minh phiên bản Node.js và NPM bằng cách sử dụng lệnh sau lệnh.
Mã:
node --version
npm --version
Kết quả đầu ra sau đây xác nhận rằng Node.js v18.x và NPM 1.22 đã được cài đặt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22363%22%20height=%22138%22%3E%3C/svg%3E


Cuối cùng, hãy xác minh phiên bản wkhtmltopdf bằng lệnh bên dưới. Bạn sẽ thấy phiên bản wkhtmltopdf 0.12 đã được cài đặt.
Mã:
wkhtmltopdf --version
wkhtmltoimage --version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22398%22%20height=%22143%22%3E%3C/svg%3E

Cấu hình MariaDB Server​

Sau khi cài đặt các phụ thuộc, bạn sẽ cấu hình máy chủ MariaDB của mình để đảm bảo máy chủ đã sẵn sàng cho cài đặt ERPNext. ERPNext yêu cầu định dạng barracuda phải được bật và bộ ký tự mặc định được cấu hình thành utf8mb4. Bạn cũng sẽ bảo mật máy chủ MariaDB của mình thông qua tiện ích mariadb-secure-installation.

Thực hiện lệnh mariadb-secure-installation bên dưới để bảo mật cài đặt máy chủ MariaDB của bạn.
Mã:
sudo mariadb-secure-installation
Nhập Y để áp dụng khi được hỏi với các cấu hình sau:
  • Chuyển xác thực cục bộ sang unix_socket? Nhập n để không.
  • Thiết lập mật khẩu gốc MariaDB? Nhập y, sau đó nhập mật khẩu gốc MariaDB mới và lặp lại.
  • Xóa người dùng ẩn danh mặc định? Nhập y để xác nhận.
  • Vô hiệu hóa đăng nhập từ xa cho người dùng gốc? Nhập y để xác nhận.
  • Xóa kiểm tra cơ sở dữ liệu mặc định? Nhập y để xác nhận.
  • Tải lại các đặc quyền của bảng và áp dụng các thay đổi? Nhập y để xác nhận.
Bây giờ hãy mở cấu hình Máy chủ MariaDB /etc/mysql/mariadb.conf.d/50-server.cnf bằng trình soạn thảo nano sau.
Mã:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Chèn cấu hình sau vào phần [mysqld] để bật định dạng barracuda và thiết lập bộ ký tự mặc định thành utf8mb4.
Mã:
[mysqld]
innodb-file-format=barracuda
innodb-file-per-table=1
innodb-large-prefix=1
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Tiếp theo, mở tệp /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf bằng trình chỉnh sửa nano để cấu hình máy khách MariaDB kết nối.
Mã:
sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
Thêm cấu hình sau vào phần [mysql].
Mã:
[mysql]
default-character-set = utf8mb4
Lưu và thoát tệp.

Cuối cùng, chạy lệnh sau để khởi động lại máy chủ MariaDB và áp dụng cấu hình.
Mã:
sudo systemctl restart mariadb

Cài đặt Công cụ dòng lệnh Bench​

Bench cũng là một dòng lệnh để quản lý Frappe Frameworks, bao gồm các ứng dụng và trang web. ERPNext là một ứng dụng web được viết bằng Frappe Framework, bạn phải cài đặt nó thông qua Bench.

Hoàn thành phần sau để tạo một người dùng mới sẽ được sử dụng cho ERPNext, sau đó cài đặt tiện ích Bench vào hệ thống Debian của bạn.

Đầu tiên, thực hiện lệnh sau để thêm người dùng mới frappe, nhập mật khẩu mới và lặp lại.
Mã:
sudo useradd -m -s /bin/bash frappe
sudo passwd frappe
Thêm người dùng frappe vào nhóm sudo để cho phép thực thi sudo lệnh.
Mã:
sudo usermod -aG sudo frappe

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22497%22%20height=%22186%22%3E%3C/svg%3E


Tiếp theo, đăng nhập với tư cách là người dùng mới frappe và cài đặt frappe-bench hoặc gói bench thông qua gói pip Python quản lý.
Mã:
su - frappe
sudo pip3 install frappe-bench --break-system-packages

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22326%22%3E%3C/svg%3E


Sau khi frappe-bench được cài đặt, hãy xác minh nó bằng lệnh sau. Trong ví dụ này, bench 5.17 được cài đặt tại /usr/local/bin/bench.
Mã:
which bench
bench --version

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22368%22%20height=%22153%22%3E%3C/svg%3E

Cài đặt ERPNext qua Bench​

Trong ví dụ này phần, bạn sẽ cài đặt ERPNext qua dòng lệnh Bench. Bạn sẽ khởi tạo dự án Frappe Framework, tạo một trang web mới, sau đó tải xuống và cài đặt ứng dụng ERPNext vào dự án Frapper.

Đầu tiên, thực hiện lệnh bench bên dưới để khởi tạo Frappe Framework 14 vào thư mục frappe-bench.
Mã:
bench init --python python3.11 --frappe-branch version-14 frappe-bench
Bên dưới, bạn sẽ thấy quá trình cài đặt Frappe Framework bắt đầu.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22231%22%3E%3C/svg%3E


Sau khi khởi tạo, bạn sẽ nhận được kết quả đầu ra sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22697%22%20height=%22579%22%3E%3C/svg%3E


Bây giờ hãy chạy lệnh bên dưới để cho phép người dùng thực thi Frappe Framework. Điều này sẽ cho phép các nhóm như www-data thực thi Frappe Framework.
Mã:
sudo chmod -R o+rx /home/frappe/frappe-bench
Tiếp theo, di chuyển đến thư mục cài đặt Frappe Framework ~/frappe-bench và tạo một trang web mới erp.howtoforge.local.
Mã:
cd ~/frappe-bench
bench new-site erp.howtoforge.local --admin-password 'erpadmin' --mariadb-root-username root --mariadb-root-password 'password'
Dưới đây là kết quả bạn sẽ nhận được sau khi trang web mới được tạo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22176%22%3E%3C/svg%3E


Chuyển sang trang web mới erp.howtoforge.local bằng cách thực hiện lệnh bench bên dưới.
Mã:
bench use erp.howtoforge.local
Sau khi chuyển đổi, bạn sẽ thấy đầu ra Trang web hiện tại được đặt thành erp.howtoforge.local.

Bây giờ chạy lệnh bench bên dưới để tải xuống các khoản thanh toán và các ứng dụng tiếp theo.
Mã:
bench get-app payments
bench get-app --branch version-14 erpnext

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22728%22%20height=%22263%22%3E%3C/svg%3E



data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22212%22%3E%3C/svg%3E


Sau khi tải xuống erpnext, hãy chạy lệnh sau để cài đặt vào trang web erp.howtoforge.local. Thao tác này cũng sẽ tự động cài đặt ứng dụng thanh toán.
Mã:
bench --site erp.howtoforge.local install-app erpnext

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22184%22%3E%3C/svg%3E


Sau khi cài đặt hoàn tất, hãy thực hiện lệnh bên dưới để bật trình lập lịch và tắt bảo trì trên trang web erp.howtoforge.local.
Mã:
bench --site erp.howtoforge.local enable-scheduler
bench --site erp.howtoforge.local set-maintenance-mode off

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22123%22%3E%3C/svg%3E


Lúc này, ERPNext đã được cài đặt, bạn sẽ cấu hình ERPNext bằng cách thêm Nginx làm proxy ngược và Supervisor làm trình quản lý quy trình cho cài đặt ERPNext của bạn.

Chuẩn bị ERPNext cho sản xuất​

Trong bước này, bạn sẽ thiết lập ERPNext cho sản xuất bằng cách cấu hình Nginx làm proxy ngược và Supervisor làm trình quản lý quy trình, có thể thực hiện tự động thông qua Bench.

Thực hiện lệnh sau để cấu hình cài đặt ERPNext. Thao tác này sẽ tải xuống và cài đặt Ansible, sau đó tự động cấu hình Nginx làm proxy ngược và trình quản lý quy trình Supervisor.
Mã:
sudo pip3 install ansible --break-system-packages
sudo bench setup production frappe
Dưới đây là cấu hình tự động của Nginx và Supervisor cho cài đặt ERPNext của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22639%22%20height=%22297%22%3E%3C/svg%3E


Nếu có lỗi, bạn cũng có thể cấu hình cả hai Nginx và Supervisor sử dụng lệnh bên dưới.
Mã:
sudo bench setup supervisor
sudo bench setup nginx
sudo bench setup production frappe
Tiếp theo, khởi động lại dịch vụ Nginx và Supervisor để đảm bảo rằng những thay đổi mới đang được áp dụng.
Mã:
sudo systemctl restart nginx supervisor
Bây giờ hãy chạy lệnh bên dưới để xác minh dịch vụ Nginx và đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status nginx
Đầu ra sau đây cho biết Nginx đang chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E


Cuối cùng, thực hiện lệnh supervisorctl bên dưới để xác minh danh sách quy trình ERPNext với Giám sát.
Mã:
sudo supervisorctl status
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy từng quy trình có trạng thái ĐANG CHẠY.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22199%22%3E%3C/svg%3E


Sau khi cấu hình Nginx và Giám sát, bạn đã sẵn sàng để bắt đầu cài đặt ERPNext từ trình duyệt web của mình.

Cài đặt ERPNext qua Web Installer​

Khởi chạy trình duyệt web của bạn và truy cập tên miền cài đặt ERPNext của bạn, chẳng hạn như http://erp.howtoforge.local/. Nếu cài đặt ERPNext của bạn thành công, bạn sẽ thấy trang đăng nhập ERPNext.

Nhập người dùng mặc định Quản trị viên và mật khẩu mà bạn đã cấu hình, sau đó nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22674%22%20height=%22563%22%3E%3C/svg%3E


Chọn ngôn ngữ, múi giờ, quốc gia và tiền tệ mặc định. Sau đó, nhấp vào Tiếp theo để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22625%22%3E%3C/svg%3E


Bây giờ hãy nhập thông tin chi tiết về người dùng ERPNext đầu tiên của bạn và nhấp vào Tiếp theo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22693%22%20height=%22621%22%3E%3C/svg%3E


Cuối cùng, hãy nhập thông tin chi tiết về tổ chức của bạn và nhấp vào nút Hoàn tất thiết lập để hoàn tất Cài đặt ERPNExt.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22740%22%20height=%22636%22%3E%3C/svg%3E


Nếu cài đặt thành công, bạn sẽ nhận được bảng điều khiển ERPNext như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22494%22%3E%3C/svg%3E


Bây giờ quá trình cài đặt ERPNext đã hoàn tất.

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt ERPNext trên Debian 12 với máy chủ MariaDB và máy chủ web Nginx. Bạn đã cài đặt ERPNext qua dòng lệnh Bench trên máy chủ Debian của mình và bây giờ bạn có thể sử dụng ERPNext làm Enterprise Resource Planning cho tổ chức của mình.
 
Back
Bên trên