웹사이트 검색

CentOS 8에서 Nginx와 함께 Flectra 비즈니스 관리 소프트웨어를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. 시작하기\n
  3. Python 종속성 설치
  4. PostgreSQL 설치
  5. Flectra 설치
  6. Flectra 구성
  7. Flectra용 Systemd 서비스 파일 만들기
  8. Flectra용 Nginx 구성
  9. Flectra 웹 UI 액세스
  10. 결론

Flectra는 CRM 및 ERP 시스템을 단일 패키지로 결합한 오픈 소스 및 차세대 비즈니스 관리 소프트웨어입니다. 그 목표는 사용자가 비즈니스 요구에 따라 시스템을 수정하고 더 많은 도구를 쉽게 추가하여 비즈니스를 확장할 수 있도록 하는 것입니다. 간단히 말해서 Flectra는 요구 사항에 따라 쉽게 수정하거나 구성할 수 있는 포괄적인 플랫폼을 제공합니다. Flectra는 회계, 전자 상거래, 재고 관리, 마케팅, 프로젝트 관리, CRM, 보고, 휴가 관리 등과 같은 많은 기능을 제공합니다.

이 튜토리얼에서는 CentOS 8에서 Nginx와 함께 Flectra를 설치하는 방법을 보여줍니다.

전제 조건

  • 최소 4GB RAM과 함께 CentOS 8을 실행하는 서버.\n
  • 서버에 루트 암호가 구성되어 있습니다.\n

시작하기

먼저 시스템 패키지를 최신 패키지로 업데이트해야 합니다. 다음 명령으로 수행할 수 있습니다.

dnf update -y

모든 패키지를 업데이트한 후 시스템에서 SELinux를 비활성화하는 것이 좋습니다. /etc/selinux/config 파일을 편집하여 비활성화할 수 있습니다.

nano /etc/selinux/config

다음 줄을 변경합니다.

SELINUX=disabled

파일을 저장하고 닫은 다음 서버를 다시 시작하여 변경 사항을 적용하십시오.

Python 종속성 설치

다음으로 시스템에 Python 및 기타 Flectra 종속 항목을 설치해야 합니다. 다음 명령을 실행하여 모두 설치할 수 있습니다.

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel -y

모든 패키지가 설치되면 다음 명령을 실행하여 Node.js 모듈을 설치합니다.

npm install -g less

다음으로 시스템에 wkhtmltopdf 패키지도 설치해야 합니다. 공식 다운로드 페이지에서 다운로드할 수 있습니다.

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일을 설치합니다.

dnf localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpm

완료되면 다음 단계로 진행할 수 있습니다.

PostgreSQL 설치

Flectra는 PostgreSQL을 데이터베이스 백엔드로 사용합니다. 따라서 서버에 설치해야 합니다. 다음 명령으로 설치할 수 있습니다.

dnf install postgresql-server -y

PostgreSQL 서버를 설치한 후 다음 명령을 사용하여 데이터베이스를 초기화합니다.

postgresql-setup --initdb --unit postgresql

다음 출력이 표시되어야 합니다.

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

그런 다음 PostgreSQL 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start postgresql
systemctl enable postgresql

그런 다음 다음 명령을 사용하여 PostgreSQL 서비스의 상태를 확인합니다.

systemctl status postgresql-12

다음 출력이 표시되어야 합니다.

? postgresql-12.service - PostgreSQL 12 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-13 04:39:31 EDT; 7s ago
     Docs: https://www.postgresql.org/docs/12/static/
  Process: 1176 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 1182 (postmaster)
    Tasks: 8 (limit: 12537)
   Memory: 17.3M
   CGroup: /system.slice/postgresql-12.service
           ??1182 /usr/pgsql-12/bin/postmaster -D /var/lib/pgsql/12/data/
           ??1183 postgres: logger   
           ??1185 postgres: checkpointer   
           ??1186 postgres: background writer   
           ??1187 postgres: walwriter   
           ??1188 postgres: autovacuum launcher   
           ??1189 postgres: stats collector   
           ??1190 postgres: logical replication launcher   

Aug 13 04:39:31 centos8 systemd[1]: Starting PostgreSQL 12 database server...
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.136 EDT [1182] LOG:  starting PostgreSQL 12.3 on x86_64-pc-linux-gnu, compiled b>
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.137 EDT [1182] LOG:  listening on IPv6 address "::1", port 5432
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.137 EDT [1182] LOG:  listening on IPv4 address "127.0.0.1", port 5432
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.139 EDT [1182] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.142 EDT [1182] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.161 EDT [1182] LOG:  redirecting log output to logging collector process
Aug 13 04:39:31 centos8 postmaster[1182]: 2020-08-13 04:39:31.161 EDT [1182] HINT:  Future log output will appear in directory "log".
Aug 13 04:39:31 centos8 systemd[1]: Started PostgreSQL 12 database server.

다음으로 Flectra용 새 PostgreSQL 사용자를 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

su - postgres -c "createuser -s flectra"

완료되면 다음 단계로 진행할 수 있습니다.

Flectra 설치

Flectra를 설치하기 전에 Flectra에 대한 별도의 사용자를 생성해야 합니다. 다음 명령을 사용하여 만들 수 있습니다.

useradd -m -U -r -d /opt/flectra -s /bin/bash flectra

참고: 사용자 이름은 PostgreSQL 사용자와 동일해야 합니다.

다음으로 Flectra 사용자로 로그인하고 다음 명령을 사용하여 Git 리포지토리에서 Flectra를 다운로드합니다.

su - flectra
git clone --depth=1 --branch=1.0 https://gitlab.com/flectra-hq/flectra.git flectra

다음으로 다음 명령을 사용하여 Flectra용 가상 환경을 만듭니다.

python3 -m venv my-flectra

그런 다음 다음 명령을 사용하여 가상 환경을 활성화합니다.

source my-flectra/bin/activate

다음으로 다음 명령을 실행하여 모든 Python 모듈을 설치합니다.

pip3 install -r flectra/requirements.txt

모든 모듈이 설치되면 다음 명령을 사용하여 가상 환경을 비활성화합니다.

deactivate

그런 다음 다음 명령을 사용하여 Flectra 사용자를 종료합니다.

exit

Flectra 구성

먼저 Flectra 애드온, 구성 파일 및 로그를 위한 디렉토리를 생성해야 합니다. 다음 명령으로 생성할 수 있습니다.

mkdir /opt/flectra/flectra-custom-addons
mkdir /var/log/flectra
mkdir /etc/flectra
touch /var/log/flectra/flectra.log

다음으로 다음 명령을 사용하여 위 디렉토리의 소유권을 flectra로 변경합니다.

chown -R flectra:flectra /opt/flectra/flectra-custom-addons
chown -R flectra:flectra /var/log/flectra/
chown -R flectra:flectra /etc/flectra

다음으로 다음 명령을 사용하여 Flectra 구성 파일을 만듭니다.

nano /etc/flectra/flectra.conf

다음 줄을 추가합니다.

[options]
admin_passwd = your-flectra-password
db_host = False
db_port = False
db_user = flectra
db_password = False
logfile = /var/log/flectra/flectra.log
logrotate = True
proxy_mode = True
addons_path = /opt/flectra/flectra/addons, /opt/flectra/flectra-custom-addons

완료되면 파일을 저장하고 닫습니다.

Flectra용 Systemd 서비스 파일 생성

다음으로, Flectra 서비스를 관리하기 위해 Flectra용 systemd 서비스 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/systemd/system/flectra.service

다음 줄을 추가합니다.

[Unit]
Description=flectra
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=flectra
PermissionsStartOnly=true
User=flectra
Group=flectra
ExecStart=/opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

완료되면 파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 systemd 데몬을 다시 로드합니다.

systemctl daemon-reload

그런 다음 Flectra 서비스를 시작하고 다음 명령을 사용하여 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start flectra
systemctl enable flectra

이제 다음 명령을 사용하여 Flectra 서비스의 상태를 확인할 수 있습니다.

systemctl status flectra

모든 것이 정상이면 다음과 같은 결과가 표시됩니다.

? flectra.service - flectra
   Loaded: loaded (/etc/systemd/system/flectra.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2020-08-13 05:34:15 EDT; 1min 3s ago
 Main PID: 10917 (python3)
    Tasks: 4 (limit: 25028)
   Memory: 57.9M
   CGroup: /system.slice/flectra.service
           ??10917 /opt/flectra/my-flectra/bin/python3 /opt/flectra/flectra/flectra-bin -c /etc/flectra/flectra.conf

Aug 13 05:34:15 centos8 systemd[1]: Started flectra.

이제 Flectra가 실행 중이며 포트 7073에서 수신 대기 중입니다. 다음 명령으로 확인할 수 있습니다.

netstat -plntu | grep 7073

다음 출력이 표시되어야 합니다.

tcp        0      0 0.0.0.0:7073            0.0.0.0:*               LISTEN      10917/python3

Flectra용 Nginx 구성

다음으로 Nginx를 Flectra용 리버스 프록시로 구성해야 합니다. 따라서 포트 80을 사용하여 Flectra에 액세스할 수 있습니다.

먼저 다음 명령을 사용하여 Nginx 웹 서버를 설치합니다.

dnf install nginx -y

Nginx를 설치한 후 Nginx 서비스를 시작하고 시스템 재부팅 시 시작되도록 활성화합니다.

systemctl start nginx
systemctl enable nginx

다음으로 Flectra용 새 Nginx 가상 호스트 구성 파일을 만듭니다.

nano /etc/nginx/conf.d/flectra.conf

다음 줄을 추가합니다.

#flectra server
upstream flectra {
 server 127.0.0.1:7073;
}

server {
   listen 80;
   server_name flectra.your-domain.com;

proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for flectra proxy mode
 proxy_set_header X-Forwarded-Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header X-Real-IP $remote_addr;

 # log
 access_log /var/log/nginx/flectra.access.log;
 error_log /var/log/nginx/flectra.error.log;

 # Redirect requests to flectra backend server
 location / {
   proxy_redirect off;
   proxy_pass http://flectra;
 }

 # common gzip
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

완료되면 파일을 저장하고 닫습니다. 그런 다음 Nginx 서비스를 다시 시작하여 변경 사항을 적용합니다.

systemctl restart nginx

이 시점에서 Nginx 웹 서버는 Flectra를 제공하도록 구성됩니다. 이제 다음 단계를 진행할 수 있습니다.

Flectra 웹 UI에 액세스

이제 웹 브라우저를 열고 URL http://flectra.your-domain.com을 입력합니다. 다음 화면으로 리디렉션됩니다.

구성 파일, 데이터베이스 세부 정보, 이메일, 암호에 정의한 마스터 암호를 제공하고 데이터베이스 생성 버튼을 클릭합니다. 다음 화면과 같이 Flectra 대시보드가 표시되어야 합니다.

결론

축하합니다! CentOS 8에 Nginx와 함께 Flectra를 성공적으로 설치했습니다. 이제 자신만의 Flectra 비즈니스 정보 시스템을 호스팅하고 Flectra의 강력한 모듈식 디자인과 수많은 추가 기능으로 비즈니스를 성장시킬 수 있습니다. Flectra에 대한 자세한 내용은 Flectra 공식 문서를 참조하세요.