ERPNext là hệ thống ERP (Lập kế hoạch nguồn lực doanh nghiệp) nguồn mở có thể được triển khai trong doanh nghiệp của bạn. ERPNext có thể được triển khai trong nhiều ngành công nghiệp, chẳng hạn 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. Ngoài ra, nó 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. Nó chủ yếu được viết bằng Python và JavaScript, được phát triển bởi Frappe Technologies Pvt. ERPNext là một ứng dụng được viết theo khuôn khổ Frappe, một khuôn khổ web nguồn mở bằng Python và Javascript.
ERPNext là 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, bạn sẽ cài đặt ERPNext trên máy chủ Debian 11 và sau đó bảo mật ERPNext bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt. Bạn cũng sẽ tìm hiểu cách cài đặt các phần phụ thuộc cho ERPNext, chẳng hạn như Python 3.10, Redis, Nginx, Supervisor, Fail2ban, MariaDB Server, Node.js và Yarn, và Frappe Web Framework.
Chạy lệnh bên dưới để tạo người dùng mới và thiết lập mật khẩu cho người dùng mới. Trong ví dụ này, bạn sẽ tạo một người dùng mới 'frappe' sẽ được sử dụng để chạy ERPNext.
Bây giờ hãy thêm người dùng 'frappe' vào nhóm 'sudo' thông qua lệnh bên dưới lệnh.
Cuối cùng, xác minh người dùng mới bằng cách thực hiện lệnh bên dưới. Bạn sẽ đăng nhập với tư cách là người dùng 'frappe' và nhận được quyền root thông qua lệnh 'sudo su'.
Bạn nên đổi dấu nhắc trên thiết bị đầu cuối thành 'root@hostname:/home/frappe..'. Bây giờ hãy nhập 'exit' để đăng xuất khỏi root shell.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22634%22%20height=%22519%22%3E%3C/svg%3E
Với thao tác này, bạn đã tạo một người dùng mới cho ERPNext. Trong các bước tiếp theo, bạn sẽ cài đặt Python 3.10 theo cách thủ công bằng cách biên dịch nó từ nguồn.
Trong bước này, bạn sẽ cài đặt Python 3.10 theo cách thủ công từ nguồn. Bởi vì kho lưu trữ Debian 11 hiện tại vẫn chưa cung cấp các gói Python 3.10.
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã đăng nhập vào máy chủ Debian của mình với tư cách là người dùng mới 'frappe'.
Để bắt đầu, hãy chạy lệnh bên dưới để cập nhật gói Debian của bạn index.
Bây giờ hãy chạy lệnh apt bên dưới để cài đặt các phụ thuộc để biên dịch Python.
Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22467%22%3E%3C/svg%3E
Tiếp theo, tải xuống mã nguồn Python 3.10 từ trang tải xuống Python thông qua lệnh wget bên dưới. Trong ví dụ này, bạn sẽ tải xuống và cài đặt Python 3.10.9.
Sau khi tải xuống mã nguồn Python, hãy giải nén mã nguồn Python thông qua lệnh tar và di chuyển thư mục làm việc vào đó.
Bây giờ hãy chạy lệnh bên dưới để biên dịch Python 3.10 và cài đặt nó.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22716%22%20height=%22410%22%3E%3C/svg%3E
Sau khi quá trình cài đặt Python hoàn tất, bạn sẽ nhận được tệp nhị phân Python trong thư mục '/usr/local/bin/'. Chạy lệnh bên dưới để xác minh cài đặt Python 3.10.
Bạn sẽ thấy tệp nhị phân của các gói Python 3.10 như 'python3.10' và 'pip3.10'.
Tiếp theo, để đảm bảo rằng bạn có thể chạy phiên bản lệnh Python mới, bạn nên thêm thư mục '/usr/local/bin' vào hệ thống PATH và visudo secure_path.
Tạo một tệp mới '/etc/profile.d/custom-path.sh' sử dụng lệnh trình chỉnh sửa nano bên dưới.
Thêm dòng sau vào tệp.
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh bên dưới để tải tệp mới '/etc/profile.d/custom-path.sh' và xác minh hệ thống PATH.
Bạn sẽ thấy thư mục '/usr/local/bin' được thêm vào biến môi trường PATH của hệ thống.
Tiếp theo, chạy lệnh bên dưới để chỉnh sửa sudoers cấu hình.
Trên dòng 'Defaults secure_path=', thêm secure_path nhị phân mới '/usr/local/bin'.
Lưu và thoát khỏi trình soạn thảo khi hoàn tất.
Với thao tác này, giờ bạn có thể thực thi Python mới 3.10 thông qua lệnh sudo. Chạy lệnh bên dưới để xác minh Python3.10 và Pip3.10.
Dưới đây là kết quả tương tự mà bạn sẽ nhận được trên thiết bị đầu cuối của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22401%22%3E%3C/svg%3E
Bây giờ bạn đã cài đặt Python 3.10, chuyển sang cài đặt tiếp theo của các phụ thuộc ERPNext, đó là máy chủ web Nginx và Supervisor.
Chạy lệnh apt bên dưới để cài đặt các gói Nginx và Supervisor.
Nhập y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E
Tiếp theo, hãy chạy tiện ích lệnh systemctl bên dưới để xác minh cả hai dịch vụ Nginx và Supervisor. Điều này sẽ đảm bảo rằng cả hai dịch vụ Nginx và Supervisor đều đang chạy và được bật, nghĩa là cả hai dịch vụ sẽ tự động chạy khi khởi động.
Kiểm tra dịch vụ Nginx.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22232%22%3E%3C/svg%3E
Kiểm tra Supervisor dịch vụ.
Đầu ra:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22207%22%3E%3C/svg%3E
Sau khi Nginx và Supervisor đã được cài đặt và đang chạy, hãy chuyển sang cài đặt Redis Server và Fail2ban tiếp theo.
ERPNext yêu cầu Redis sẽ được sử dụng làm trình quản lý phiên và Fail2ban để chặn các cuộc tấn công bằng vũ lực trên trang đăng nhập người dùng ERPNext.
Chạy lệnh apt bên dưới để cài đặt Redis và Fail2ban vào máy chủ Debian của bạn.
Nhập y khi được nhắc xác nhận, sau đó nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22735%22%20height=%22330%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22331%22%3E%3C/svg%3E
Sau khi Redis và Fail2ban được cài đặt, hãy chạy lệnh systemctl bên dưới để xác minh cả hai dịch vụ.
Đối với dịch vụ Redis, bạn sẽ thấy đầu ra tương tự như sau - Dịch vụ Redis đã được bật và sẽ tự động chạy khi khởi động. Và trạng thái hiện tại của Redis đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Đối với dịch vụ Fail2ban, bạn sẽ thấy đầu ra tương tự như thế này - Dịch vụ Fail2ban đã được bật và sẽ tự động chạy khi khởi động. Và trạng thái hiện tại của Fail2ban đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22246%22%3E%3C/svg%3E
Bây giờ bạn đã cài đặt và chạy Redis Server và Fail2ban. Trong các bước tiếp theo, bạn sẽ cài đặt và cấu hình máy chủ cơ sở dữ liệu MariaDB.
Trong bước này, bạn sẽ cài đặt MariaDB Server 10.6 từ kho lưu trữ MariaDB chính thức. Sau đó, bạn sẽ thêm cấu hình vào Máy chủ MariaDB của mình và bảo mật việc triển khai Máy chủ MariaDB.
Chạy lệnh bên dưới để thêm kho lưu trữ Máy chủ MariaDB v10.6.
Bạn sẽ nhận được đầu ra tương tự như thế này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22124%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới lệnh apt để cài đặt các gói MariaDB.
Nhập y khi được nhắc cài đặt và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22365%22%3E%3C/svg%3E
Sau khi Máy chủ MariaDB được cài đặt, hãy chạy lệnh systemctl bên dưới để xác minh dịch vụ MariaDB và đảm bảo rằng dịch vụ được bật và đang chạy.
Bây giờ bạn sẽ nhận được kết quả như sau - dịch vụ MariaDB đã được bật và sẽ tự động chạy khi khởi động. Và trạng thái hiện tại của dịch vụ MariaDB đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22241%22%3E%3C/svg%3E
Tiếp theo, mở tệp cấu hình Máy chủ MariaDB '/etc/alternatives/my.cnf' bằng lệnh trình chỉnh sửa nano bên dưới.
Thêm các dòng sau vào tệp. Cấu hình bên dưới sẽ kích hoạt định dạng 'barruca' trên Máy chủ MariaDB của bạn và bạn cũng sẽ thiết lập bộ ký tự mặc định cho cả máy chủ và máy khách thành 'utf8mb4'.
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.
Bây giờ hãy chạy tiện ích lệnh systemctl bên dưới để khởi động lại dịch vụ MariaDB và áp dụng thay đổi.
Tiếp theo, bạn sẽ bảo mật triển khai MariaDB của mình.
Chạy lệnh bên dưới 'mariadb-secure-installation' để bảo mật triển khai MariaDB của bạn. Sau đó, bạn sẽ được yêu cầu cấu hình mật khẩu gốc MariaDB, vì vậy hãy đảm bảo nhập và lặp lại mật khẩu mới. Đối với các cấu hình còn lại, nhập Y để xác nhận và nhấn ENTER.
Với bước này, bạn đã hoàn tất quá trình cài đặt và cấu hình MariaDB Server. Ở bước tiếp theo, bạn sẽ cài đặt gói wkhtmltopdf mà ERPNext sẽ sử dụng để tạo báo cáo PDF.
Chạy lệnh bên dưới để cài đặt gói wkhtmltopdf. Nhập Y khi được nhắc và nhấn ENTER để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22265%22%3E%3C/svg%3E
Sau khi Wkhtmltopdf được cài đặt, hãy chạy lệnh bên dưới để xác minh. Lệnh wkhtmltopdf được sử dụng để chuyển đổi trang HTML sang PDF, trong khi lệnh wkhtmltoimage chuyển đổi trang HTML sang nhiều định dạng hình ảnh khác nhau.
Bạn sẽ nhận được kết quả tương tự như sau - Wkhtmltopdf v0.12 đã được cài đặt trên hệ thống Debian của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22547%22%20height=%22291%22%3E%3C/svg%3E
Trong các bước tiếp theo, bạn sẽ cài đặt trình quản lý gói Node.js và Yarn sẽ được sử dụng để tạo các tệp tĩnh cho ERPNext.
Để bắt đầu, hãy chạy lệnh bên dưới để thêm kho lưu trữ Nodesource cho Node.js 16.
Sau đó, bạn sẽ nhận được kết quả tương tự như thế này.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22325%22%3E%3C/svg%3E
Tiếp theo, hãy chạy lệnh bên dưới để thêm kho lưu trữ Yarn cho bản phân phối Debian-Linux.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E
Sau đó, hãy cập nhật và làm mới chỉ mục gói Debian của bạn thông qua lệnh 'apt update'. Sau đó, cài đặt trình quản lý gói Node.js và yarn thông qua lệnh 'apt install'.
Bây giờ, quá trình cài đặt trình quản lý gói Node.js và Yarn sẽ bắt đầu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22204%22%3E%3C/svg%3E
Khi Node.js và yarn được cài đặt, bạn đã hoàn tất quá trình cài đặt các gói phụ thuộc cho Frappe Web Framework và ứng dụng ERPNext.
Vì vậy, trước tiên, bạn phải cài đặt bench. Sau đó, cài đặt frappeframework thông qua bench. Cuối cùng, bạn sẽ cài đặt ứng dụng ERPNext trong frappeframework.
Để cài đặt bench, hãy chạy lệnh pip3.10 bên dưới.
Bạn sẽ nhận được kết quả tương tự như thế này trong quá trình cài đặt bench.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22351%22%3E%3C/svg%3E
Sau khi cài đặt xong bench, hãy chạy lệnh bên dưới để xác minh. Bạn sẽ nhận được lệnh đường dẫn nhị phân 'bench' và phiên bản hiện tại của bench mà bạn đã cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22443%22%20height=%22140%22%3E%3C/svg%3E
Sau khi bench được cài đặt, bạn sẽ cài đặt frappeframework. Chạy lệnh 'bench' bên dưới để cài đặt frappeframework trên thư mục làm việc hiện tại của bạn. Ngoài ra, bạn sẽ chỉ định phiên bản Python sẽ được sử dụng cho Python 3.10, chỉ định phiên bản frappeframework là v14., và thư mục cài đặt đích là 'frappe-bench'.
Bạn sẽ nhận được đầu ra tương tự như thế này trong quá trình cài đặt frappeframework.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Sau khi frappeframework được cài đặt, bạn sẽ nhận được kết quả sau khi cài đặt xong.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22582%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh bên dưới để cho phép những người dùng khác đọc và thực thi thư mục cài đặt frappeframwprk. Điều này là cần thiết để máy chủ web Nginx có thể đọc và thực thi frappframework.
Sau khi cài đặt frappeframework, bạn sẽ sẵn sàng cài đặt và thiết lập ERPNext.
Đầu tiên, di chuyển thư mục làm việc của bạn đến 'frappe-bench' thông qua lệnh cd.
Chạy lệnh bench bên dưới để tạo một site/project mới cho ERPNext. Trong ví dụ này, bạn sẽ tạo một site mới 'erp.howtoforge.local', đây là tên miền mục tiêu của cài đặt ERPNext. Ngoài ra, trong quá trình thiết lập, bạn sẽ được yêu cầu cấu hình mật khẩu Quản trị viên cho project frappe của mình, vì vậy hãy nhập mật khẩu và lặp lại. Mật khẩu này sẽ được sử dụng để đăng nhập vào ứng dụng ERPNext của bạn.
Cuối cùng, chạy lệnh bên dưới để chuyển sang trang web/dự án mới 'erp.howtoforge.local'.
Dưới đây là kết quả trong quá trình tạo trang web/dự án và sau khi bạn chuyển sang trang web/dự án mới site/project.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Dưới đây là kết quả tương tự mà bạn sẽ nhận được trong quá trình tải xuống 'thanh toán'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E
Dưới đây là kết quả tải xuống quá trình của ứng dụng ERPNext.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để cài đặt ứng dụng ERPNext vào trang web/dự án 'erp.howtoforge.local'.
Bạn sẽ nhận được kết quả tương tự như thế này - Bạn cũng sẽ thấy ứng dụng 'payments' được tự động cài đặt làm phần phụ thuộc cho ứng dụng ERPNext.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22333%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh bench bên dưới để bật trình lập lịch và tắt chế độ bảo trì trên site/dự án 'erp.howtoforge.local'.
Tại thời điểm này, quá trình cài đặt ERPNext đã hoàn tất. Nhưng nếu bạn chạy ERPNext trên môi trường sản xuất, tiếp theo bạn nên thiết lập và cấu hình máy chủ web Nginx và Supervisor, có thể được cấu hình thông qua lệnh bench.
Dưới đây là kết quả đầu ra trong quá trình cài đặt Ansible.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Dưới đây là kết quả đầu ra khi cấu hình hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22646%22%20height=%22243%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bench bên dưới để thiết lập Nginx và Supervisor cho ERPNext. Khi được yêu cầu ghi đè các thiết lập hiện tại, hãy nhập y để xác nhận và nhấn ENTER.
Sau đó, hãy chạy lại lệnh bench bên dưới để đảm bảo rằng cấu hình Supervisor và Nginx đã được cài đặt.
Nhập y để ghi đè các thiết lập hiện tại và nhấn ENTR để tiếp tục.
Cuối cùng, chạy lệnh 'supervisorctl' bên dưới với quyền sudo. Thao tác này sẽ xác minh tất cả các quy trình và dịch vụ được frappeframework và ERPNext sử dụng.
Nếu cài đặt ERPNext thành công, bạn sẽ nhận được kết quả tương tự như sau - Tất cả các dịch vụ cho frappeframework và ERPNext đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22233%22%3E%3C/svg%3E
Tại đây point, bạn đã hoàn tất cài đặt ERPNext và nó đang chạy với Nginx làm máy chủ web và Supervisor cho trình quản lý quy trình. Bây giờ bạn có thể truy cập cài đặt ERPNext của mình thông qua tên miền và trình duyệt web.
Nhập người dùng mặc định là 'Quản trị viên' và nhập mật khẩu mà bạn đã sử dụng trong quá trình tạo trang web/dự án.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22617%22%3E%3C/svg%3E
Bây giờ, hãy chọn ngôn ngữ, múi giờ và tiền tệ mặc định. Sau đó nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22673%22%20height=%22590%22%3E%3C/svg%3E
Nhập người dùng quản trị mới cho cài đặt ERPNext của bạn. Nhập tên đầy đủ, địa chỉ email và mật khẩu của bạn, sau đó nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22638%22%3E%3C/svg%3E
Nhập tên công ty và tải logo công ty của bạn lên, sau đó nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22646%22%20height=%22564%22%3E%3C/svg%3E
Nhập thông tin chi tiết về tổ chức của bạn và nhấp vào Hoàn tất thiết lập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22627%22%20height=%22668%22%3E%3C/svg%3E
Bây giờ bạn sẽ thấy bảng điều khiển quản trị cài đặt ERPNext của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22584%22%3E%3C/svg%3E
Chạy lệnh apt bên dưới để cài đặt công cụ certbot và plugin certbot cho máy chủ web Nginx. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
Sau khi certbot được cài đặt, hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL cho tên miền ERPNext của bạn. Hãy chắc chắn thay đổi tên miền và địa chỉ email trong lệnh bên dưới.
Với điều này, cài đặt ERPNext hiện được bảo mật bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt. Bạn cũng đã cấu hình tự động chuyển hướng HTTP sang HTTPS trên tên miền ERPNext của mình, Certbot sẽ tự động xử lý.
Bạn cũng đã học cách cài đặt khung Frappe và xây dựng ERPNext trên đó. Sau đó, bạn đã học cách cấu hình cơ bản của ERPNext như phần mềm ERP.
Cuối cùng, bạn đã thiết lập ERPNext cho sản xuất bằng cách cấu hình Nginx làm máy chủ web và Supervisor làm trình quản lý quy trình. Bạn cũng đã bảo mật việc sử dụng ERPNext với Certbot và Letsencrypt.
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. Nó chủ yếu được viết bằng Python và JavaScript, được phát triển bởi Frappe Technologies Pvt. ERPNext là một ứng dụng được viết theo khuôn khổ Frappe, một khuôn khổ web nguồn mở bằng Python và Javascript.
ERPNext là 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, bạn sẽ cài đặt ERPNext trên máy chủ Debian 11 và sau đó bảo mật ERPNext bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt. Bạn cũng sẽ tìm hiểu cách cài đặt các phần phụ thuộc cho ERPNext, chẳng hạn như Python 3.10, Redis, Nginx, Supervisor, Fail2ban, MariaDB Server, Node.js và Yarn, và Frappe Web Framework.
Điều kiện tiên quyết
Bạn sẽ cần một số yêu cầu sau để hoàn thành hướng dẫn này:- Một máy chủ Debian 11 - Ví dụ này sử dụng máy chủ Debian có tên máy chủ là 'erpnext-server'.
- Một người dùng không phải root có quyền quản trị viên sudo/root. Bạn sẽ chạy tất cả các lệnh trong hướng dẫn này với tư cách là người dùng không phải root.
- Tên miền trỏ đến địa chỉ IP của máy chủ.
Thiết lập người dùng mới
Bước đầu tiên trong hướng dẫn này là tạo một người dùng mới sẽ được sử dụng để chạy ứng dụng ERPNext. Ngoài ra, bạn sẽ thêm người dùng mới vào nhóm 'sudo' và cho phép người dùng này chạy các lệnh với quyền root.Chạy lệnh bên dưới để tạo người dùng mới và thiết lập mật khẩu cho người dùng mới. Trong ví dụ này, bạn sẽ tạo một người dùng mới 'frappe' sẽ được sử dụng để chạy ERPNext.
Mã:
sudo useradd -m -s /bin/bash frappe
sudo passwd frappe
Mã:
sudo usermod -aG sudo frappe
Mã:
su - frappe
sudo su
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22634%22%20height=%22519%22%3E%3C/svg%3E
Với thao tác này, bạn đã tạo một người dùng mới cho ERPNext. Trong các bước tiếp theo, bạn sẽ cài đặt Python 3.10 theo cách thủ công bằng cách biên dịch nó từ nguồn.
Cài đặt Python 3.10
ERPNext là một ứng dụng web được tạo bằng frappeframework, dựa trên Python. Vào thời điểm viết bài này, phiên bản mới nhất của frappeframework và ERPNext yêu cầu ít nhất Python 3.10.Trong bước này, bạn sẽ cài đặt Python 3.10 theo cách thủ công từ nguồn. Bởi vì kho lưu trữ Debian 11 hiện tại vẫn chưa cung cấp các gói Python 3.10.
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã đăng nhập vào máy chủ Debian của mình với tư cách là người dùng mới 'frappe'.
Mã:
su - frappe
Mã:
sudo apt update
Mã:
sudo apt install wget build-essential libncursesw5-dev libssl-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22467%22%3E%3C/svg%3E
Tiếp theo, tải xuống mã nguồn Python 3.10 từ trang tải xuống Python thông qua lệnh wget bên dưới. Trong ví dụ này, bạn sẽ tải xuống và cài đặt Python 3.10.9.
Mã:
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz
Mã:
tar xzf Python-3.10.9.tgz
cd Python-*/
Mã:
./configure --enable-optimizations
nproc
sudo make -j2
sudo make altinstall
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22716%22%20height=%22410%22%3E%3C/svg%3E
Sau khi quá trình cài đặt Python hoàn tất, bạn sẽ nhận được tệp nhị phân Python trong thư mục '/usr/local/bin/'. Chạy lệnh bên dưới để xác minh cài đặt Python 3.10.
Mã:
ls /usr/local/bin
Tiếp theo, để đảm bảo rằng bạn có thể chạy phiên bản lệnh Python mới, bạn nên thêm thư mục '/usr/local/bin' vào hệ thống PATH và visudo secure_path.
Tạo một tệp mới '/etc/profile.d/custom-path.sh' sử dụng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/profile.d/custom-path.sh
Mã:
export PATH=$PATH:/usr/local/bin/
Bây giờ hãy chạy lệnh bên dưới để tải tệp mới '/etc/profile.d/custom-path.sh' và xác minh hệ thống PATH.
Mã:
source /etc/profile.d/custom-path.sh
echo $PATH
Tiếp theo, chạy lệnh bên dưới để chỉnh sửa sudoers cấu hình.
Mã:
sudo visudo
Mã:
Defaults secure_path=....:/usr/local/bin
Với thao tác này, giờ bạn có thể thực thi Python mới 3.10 thông qua lệnh sudo. Chạy lệnh bên dưới để xác minh Python3.10 và Pip3.10.
Mã:
sudo python3.10 --version
sudo pip3.10 --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22401%22%3E%3C/svg%3E
Bây giờ bạn đã cài đặt Python 3.10, chuyển sang cài đặt tiếp theo của các phụ thuộc ERPNext, đó là máy chủ web Nginx và Supervisor.
Cài đặt Nginx và Supervisor
Để cài đặt ERPNext, bạn phải cài đặt Nginx, được sử dụng làm máy chủ web mặc định và Supervisor làm trình quản lý quy trình. Cả hai gói Nginx và Supervisor đều có sẵn trên kho lưu trữ Debian và bạn có thể dễ dàng cài đặt cả hai gói thông qua APT.Chạy lệnh apt bên dưới để cài đặt các gói Nginx và Supervisor.
Mã:
sudo apt install git nginx supervisor
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22377%22%3E%3C/svg%3E
Tiếp theo, hãy chạy tiện ích lệnh systemctl bên dưới để xác minh cả hai dịch vụ Nginx và Supervisor. Điều này sẽ đảm bảo rằng cả hai dịch vụ Nginx và Supervisor đều đang chạy và được bật, nghĩa là cả hai dịch vụ sẽ tự động chạy khi khởi động.
Kiểm tra dịch vụ Nginx.
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=%22232%22%3E%3C/svg%3E
Kiểm tra Supervisor dịch vụ.
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=%22207%22%3E%3C/svg%3E
Sau khi Nginx và Supervisor đã được cài đặt và đang chạy, hãy chuyển sang cài đặt Redis Server và Fail2ban tiếp theo.
Cài đặt Redis và Fail2ban
Redis là cơ sở dữ liệu khóa-giá trị có thể được sử dụng để lưu trữ dữ liệu tạm thời như phiên. Fail2ban là công cụ bảo mật để chặn các cuộc tấn công bằng cách dùng vũ lực đối với các ứng dụng ERPNext của bạn.ERPNext yêu cầu Redis sẽ được sử dụng làm trình quản lý phiên và Fail2ban để chặn các cuộc tấn công bằng vũ lực trên trang đăng nhập người dùng ERPNext.
Chạy lệnh apt bên dưới để cài đặt Redis và Fail2ban vào máy chủ Debian của bạn.
Mã:
sudo apt install redis-server fail2ban
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22735%22%20height=%22330%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22667%22%20height=%22331%22%3E%3C/svg%3E
Sau khi Redis và Fail2ban được cài đặt, hãy chạy lệnh systemctl bên dưới để xác minh cả hai dịch vụ.
Mã:
sudo systemctl is-enabled redis-server
sudo systemctl status redis-server
Mã:
sudo systemctl is-enabled fail2ban
sudo systemctl status fail2ban
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Đối với dịch vụ Fail2ban, bạn sẽ thấy đầu ra tương tự như thế này - Dịch vụ Fail2ban đã được bật và sẽ tự động chạy khi khởi động. Và trạng thái hiện tại của Fail2ban đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22246%22%3E%3C/svg%3E
Bây giờ bạn đã cài đặt và chạy Redis Server và Fail2ban. Trong các bước tiếp theo, bạn sẽ cài đặt và cấu hình máy chủ cơ sở dữ liệu MariaDB.
Cài đặt và cấu hình máy chủ MariaDB
Trong cài đặt mặc định, ERPNext sẽ sử dụng MySQL/MariaDB làm máy chủ cơ sở dữ liệu. ERPNext yêu cầu phiên bản cụ thể của MySQL/MariaDB để cài đặt.Trong bước này, bạn sẽ cài đặt MariaDB Server 10.6 từ kho lưu trữ MariaDB chính thức. Sau đó, bạn sẽ thêm cấu hình vào Máy chủ MariaDB của mình và bảo mật việc triển khai Máy chủ MariaDB.
Chạy lệnh bên dưới để thêm kho lưu trữ Máy chủ MariaDB v10.6.
Mã:
sudo curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.6"
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22124%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới lệnh apt để cài đặt các gói MariaDB.
Mã:
sudo apt install mariadb-server mariadb-client default-libmysqlclient-dev
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22365%22%3E%3C/svg%3E
Sau khi Máy chủ MariaDB được cài đặt, hãy chạy lệnh systemctl bên dưới để xác minh dịch vụ MariaDB và đảm bảo rằng dịch vụ được bật và đang chạy.
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=%22241%22%3E%3C/svg%3E
Tiếp theo, mở tệp cấu hình Máy chủ MariaDB '/etc/alternatives/my.cnf' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/alternatives/my.cnf
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
[mysql]
default-character-set = utf8mb4
Bây giờ hãy chạy tiện ích lệnh systemctl bên dưới để khởi động lại dịch vụ MariaDB và áp dụng thay đổi.
Mã:
sudo systemctl restart mariadb
Chạy lệnh bên dưới 'mariadb-secure-installation' để bảo mật triển khai MariaDB của bạn. Sau đó, bạn sẽ được yêu cầu cấu hình mật khẩu gốc MariaDB, vì vậy hãy đảm bảo nhập và lặp lại mật khẩu mới. Đối với các cấu hình còn lại, nhập Y để xác nhận và nhấn ENTER.
Mã:
sudo mariadb-secure-installation
Cài đặt gói Wkhtmltopdf
Ở bước này, bạn sẽ cài đặt gói Wkhtmltopdf mà ERPNext sẽ sử dụng để tạo báo cáo PDF. Wkhtmltopdf có thể được tải xuống và cài đặt thủ công thông qua tệp .deb hoặc tệp .rpm. Nhưng đối với Debian, bạn có thể cài đặt nó từ kho lưu trữ Debian chính thức thông qua APT.Chạy lệnh bên dưới để cài đặt gói wkhtmltopdf. Nhập Y khi được nhắc và nhấn ENTER để tiếp tục.
Mã:
sudo apt install xvfb libfontconfig wkhtmltopdf
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22265%22%3E%3C/svg%3E
Sau khi Wkhtmltopdf được cài đặt, hãy chạy lệnh bên dưới để xác minh. Lệnh wkhtmltopdf được sử dụng để chuyển đổi trang HTML sang PDF, trong khi lệnh wkhtmltoimage chuyển đổi trang HTML sang nhiều định dạng hình ảnh khác nhau.
Mã:
which wkhtmltopdf
wkhtmltopdf --version
Mã:
which wkhtmltoimage
wkhtmltoimage --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22547%22%20height=%22291%22%3E%3C/svg%3E
Trong các bước tiếp theo, bạn sẽ cài đặt trình quản lý gói Node.js và Yarn sẽ được sử dụng để tạo các tệp tĩnh cho ERPNext.
Cài đặt Nodejs 16 và Yarn
Phiên bản mới nhất của ERPNext là v14, yêu cầu ít nhất trình quản lý gói Node.js 16 và Yarn. Trong bước này, bạn sẽ cài đặt Node.js 16 thông qua kho lưu trữ Nodesource. Sau đó, cài đặt trình quản lý gói Yarn.Để bắt đầu, hãy chạy lệnh bên dưới để thêm kho lưu trữ Nodesource cho Node.js 16.
Mã:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22325%22%3E%3C/svg%3E
Tiếp theo, hãy chạy lệnh bên dưới để thêm kho lưu trữ Yarn cho bản phân phối Debian-Linux.
Mã:
sudo curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22222%22%3E%3C/svg%3E
Sau đó, hãy cập nhật và làm mới chỉ mục gói Debian của bạn thông qua lệnh 'apt update'. Sau đó, cài đặt trình quản lý gói Node.js và yarn thông qua lệnh 'apt install'.
Mã:
sudo apt update
sudo apt install nodejs yarn
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22204%22%3E%3C/svg%3E
Khi Node.js và yarn được cài đặt, bạn đã hoàn tất quá trình cài đặt các gói phụ thuộc cho Frappe Web Framework và ứng dụng ERPNext.
Cài đặt frappe framework và frappe-bench
ERPNext là phần mềm ERP nguồn mở được tạo bằng frappeframework, được viết bằng Python và JavaScript. Để cài đặt ERPNext, bạn phải cài đặt frappeframework trên hệ thống của mình và có thể cài đặt thông qua 'frappe-bench' hoặc 'bench'.Vì vậy, trước tiên, bạn phải cài đặt bench. Sau đó, cài đặt frappeframework thông qua bench. Cuối cùng, bạn sẽ cài đặt ứng dụng ERPNext trong frappeframework.
Để cài đặt bench, hãy chạy lệnh pip3.10 bên dưới.
Mã:
sudo pip3.10 install frappe-bench
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22351%22%3E%3C/svg%3E
Sau khi cài đặt xong bench, hãy chạy lệnh bên dưới để xác minh. Bạn sẽ nhận được lệnh đường dẫn nhị phân 'bench' và phiên bản hiện tại của bench mà bạn đã cài đặt.
Mã:
which bench
bench --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22443%22%20height=%22140%22%3E%3C/svg%3E
Sau khi bench được cài đặt, bạn sẽ cài đặt frappeframework. Chạy lệnh 'bench' bên dưới để cài đặt frappeframework trên thư mục làm việc hiện tại của bạn. Ngoài ra, bạn sẽ chỉ định phiên bản Python sẽ được sử dụng cho Python 3.10, chỉ định phiên bản frappeframework là v14., và thư mục cài đặt đích là 'frappe-bench'.
Mã:
bench init --python python3.10 --frappe-branch version-14 frappe-bench
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Sau khi frappeframework được cài đặt, bạn sẽ nhận được kết quả sau khi cài đặt xong.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22582%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh bên dưới để cho phép những người dùng khác đọc và thực thi thư mục cài đặt frappeframwprk. Điều này là cần thiết để máy chủ web Nginx có thể đọc và thực thi frappframework.
Mã:
sudo chmod -R o+rx /home/frappe/frappe-bench
or
sudo chmod -R o+rx /home/frappe
Thiết lập Site/Project mới trong Frappeframework
Trước khi cài đặt ERPNext, bạn phải tạo một site/project mới trên frappeframework. Trong bước này, bạn sẽ tạo một site/project mới và chuyển môi trường vào project mới thông qua bench.Đầu tiên, di chuyển thư mục làm việc của bạn đến 'frappe-bench' thông qua lệnh cd.
Mã:
cd ~/frappe-bench
Mã:
bench new-site erp.howtoforge.local
Mã:
bench use erp.howtoforge.local
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Cài đặt ERPNext qua frappe-bench
Sau khi site/project mới trên frappeframework được tạo, hãy chạy lệnh bên dưới để tải xuống ứng dụng 'payments' và 'erpnext'. Trong ví dụ này, bạn sẽ tải xuống ERPNexxt v14.
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=%22750%22%20height=%22222%22%3E%3C/svg%3E
Dưới đây là kết quả tải xuống quá trình của ứng dụng ERPNext.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22221%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để cài đặt ứng dụng ERPNext vào trang web/dự án 'erp.howtoforge.local'.
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=%22333%22%3E%3C/svg%3E
Cuối cùng, chạy lệnh bench bên dưới để bật trình lập lịch và tắt chế độ bảo trì trên site/dự án 'erp.howtoforge.local'.
Mã:
bench --site erp.howtoforge.local enable-scheduler
bench --site erp.howtoforge.local set-maintenance-mode off
Triển khai ERPNext cho môi trường sản xuất
Trước tiên, hãy chạy lệnh bên dưới để bắt đầu cấu hình frappeframeowrk và ERPNext cho môi trường sản xuất. Thao tác này sẽ cài đặt Ansible và thiết lập triển khai ERPNext tự động thông qua Ansible.
Mã:
sudo bench setup production frappe
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22292%22%3E%3C/svg%3E
Dưới đây là kết quả đầu ra khi cấu hình hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22646%22%20height=%22243%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bench bên dưới để thiết lập Nginx và Supervisor cho ERPNext. Khi được yêu cầu ghi đè các thiết lập hiện tại, hãy nhập y để xác nhận và nhấn ENTER.
Mã:
sudo bench setup supervisor
sudo bench setup nginx
Mã:
sudo bench setup production frappe
Cuối cùng, chạy lệnh 'supervisorctl' bên dưới với quyền sudo. Thao tác này sẽ xác minh tất cả các quy trình và dịch vụ được frappeframework và ERPNext sử dụng.
Mã:
sudo supervisorctl status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22233%22%3E%3C/svg%3E
Tại đây point, bạn đã hoàn tất cài đặt ERPNext và nó đang chạy với Nginx làm máy chủ web và Supervisor cho trình quản lý quy trình. Bây giờ bạn có thể truy cập cài đặt ERPNext của mình thông qua tên miền và trình duyệt web.
Cấu hình cài đặt ERPNext
Mở 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 (ví dụ: http://erp.howtoforge.local/). Sau đó, bạn sẽ thấy trang đăng nhập frappeframework.Nhập người dùng mặc định là 'Quản trị viên' và nhập mật khẩu mà bạn đã sử dụng trong quá trình tạo trang web/dự án.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22617%22%3E%3C/svg%3E
Bây giờ, hãy chọn ngôn ngữ, múi giờ và tiền tệ mặc định. Sau đó nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22673%22%20height=%22590%22%3E%3C/svg%3E
Nhập người dùng quản trị mới cho cài đặt ERPNext của bạn. Nhập tên đầy đủ, địa chỉ email và mật khẩu của bạn, sau đó nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22650%22%20height=%22638%22%3E%3C/svg%3E
Nhập tên công ty và tải logo công ty của bạn lên, sau đó nhấp vào Tiếp theo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22646%22%20height=%22564%22%3E%3C/svg%3E
Nhập thông tin chi tiết về tổ chức của bạn và nhấp vào Hoàn tất thiết lập.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22627%22%20height=%22668%22%3E%3C/svg%3E
Bây giờ bạn sẽ thấy bảng điều khiển quản trị cài đặt ERPNext của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22584%22%3E%3C/svg%3E
Bảo mật bằng chứng chỉ SSL/TLS thông qua Certbot và Letsencrypt
Trong bước này, bạn sẽ bảo mật việc triển khai ERPNext bằng chứng chỉ SSL/TLS có thể được tạo bằng công cụ Certbot từ Letsencrypt. Trước khi bắt đầu, hãy đảm bảo rằng tên miền của bạn được trỏ đến địa chỉ IP máy chủ của bạn và đảm bảo rằng bạn có địa chỉ email sẽ được sử dụng để đăng ký Letsencrypt.Chạy lệnh apt bên dưới để cài đặt công cụ certbot và plugin certbot cho máy chủ web Nginx. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER để tiếp tục.
Mã:
sudo apt install certbot python3-certbot-nginx
Mã:
sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [emailprotected] -d erp.howtoforge.local
Kết luận
Trong hướng dẫn này, bạn đã học cách cài đặt ERPNext, một phần mềm ERP nguồn mở, trên máy chủ Debian 11. Bạn cũng đã học cách cài đặt một số phần phụ thuộc, chẳng hạn như Python 3.10, được cài đặt thủ công bằng cách biên dịch và cài đặt mã nguồn. Bạn đã cài đặt các phụ thuộc khác trên máy chủ Debian của mình, chẳng hạn như MariaDB, Nginx, Supervisor, Redis và Fail2ban.Bạn cũng đã học cách cài đặt khung Frappe và xây dựng ERPNext trên đó. Sau đó, bạn đã học cách cấu hình cơ bản của ERPNext như phần mềm ERP.
Cuối cùng, bạn đã thiết lập ERPNext cho sản xuất bằng cách cấu hình Nginx làm máy chủ web và Supervisor làm trình quản lý quy trình. Bạn cũng đã bảo mật việc sử dụng ERPNext với Certbot và Letsencrypt.