웹사이트 검색

Rocky Linux 9에 ERPNext를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 사용자 설정
  3. Python 3.10 설치
  4. MariaDB 서버 설치 및 구성
  5. Rocky Linux 저장소에서 종속 항목 설치\n
  6. Nodejs 16 및 Yarn 설치
  7. Wkhtmltopdf 설치
  8. 벤치를 통해 Frappe프레임워크 설치\n
  9. Frappe에서 새 애플리케이션 설정\n
  10. 벤치를 통해 ERPNext 설치\n
  11. ERPNext 배포 설정
  12. ERPNext 구성
  13. Certbot 및 Letsencrypt를 통해 SSL/TLS 인증서로 보안\n
  14. 결론

ERPNext는 비즈니스에서 구현할 수 있는 오픈 소스 Enterprise ERP(Enterprise Resource Planning) 시스템입니다. ERPNext는 제조, 유통, 소매, 무역, 서비스, 교육, 비영리 및 의료와 같은 여러 유형의 산업에서 구현할 수 있습니다. 또한 회계, CRM, 영업, 구매, 웹 사이트, 전자 상거래, 판매 시점 관리, 제조, 창고, 프로젝트 관리, 재고 및 서비스와 같은 모듈을 제공합니다.

ERPNext는 Enterprise ERP 플랫폼으로 GNU 일반 공중 라이선스 v3. 주로 Python과 JavaScript로 작성되었으며 Frappe Technologies Pvt에서 개발했습니다. ERPNext는 Python 및 Javascript의 오픈 소스 웹 프레임워크인 frappe 프레임워크로 작성된 애플리케이션입니다.

ERPNext는 Oracle, QAD, Tython, OpenBrave 및 Odoo의 NetSuite와 같은 서비스의 대안으로 만들어졌습니다. 기능면에서 ERPNext는 Odoo(이전의 OpenERP)와 유사합니다.

이 튜토리얼에서는 Rocky Linux 9 서버에 ERPNext를 설치한 다음 Certbot 및 Letsencrypt를 통해 SSL/TLS 인증서로 설치를 보호합니다. 또한 소스에서 Python 3.10, 세션 관리자로 사용할 Redis, 웹 서버 및 리버스 프록시로 사용할 Nginx, 프로세스 관리자로 Supervisor, 무차별 공격으로부터 보호하기 위한 Fail2ban, 정적 파일 빌드 및 컴파일을 위한 데이터베이스 서버, Node.js 및 Yarn.

ERPNext는 frappe 프레임워크 위에 구축된 애플리케이션이므로 frappe-bench를 통해 프로세스에 frappe 프레임워크도 설치합니다.

전제 조건

이 자습서를 완료하려면 다음 요구 사항이 필요합니다.

  • Debian 11 서버 1개 - 이 예에서는 호스트 이름이 erpnext-rocky인 Debian 서버를 사용합니다.\n
  • sudo/root 관리자 권한이 있는 루트가 아닌 사용자. 루트가 아닌 사용자로 이 가이드의 모든 명령을 실행합니다.\n
  • 서버 IP 주소를 가리키는 도메인 이름.
  • 허용 모드로 실행 중인 SELinux.\n

이제 ERPNext를 시작하고 설치해 보겠습니다.

사용자 설정

이 자습서의 첫 번째 작업은 ERPNext 응용 프로그램을 실행하는 데 사용할 새 전용 사용자를 생성하는 것입니다. 또한 이 새 사용자를 사용하여 패키지 설치 및 구성을 위한 모든 명령을 실행합니다.

아래 명령을 실행하여 새 사용자 frappe를 만듭니다. 그런 다음 frappe 사용자의 비밀번호를 설정하고 강력한 새 비밀번호를 입력한 다음 비밀번호를 반복하십시오.

sudo useradd -m -s /bin/bash frappe
sudo passwd frappe

이제 아래 명령을 실행하여 frappe 사용자를 wheel 그룹에 추가합니다. 이렇게 하면 frappe 사용자가 루트 사용자가 되어 sudo 명령을 실행하거나 루트 권한으로 명령을 실행할 수 있습니다.

sudo usermod -aG wheel frappe

마지막으로 frappe 사용자로 로그인하여 사용자가 생성되었는지 확인하고 확인합니다. 그런 다음 sudo su 명령을 실행하여 루트 권한을 얻습니다.

sudo - frappe
sudo su

frappe 사용자의 비밀번호를 입력하십시오. 성공하면 프롬프트가 [email :/home/frappe...와 같이 표시됩니다.

이제 exit를 입력하거나 Ctrl+d를 눌러 루트 셸을 종료합니다.

파이썬 3.10 설치

ERPNext는 Python 기반의 frappe 웹 프레임워크를 사용하여 만든 웹 애플리케이션입니다. 이 글을 쓰는 시점에서 frappe 프레임워크와 ERPNext의 최신 버전은 Python 3.10 이상이 필요했습니다.

이 단계에서는 Rocky Linux 9 서버의 소스에서 수동으로 Python 3.10을 설치합니다.

시작하려면 아래 dnf 명령을 실행하여 Python 3.10을 컴파일하기 위한 몇 가지 기본 종속성을 설치합니다.

sudo dnf install gcc openssl-devel bzip2-devel libffi-devel zlib-devel wget make

메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

다음으로 아래의 wget 명령을 통해 Python 3.10 소스 코드를 다운로드합니다.

wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

Python 3.10을 다운로드한 후 Python 소스 코드를 추출하고 작업 디렉터리를 여기로 이동합니다.

tar xzf Python-3.10.9.tgz
cd Python-*/

다음으로 아래 명령을 실행하여 Python 3.10 컴파일을 시작합니다. 그런 다음 시스템에 설치하십시오. 이렇게 하면 Python 3.10 바이너리 파일이 /usr/local/bin 디렉토리에 설치됩니다.

./configure --enable-optimizations
nproc
sudo make -j2
sudo make altinstall

아래 명령을 실행하여 Python 3.10 바이너리 파일을 확인합니다. Pip3.10을 포함하는 여러 Python 바이너리 파일이 표시되어야 합니다.

ls /usr/local/bin

다음으로 새 버전의 Python 명령을 실행할 수 있도록 /usr/local/bin 디렉토리를 시스템 PATH 및 visudo secure_path에 추가해야 합니다.

아래 나노 편집기 명령을 실행하여 /etc/bashrc 새 파일을 엽니다.

sudo nano /etc/bashrc

파일에 다음 줄을 추가합니다.

export PATH=$PATH:/usr/local/bin/

완료되면 저장하고 종료하십시오.

이제 아래 명령을 실행하여 /etc/bashrc 구성 파일을 다시 로드합니다. 그런 다음 시스템 PATH를 확인하십시오.

source /etc/bashrc
echo $PATH

이제 /usr/local/bin 디렉토리가 시스템 PATH 환경 변수에 추가된 것을 볼 수 있습니다.

다음으로 아래 명령을 실행하여 sudoers 구성 파일을 추가하고 수정합니다.

sudo visudo

아래와 같이 Defaults secure_path: 옵션에 /usr/local/bin 디렉토리를 추가합니다.

Defaults secure_path=....:/usr/local/bin

파일을 저장하고 완료되면 편집기를 종료합니다.

이제 아래와 같이 sudo 명령을 통해 Python3.10 및 Pip3.10 바이너리를 실행합니다.

sudo python3.10 --version
sudo pip3.10 --version

다음과 유사한 출력이 표시되어야 합니다. Python 3.10이 소스 코드에서 Rocky Linux 서버로 설치됩니다.

다음 단계에서는 ERPNext용 MariaDB 서버를 설치하고 구성합니다.

MariaDB 서버 설치 및 구성

기본 설치에서 ERPNext는 MySQL/MariaDB를 데이터베이스 서버로 사용합니다. ERPNext는 설치를 위해 특정 버전의 MySQL/MariaDB가 필요했습니다. 그리고 이 글을 쓰는 시점에서 최신 버전의 ERPNext에는 MariaDB 10.6이 필요했습니다.

이 단계에서는 공식 MariaDB 리포지토리에서 MariaDB Server 10.6을 설치합니다. 그런 다음 MariaDB 서버에 구성을 추가하고 MariaDB 서버 배포를 보호합니다.

아래 명령을 실행하여 MariaDB 리포지토리 v10.6을 추가합니다.

sudo curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.6"

이와 같은 출력을 받게 됩니다.

그런 다음 아래의 dnf 명령을 실행하여 MariaDB 패키지를 설치합니다. 확인 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo dnf install MariaDB-server MariaDB-client

또한 MariaDB 리포지토리의 GPG 키를 수락할지 묻는 메시지가 표시되면 y를 입력하고 ENTER를 누릅니다.

MariaDB 서버가 설치된 후 아래의 systemctl 명령 유틸리티를 실행하여 MariaDB 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb
sudo systemctl enable mariadb

이제 아래 명령을 통해 MariaDB 서비스를 확인합니다. MariaDB 서비스가 실행 중이고 활성화되어 있어야 합니다. 즉, 부팅 시 자동으로 시작됩니다.

sudo systemctl status mariadb

MariaDB 서버가 실행 중이면 ERPNext에 필요한 대로 MariaDB 구성을 시작합니다.

아래 nano 편집기 명령을 사용하여 MariaDB 구성 파일 /etc/my.cnf.d/server.cnf을 엽니다.

sudo nano /etc/my.cnf.d/server.cnf

[mysqld] 섹션에 다음 줄을 추가합니다. 그러면 MariaDB에서 바라쿠다 형식이 활성화됩니다. 또한 기본 문자 집합을 utf8mb4로 설정합니다.

[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

완료되면 파일을 저장하고 종료합니다.

다음으로, 아래 nano 편집기 명령을 사용하여 다른 MariaDB 구성 파일 /etc/my.cnf.d/mysql-clients.cnf을 엽니다.

sudo nano /etc/my.cnf.d/mysql-clients.cnf

[mysql] 섹션에 다음 줄을 추가합니다. 이것은 항상 클라이언트의 문자 집합을 utf8mb4로 설정합니다.

[mysql]
default-character-set = utf8mb4

파일을 저장하고 편집기를 종료합니다.

이제 아래 systemctl 명령을 실행하여 MariaDB 서비스를 다시 시작하고 변경 사항을 적용하십시오.

sudo systemctl restart mariadb

아래 명령 mariadb-secure-installation을 실행하여 MariaDB 배포를 보호하십시오. 그런 다음 MariaDB 루트 암호 구성을 묻는 메시지가 표시되므로 새 암호를 입력하고 반복해야 합니다. 나머지 구성의 경우 Y를 입력하여 확인하고 ENTER를 누릅니다.

sudo mariadb-secure-installation

이것으로 이제 MariaDB 서버 설치 및 구성이 완료되었습니다. 다음 단계에서는 Rocky Linux 시스템에 Redis, Nginx 및 Supervisor를 설치합니다.

Rocky Linux 리포지토리에서 종속성 설치

이 단계에서는 ERPNxt 설치에 대한 몇 가지 종속성이 있습니다. 여기에는 세션 관리로 사용될 Redis, 웹 서버로 Nginx, 프로세스 관리로 Supervisor, 무차별 대입 공격으로부터 ERPNext를 보호하는 Fail2ban 설치가 포함됩니다. .

여기서 설치할 대부분의 패키지는 기본적으로 Rocky Linux AppStream 리포지토리에서 사용할 수 있습니다. 그러나 EPEL과 같은 타사 리포지토리를 시스템에서 사용할 수 있는지도 확인해야 합니다.

아래 dnf 명령을 실행하여 Rocky Linux 시스템에 Redis, Nginx, SupervisorFail2ban을 설치합니다.

sudo dnf install redis nginx supervisor fail2ban

확인 메시지가 표시되면 Y를 입력하고 ENTER를 눌러 계속 진행합니다.

이제 패키지 설치가 완료되면 아래 systemctl 명령을 실행하여 서비스를 시작하고 활성화하십시오. 그런 다음 각 서비스가 실행 중인지 확인하십시오.

Redis 서비스를 시작하고 활성화한 다음 Redis가 실행 중인지 확인합니다.

sudo systemctl start redis
sudo systemctl enable redis

sudo systemctl status redis

이와 유사한 출력을 받게 됩니다.

그런 다음 Nginx 서비스를 시작하고 활성화한 다음 Nginx를 확인하여 서비스가 실행 중인지 확인합니다.

sudo systemctl start nginx
sudo systemctl enable nginx

sudo systemctl status nginx

이와 같은 출력을 받게 됩니다.

그런 다음 Supervisor 서비스를 시작하고 활성화하십시오. 그런 다음 Supervisor 서비스가 실행 중인지 확인하십시오.

sudo systemctl start supervisord
sudo systemctl enable supervisord

sudo systemctl status supervisord

다음은 터미널 화면에 표시되어야 하는 출력입니다.

마지막으로 Fail2ban 서비스의 경우 아래의 systemctl 명령 유틸리티를 통해 서비스를 시작하고 활성화합니다. 그런 다음 Fail2ban 서비스를 확인하여 서비스가 실행 중인지 확인하십시오.

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

sudo systemctl status fail2ban

이제 Fail2ban 서비스 상태가 실행 중임을 확인할 수 있습니다.

이제 이 섹션을 완료한 후 Redis, Nginx, Supervisor 및 Fail2ban 서비스가 실행 중인지 확인했습니다. Node.js 및 Yarn 패키지 관리자를 설치하려면 다음 섹션으로 이동하십시오.

Nodejs 16 및 Yarn 설치

ERPNext의 최신 버전은 v14이며 최소한 Node.js 16 및 Yarn 패키지 관리자가 필요합니다. 이 단계에서는 Node.js v16용 Nodesource 리포지토리를 설정하고 RHEL 배포용 Yarn 리포지토리를 추가합니다. 그런 다음 DNF를 통해 Node.js와 Yarn을 모두 설치합니다.

먼저 아래 명령을 실행하여 RHEL 배포용 Node.js v16용 Nodesource 리포지토리를 추가합니다.

curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -

다음과 같은 출력을 받아야 합니다. 스크립트는 현재 RHEL 배포판의 버전을 자동으로 감지하고 Nodesource 리포지토리를 추가합니다.

Yarn 리포지토리의 경우 아래 명령을 실행하여 리포지토리를 다운로드하고 시스템에 추가합니다.

curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

다음은 터미널에서 수신해야 하는 출력입니다.

이제 Nodesource와 Yarn 리포지토리가 모두 Rocky Linux 시스템에 추가되었으므로 DNF를 통해 Node.js 및 Yarn 패키지 관리자를 설치할 차례입니다.

아래 dnf 명령을 실행하여 시스템에 Node.js 및 Yarn을 설치합니다. 확인 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo dnf install gcc-c++ make nodejs yarn

Node.js 및 Yarn 설치가 시작되어야 합니다.

또한 두 리포지토리의 GPG 키에 대한 메시지가 표시되면 y를 입력하고 ENTER를 눌러 시스템에 GPG 키를 추가합니다.

Node.js 및 Yarn 패키지 관리자가 설치되었으므로 이제 RPM 파일을 통해 Wkhtmltopdf 패키지를 설치합니다.

Wkhtmltopdf 설치

이 단계에서는 ERPNext에서 PDF 보고서를 생성하는 데 사용할 Wkhtmltopdf 패키지를 설치합니다. Wkhtmltopdf는 .deb 파일 또는 .rpm 파일을 통해 수동으로 다운로드하여 설치할 수 있습니다.

먼저 아래 dnf 명령을 실행하여 Wkhtmltopdf 패키지의 종속성을 설치합니다.

sudo dnf install fontconfig freetype libX11 libXext libXrender libjpeg libpng xorg-x11-fonts-75dpi xorg-x11-fonts-Type1

메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다.

다음으로 아래 rpm 명령을 실행하여 Wkhtmltopdf 패키지를 Rocky Linux 시스템에 다운로드하고 설치합니다.

sudo rpm -Uvh https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm

Wkhtmltopdf가 설치된 후 아래 명령을 실행하여 설치를 확인합니다.

Wkhtmltopdf 패키지는 두 가지 명령줄 도구를 제공합니다. wkhtmltopdf 명령은 HTML 페이지를 PDF로 변환하는 데 사용되며 wkhtmltoimage는 HTML 페이지를 다양한 이미지 형식으로 변환합니다.

which wkhtmltopdf
which wkhtmltoimage
wkhtmltopdf --version
wkhtmltoimage --version

다음과 유사한 출력을 받게 됩니다. Wkhtmltopdf 패키지 v0.12가 Rocky Linux 시스템에 설치됩니다.

이 시점에서 ERPNext 및 frappeframework에 대한 패키지 종속성 설치를 완료했습니다. 여기에는 Python3.10, Redis, Nginx, Supervisor, Fail2ban, MariaDB Server 및 Wkhtmltopdf 패키지가 포함됩니다.

다음 섹션에서는 ERPNext 설치를 시작합니다. 그러나 먼저 frappeframework를 설치하고 설정합니다.

벤치를 통해 Frappeframework 설치

ERPNext는 Python과 JavaScript로 작성된 frappeframework로 만든 오픈 소스 ERP 소프트웨어입니다. ERPNext는 frappeframework 내에서 실행되므로 시스템에 frappeframework를 설치해야 ERPNext를 설치할 수 있습니다.

따라서 먼저 벤치를 설치해야 합니다. 그런 다음 벤치를 통해 frappeframework를 설치하십시오. 마지막으로 frappeframework 내에 ERPNext 애플리케이션을 설치합니다.

아래 pip3.10 명령을 실행하여 PyPI 저장소에서 벤치를 설치합니다.

sudo pip3.10 install frappe-bench

벤치 설치 중에 이와 유사한 출력을 받게 됩니다.

벤치가 설치된 후 아래 명령을 실행하여 확인하십시오.

which bench
bench --version

바이너리 경로 bench 명령과 설치한 벤치의 현재 버전을 받게 됩니다.

벤치가 설치된 상태에서 벤치 명령을 통해 frappe 프레임워크를 설치합니다.

아래 bench 명령을 실행하여 현재 작업 디렉토리에 frappe 프레임워크를 설치합니다. 또한 Python 3.10에 사용할 Python 버전을 지정하고 frappe 프레임워크 버전을 v14로 지정합니다. 대상 설치 디렉토리는 frappe-bench입니다.

bench init --python python3.10 --frappe-branch version-14 frappe-bench

frappeframework 설치 중에 이와 유사한 출력을 받게 됩니다.

frappe 프레임워크 설치가 완료되면 다음 출력을 수신해야 합니다.

마지막으로 아래 명령을 실행하여 다른 사용자가 frappe 프레임워크 설치 디렉터리 /home/frappe/frappe-bench를 읽고 실행할 수 있도록 합니다. 이는 Nginx 웹 서버가 플랩 프레임워크를 읽고 실행할 수 있도록 하기 위해 필요합니다.

sudo chmod -R o+rx /home/frappe/frappe-bench
or
sudo chmod -R o+rx /home/frappe

frappe 프레임워크가 설치되면 ERPNext를 설치하고 설정할 준비가 된 것입니다.

Frappe에서 새 애플리케이션 설정

ERPNext를 설치하기 전에 frappe 프레임워크에 새 사이트/프로젝트를 생성해야 합니다. 이 단계에서는 새 사이트/프로젝트를 만들고 벤치를 통해 환경을 새 프로젝트로 전환합니다.

먼저 cd 명령을 통해 작업 디렉토리를 frappe-bench로 이동합니다.

cd ~/frappe-bench

ERPNext에 대한 새 사이트/프로젝트를 생성하려면 아래 벤치 명령을 실행하십시오. 이 예에서는 ERPNext 설치의 대상 도메인 이름인 새 사이트 erp.hwdomain.io를 만듭니다. 또한 설정 과정에서 프로젝트의 관리자 암호를 구성하라는 메시지가 표시되므로 암호를 입력하고 반복하십시오. 이 비밀번호는 ERPNext 애플리케이션에 로그인하는 데 사용됩니다.

bench new-site erp.hwdomain.io

마지막으로 아래 명령을 실행하여 새 사이트/프로젝트 erp.hwdomain.io로 전환합니다.

bench use erp.hwdomain.io

아래는 사이트/프로젝트 생성 중 및 새 사이트/프로젝트로 전환한 후의 출력입니다.

벤치를 통해 ERPNext 설치

이 단계에서는 생성한 frappe 프레임워크 프로젝트 내에서 ERPNext 설치를 시작합니다.

먼저 아래 명령을 실행하여 결제erpnext 앱을 다운로드합니다. 이 예에서는 ERPNexxt v14를 다운로드합니다.

bench get-app payments
bench get-app --branch version-14 erpnext

다음은 결제 다운로드 프로세스 중에 받게 될 유사한 출력입니다.

그리고 아래는 ERPNext 애플리케이션의 다운로드 과정입니다.

다음으로 아래 명령을 실행하여 사이트/프로젝트 erp.hwdomain.io에 ERPNext 애플리케이션을 설치합니다.

bench --site erp.hwdomain.io install-app erpnext

다음과 유사한 출력이 표시됩니다. 또한 결제 애플리케이션이 ERPNext 애플리케이션의 종속성으로 자동 설치되는 것을 볼 수 있습니다.

마지막으로 아래 벤치 명령을 실행하여 ERPNext 사이트/프로젝트 erp.hwdomain.io에서 스케줄러를 활성화하고 유지 관리 모드를 비활성화합니다.

bench --site erp.hwdomain.io enable-scheduler
bench --site erp.hwdomain.io set-maintenance-mode off

이 시점에서 ERPNext 설치가 완료됩니다. 다음 단계에서는 벤치 명령을 통해 구성할 수 있는 프로덕션의 ERPNext 배포를 위해 Nginx 웹 서버 및 감독자를 설정합니다.

ERPNext 배포 설정

먼저 아래 명령을 실행하여 프로덕션 환경에 대한 frappe 프레임워크 및 ERPNext 구성을 시작합니다. 그러면 Ansible이 설치되고 Ansible을 통해 ERPNext 배포가 자동으로 설정됩니다.

sudo bench setup production frappe

아래는 Ansible 설치 중 출력입니다.

아래는 구성이 완료되었을 때의 출력입니다.

다음으로 아래 벤치 명령을 실행하여 ERPNext용 Nginx 및 Supervisor를 설정합니다. 현재 설정을 덮어쓸지 묻는 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 누릅니다.

sudo bench setup supervisor
sudo bench setup nginx

그런 다음 아래의 벤치 명령을 다시 실행하여 Supervisor 및 Nginx의 구성이 설치되었는지 확인하십시오.

sudo bench setup production frappe

현재 설정을 덮어쓰려면 y를 입력하고 계속하려면 ENTR을 누릅니다.

그런 다음 다음 nano 편집기 명령을 통해 감독자 구성 /etc/supervisor.conf을 엽니다.

sudo nano /etc/supervisor.conf

[include] 섹션에 다음 줄이 있는지 확인하십시오. 그렇지 않은 경우 아래와 같이 형식을 *.conf로 변경할 수 있습니다.

[include]
file = /etc/supervisord.d/*.conf

완료되면 파일을 저장하고 종료합니다.

이제 아래의 systemctl 명령 유틸리티를 실행하여 감독자 서비스를 다시 시작하고 변경 사항을 적용하십시오.

sudo systemctl restart supervisord

마지막으로 sudo 권한으로 아래 supervisorctl 명령을 실행합니다. 이는 frappe 프레임워크와 ERPNext에서 사용하는 모든 프로세스와 서비스를 검증합니다.

sudo supervisorctl status

ERPNext 설치가 성공적이면 다음과 유사한 출력을 수신해야 합니다. - ERPNext에 대한 모든 서비스가 실행 중입니다.

이 시점에서 ERPNext 설치가 완료되고 Nginx가 웹 서버로 실행되고 프로세스 관리자의 감독자가 실행됩니다. 이제 도메인 이름과 웹 브라우저를 통해 ERPNext 설치에 액세스할 수 있습니다.

ERPNext 구성

웹 브라우저를 열고 ERPNext 설치의 도메인 이름(예: http://erp.hwdomain.io/)을 방문합니다. 그러면 frappe 프레임워크 로그인 페이지가 표시됩니다.

기본 사용자 관리자를 입력하고 사이트/프로젝트 생성 시 사용한 비밀번호를 입력합니다.

이제 기본 언어, 시간대 및 통화를 선택하십시오. 그런 다음 다음을 클릭합니다.

ERPNext 설치를 위한 새 관리 사용자를 입력하십시오. 전체 이름, 이메일 주소 및 암호를 입력하고 다음을 클릭합니다.

회사 이름을 입력하고 회사 로고를 업로드한 후 다음을 클릭합니다.

조직에 대한 세부 정보를 입력하고 설정 완료를 클릭합니다.

이제 ERPNext 설치의 관리 대시보드가 표시됩니다.

Certbot 및 Letsencrypt를 통해 SSL/TLS 인증서로 보안

이 마지막 단계에서는 Certbot 도구 및 Letsencrypt를 통해 SSL/TLS 인증서로 ERPNext를 보호합니다. 시작하기 전에 도메인 이름이 서버 IP 주소를 가리키는지 확인하고 Letsencrypt에 등록하는 데 사용할 유효한 이메일 주소가 있는지 확인하십시오.

아래의 dnf 명령을 통해 Certbot 도구와 Certbot Nginx 플러그인을 설치합니다. 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다.

sudo dnf install certbot python3-certbot-nginx

certbot이 설치된 후 아래 certbot 명령을 실행하여 ERPNext 도메인 이름에 대한 SSL 인증서를 생성합니다. 아래 명령에서 도메인 이름과 이메일 주소를 반드시 변경하십시오.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email  -d erp.hwdomain.io

이를 통해 ERPNext 설치는 이제 Certbot 및 Letsencrypt를 통해 SSL/TLS 인증서로 보호됩니다. 또한 Certbot이 자동으로 처리하는 ERPNext 도메인 이름에서 HTTP를 HTTPS로 자동 리디렉션하도록 구성했습니다.

결론

이 자습서에서는 Rocky Linux 9 서버에 오픈 소스 ERP 소프트웨어인 ERPNext를 설치하는 방법을 배웠습니다. 소스 코드를 컴파일하고 설치하여 수동으로 설치되는 Python 3.10과 같은 일부 종속성 설치에 대해서도 배웠습니다. 또한 설치한 다른 종속성은 MariaDB Server, Nginx, Supervisor, Redis 및 Fail2ban입니다.

또한 frappe 프레임워크를 설치하는 방법을 배웠고 그 위에 ERPNext를 설치했습니다. 그런 다음 ERP 소프트웨어인 ERPNext의 기본 구성을 배웠습니다.

마지막으로 Nginx를 웹 서버로 구성하고 Supervisor를 프로세스 관리자로 구성하여 프로덕션용 ERPNext도 배포했습니다. 또한 Certbot 및 Letsencrypt를 통해 ERPNext 배포를 보호했습니다.