웹사이트 검색

Ubuntu 22.04에 Odoo 16 ERP 소프트웨어를 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 22.04(Jammy Jellyfish)
  • Ubuntu 15.04(Vivid Vervet)

이 페이지에서

  1. 전제 조건
  2. 종속성 설치
  3. Nodejs 설치
  4. Wkhtmltopdf 응용 프로그램 설치\n
  5. PostgreSQL 데이터베이스 서버 설치
  6. Odoo 16 다운로드
  7. Odoo용 Python 종속성 설치
  8. Odoo 구성 만들기
  9. 시스템 서비스로 Odoo 실행\n
  10. Nginx 리버스 프록시로 Odoo 실행\n
  11. UFW 방화벽 설정\n
  12. 데이터베이스 마이그레이션 및 Odoo 16 설치
  13. 결론

Odoo(이전 OpenERP)는 10,000개 이상의 개방형으로 구성된 자체 호스팅 제품군입니다. Odoo는 여러 유형의 비즈니스를 위한 무료 오픈 소스 ERP 솔루션입니다. CRM(고객 관계 관리), 판매 파이프라인, 프로젝트 관리, 제조, 송장 발행, 회계, 전자 상거래 등을 제공합니다.

Odoo는 귀하의 비즈니스를 위한 완벽한 ERP 솔루션 중 하나입니다. 기본적으로 30개의 핵심 모듈과 함께 제공되며 여러 비즈니스를 도울 수 있는 4500개 이상의 커뮤니티 모듈을 제공합니다.

이 튜토리얼에서는 Ubuntu 22.04 서버에서 Odoo 오픈 소스 ERP를 사용합니다. 안정적인 최신 버전의 Odoo 16을 설치 및 구성하고, Odoo용 PostgreSQL 데이터베이스를 설정하고, 마지막으로 Nginx를 Odoo 애플리케이션의 리버스 프록시로 설정합니다.

전제 조건

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

  • Ubuntu 22.04 서버 - 이 예에서는 호스트 이름이 odoo-server인 Ubuntu 서버를 사용합니다.\n
  • sudo 루트/관리자 권한이 있는 루트가 아닌 사용자 - 또는 루트 사용자를 사용할 수도 있습니다.\n
  • 서버 IP 주소를 가리키는 도메인 이름 - 프로덕션의 경우 Odoo 설치를 위한 도메인 이름이 필요합니다.\n

종속성 설치

Odoo를 설치하려면 먼저 Ubuntu 시스템에 일부 패키지 종속성을 설치해야 합니다. Odoo ERP는 주로 Python으로 작성된 웹 애플리케이션이므로 일부 Python 패키지도 설치해야 합니다.

패키지 설치를 시작하기 전에 다음 apt 명령을 실행하여 패키지 인덱스를 업데이트하고 새로 고칩니다.

sudo apt update

다음으로 다음 apt 명령을 통해 odoo용 패키지 종속성을 설치합니다. 이 설치에는 최신 버전의 Python 3.10, Python 패키지 컴파일을 위한 빌드 필수 요소 및 odoo에 필요한 일부 라이브러리가 포함됩니다.

sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig

메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다. 그리고 설치가 시작됩니다.

Python 및 기타 종속성이 설치되면 다음 단계는 정적 파일을 생성하는 데 사용되는 Node.js를 설치하고 PDF 보고서를 생성하기 위한 wkhtmltopdf 패키지를 설치하는 것입니다.

Nodejs 설치

Odoo를 설치하려면 시스템에 Node.js가 설치되어 있는지 확인해야 합니다. Node.js는 odoo 웹 애플리케이션용 정적 파일을 생성하는 데 사용됩니다. 이 단계에서는 타사 Nodesource 리포지토리에서 Node.js 16을 설치합니다.

다음 명령을 실행하여 Node.js 16용 Nodesource 리포지토리를 다운로드하고 설정합니다.

sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

이 명령은 설치 프로그램 스크립트를 다운로드하고 실행한 다음 설치 프로그램 스크립트가 Node.js용 리포지토리를 자동으로 설정하고 GPG 키를 추가하며 시스템의 패키지 인덱스를 자동으로 업데이트하고 새로 고칩니다.

다음으로 다음 apt 명령을 실행하여 Node.js 패키지를 설치합니다. 메시지가 표시되면 y를 입력하여 확인하고 ENTER를 눌러 계속 진행합니다.

sudo apt install nodejs

Node.js가 설치되면 다음 npm 명령을 실행하여 rtlcss 패키지를 설치합니다.
rtlcss 패키지는 odoo에 필요합니다. 아랍어 및 히브리어와 같은 특정 언어.

sudo npm install -g rtlcss

Wkhtmltopdf 응용 프로그램 설치

odoo 오픈 소스 ERP를 사용하려면 wkhtmltopdf 패키지를 설치해야 합니다. 이 패키지는 Qt Webkit을 통해 HTML 페이지를 PDF 및 다양한 이미지 형식으로 렌더링하는 데 필요합니다. wkhtmltopdf 패키지는 .deb 패키지를 통해 Ubuntu 시스템에 수동으로 설치됩니다.

다음 명령을 실행하여 Wkhtmltopdf 패키지의 .deb 파일을 다운로드합니다.

cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb

아래의 dpkg 명령을 통해 Wkhtmltopdf 패키지를 설치합니다.

sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb

누락된 패키지와 같은 오류가 발생하면 다음 apt 명령을 통해 수정하십시오.

sudo apt install -f

Wkhtmltopdf가 설치된 후 /usr/local/bin 디렉토리에서 기본적으로 사용 가능한 바이너리 파일 Wkhtmltopdf 패키지를 확인할 수 있습니다. wkhtmltopdfwkhtmltoimage라는 두 개의 프로그램이 표시되어야 합니다.

ls /usr/local/bin

이제 다음 명령을 실행하여 PATH 환경 변수를 확인하고 바이너리 PATH에서 /usr/local/bin 디렉토리를 사용할 수 있는지 확인하십시오. 그렇지 않으면 Wkhtmltopdf 패키지가 제대로 작동하지 않습니다.

echo $PATH

마지막으로 다음 명령을 실행하여 Wkhtmltopdf 패키지의 바이너리 경로를 사용할 수 있는지 확인합니다. Wkhtmltopdf 패키지를 사용할 수 있는 경우 Wkhtmltopdf 패키지의 전체 경로 출력을 받아야 합니다.

which wkhtmltopdf
which wkhtmltoimage

PostgreSQL 데이터베이스 서버 설치

odoo 오픈 소스 ERP는 MySQL, SQLite 및 PostgreSQL과 같은 데이터베이스를 지원합니다. 이 단계에서는 PostgreSQL을 odoo 설치의 기본 데이터베이스로 설치하고 사용합니다. 또한 PostgreSQL 역할을 설정하고 PostgreSQL 구성을 변경하게 됩니다.

다음 apt 명령을 실행하여 PostgreSQL 데이터베이스 서버를 설치합니다. 확인 메시지가 표시되면 y를 입력하고 ENTER를 누릅니다.

sudo apt install postgresql

PostgreSQL이 설치된 후 다음 명령을 실행하여 PostgreSQL을 확인하고 서비스가 활성화되어 실행 중인지 확인합니다.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

다음 출력에서 PostgreSQL 서비스가 활성화되고 시스템 시작 시 자동으로 실행되는 것을 볼 수 있습니다. 그리고 PostgreSQL의 상태가 실행 중입니다.

다음으로 odoo에 대한 새 역할을 생성합니다. 다음 명령을 실행하여 postgres 사용자에 로그인하고 이름이 odoo인 새 역할을 만듭니다.

su - postgres
createuser -sdP odoo

새 역할 odoo의 암호를 입력하고 반복합니다.

이제 아래의 psql 명령을 통해 PostgreSQL 셸에 로그인합니다.

psql

다음 쿼리를 실행하여 PostgreSQL의 역할 목록을 확인하고 odoo 역할을 사용할 수 있는지 확인합니다.

\du

이제 \\q을 입력하여 PostgreSQL 셸을 종료합니다. 그런 다음 exit를 입력하여 postgres 사용자에서 로그아웃합니다.

이제 odoo에 대한 역할을 만든 후 odoo 역할에 대한 인증을 설정합니다.

다음 나노 편집기를 사용하여 PostgreSQL 구성 /etc/postgresql/14/main/pg_hba.conf을 편집합니다.

sudo nano /etc/postgresql/14/main/pg_hba.conf

파일에 다음 구성을 추가합니다. 이를 통해 암호 인증 scram-sha-256을 사용하여 역할 odoo에 대해 PostgreSQL에 대한 액세스를 허용합니다.

host    all   odoo    127.0.0.1/32    scram-sha-256

파일을 저장하고 완료되면 편집기를 종료하십시오.

이제 다음 명령을 실행하여 PostgreSQL 서비스를 다시 시작하고 새 변경 사항을 적용합니다.

sudo systemctl restart postgresql

마지막으로 postgres 사용자로 로그인하고 아래와 같이 psql 명령을 통해 PostgreSQL 셸에 로그인하여 odoo 역할을 확인합니다.

su - postgres
psql -h 127.0.0.1 -U odoo -d postgres

로그인 후 다음 쿼리를 사용하여 확인합니다.

\conninfo

이제 odoo 역할을 사용하여 PostgreSQL에 연결되었음을 확인할 수 있습니다.

이 시점에서 odoo에 대한 PostgreSQL 데이터베이스 준비가 완료되었습니다. 다음으로 소스 코드를 다운로드하고 Python 종속성을 설치하여 odoo 설치를 시작합니다.

오두 16 다운로드

이 데모에서는 odoo 사용자로 odoo v16을 설정하고 실행합니다. 이제 새로운 Unix 사용자 odoo를 생성하고 최신 버전의 odoo 16 소스 코드를 다운로드합니다.

다음 명령을 실행하여 새 사용자 odoo를 만듭니다. 이 예에서 odoo 사용자의 기본 홈 디렉토리는 /opt/odoo이고 기본 셸은 bash입니다.

sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo

이제 작업 디렉토리를 /opt/odoo로 이동하고 다음 git 명령을 통해 odoo 소스 코드를 다운로드합니다. 이 예에서는 odoo 16을 설치합니다.

cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch odoo-server

이제 /opt/odoo 디렉토리 안에 새로운 디렉토리 odoo-server를 가져와야 합니다.

마지막으로 다음 명령을 실행하여 odoo 소스 코드의 소유권을 odoo 사용자 및 그룹으로 변경합니다.

sudo chown -R odoo:odoo /opt/odoo/odoo-server

odoo 소스 코드를 다운로드한 후 다음으로 odoo용 Python 패키지 종속성 설치를 시작합니다.

Odoo용 Python 종속성 설치

이 단계에서는 odoo용 Python 가상 환경을 설정하고 pip3 명령을 통해 Python 종속성을 설치합니다.

작업 디렉터리를 /opt/odoo/odoo-server로 이동하고 다음 명령을 통해 새 Python 가상 환경 venv를 만듭니다.

cd /opt/odoo/odoo-server
python3 -m venv venv

다음으로 다음 명령을 통해 venv Python 가상 환경을 활성화합니다.

source venv/bin/activate

Python 가상 환경을 활성화하면 현재 셸이 (venv) [email 와 같이 변경된 것을 볼 수 있습니다.

이제 다음 pip3 명령을 실행하여 requirements.txt 파일을 통해 Python 패키지 휠을 설치하고 odoo Python 종속성을 설치합니다.

pip3 install wheel
pip3 install -r requirements.txt

Python 종속성이 설치된 후 다음 명령을 실행하여 Python venv 가상 환경을 종료합니다.

deactivate

이제 odoo 소스 코드를 다운로드하고 Python 종속성을 설치했습니다. 다음으로 odoo 설치를 위한 새 구성 및 디렉터리를 만듭니다.

Odoo 구성 생성

Odoo에 대한 패키지 종속성을 설치한 후 다음에 odoo에 대한 구성을 만들고 odoo를 systemd 서비스로 설정하기 시작합니다.

다음 nano 편집기를 사용하여 새 구성 파일 /etc/odoo.conf을 만듭니다.

sudo nano /etc/odoo.conf

파일에 다음 구성을 추가합니다. 그리고 admin_passwd 및 세부 정보 데이터베이스 사용자와 암호를 세부 정보로 변경해야 합니다.

[options]
; This is the password that allows database operations:
admin_passwd = adminpassodoo
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = odoopass
addons_path = /opt/odoo/odoo-server/addons
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo-server.log
log_level  = debug

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

이제 odoo 구성 파일 /etc/odoo.conf의 소유권을 시스템 사용자 odoo로 변경합니다.

sudo chown odoo:odoo /etc/odoo.conf

다음으로 다음 명령을 실행하여 odoo에 대한 로그를 저장하는 데 사용할 새 디렉터리를 만듭니다.

sudo mkdir /var/log/odoo

그런 다음 odoo 로그 디렉토리 /var/log/odoo의 소유권을 사용자 odoo로 변경하고 권한을 755로 변경합니다.

sudo chown odoo:odoo /var/log/odoo 
sudo chmod 755 /var/log/odoo

Systemd 서비스로 Runnnig Odoo

이 시점에서 명령줄을 통해 수동으로 odoo를 실행할 수 있습니다. 더 쉽게 하기 위해 시스템 서비스로 odoo를 실행할 수 있습니다. 이를 통해 systemctl 명령을 통해 odoo를 관리할 수 있습니다.

이제 새로운 systemd 서비스 파일을 생성하고 odoo를 systemd 서비스로 실행합니다.

시작하려면 다음 nano 편집기를 사용하여 새 시스템 서비스 파일 /lib/systemd/system/odoo-server.service를 만듭니다.

sudo nano /lib/systemd/system/odoo-server.service

파일에 다음 구성을 추가합니다.

[Unit]
Description=Odoo 16.0 Service
Requires=postgresql.service
After=network.target postgresql.service
 
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-server/venv/bin/python3 /opt/odoo/odoo-server/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
 
[Install]
WantedBy=multi-user.target

파일을 저장하고 완료되면 편집기를 종료하십시오.

다음으로 systemd 관리자를 다시 로드하여 아래의 systemctl 명령을 통해 새 서비스 파일을 적용합니다.

sudo systemctl daemon-reload

다음 명령을 사용하여 odoo-server 서비스를 시작하고 활성화합니다.

sudo systemctl start odoo-server
sudo systemctl enable odoo-server

마지막으로 odoo 서비스를 확인하여 서비스가 실행 중인지 확인합니다.

sudo systemctl status odoo-server

실행 중인 서비스 odoo-server의 출력을 수신해야 합니다.

Nginx 리버스 프록시로 Odoo 실행

프로덕션 환경에서 odoo를 배포하는 권장 방법은 리버스 프록시를 사용하는 것입니다. 이를 통해 로컬 호스트에서만 odoo를 실행할 수 있으며 모든 클라이언트 액세스는 리버스 프록시에 의해 처리됩니다.

이 단계에서는 Nginx 웹 서버를 odoo 웹 애플리케이션의 리버스 프록시로 설치하고 설정합니다. 또한 SSL로 보안된 odoo 설치가 제공됩니다. 따라서 Nginx 구성을 시작하기 전에 도메인 이름이 서버 IP 주소를 가리키고 SSL Letsencrypt를 생성했는지 확인하십시오.

먼저 다음 나노 편집기를 사용하여 odoo 구성 파일 /etc/odoo.conf을 수정합니다.

sudo nano /etc/odoo.conf

파일에 다음 구성을 추가합니다. 이 구성은 127.0.0.1에서 실행될 백엔드 애플리케이션으로 odoo를 실행합니다.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

파일을 저장하고 완료되면 편집기를 종료하십시오.

이제 다음 명령을 실행하여 odoo-server 서비스를 다시 시작하고 새로운 변경 사항을 적용하십시오.

sudo systemctl restart odoo-server

이제 odoo-server 서비스를 확인하여 서비스가 실행 중인지 확인하십시오.

sudo systemctl status odoo-server

다음으로 Nginx를 설치하고 구성합니다.

다음 apt 명령을 실행하여 Nginx 웹 서버 패키지를 설치합니다. 메시지가 표시되면 y를 입력하고 Enter 키를 눌러 계속 진행하고 설치를 확인합니다.

sudo apt install nginx

Nginx가 설치된 후 다음 nano 편집기를 사용하여 새 Nginx 서버 블록 구성 /etc/nginx/sites-available/odoo.conf을 만듭니다.

sudo nano /etc/nginx/sites-available/odoo.conf

파일에 아래 구성을 추가하고 도메인 이름과 SSL 인증서의 경로를 설정으로 변경해야 합니다.

#odoo server
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   server_name odoo.hwdomain.io;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.hwdomain.io;
 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for odoo 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;

 # SSL parameters
 ssl_certificate /etc/letsencrypt/live/odoo.hwdomain.io/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.hwdomain.io/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
 ssl_session_tickets off;
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
 ssl_prefer_server_ciphers off;

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

 # Redirect longpoll requests to odoo longpolling port
 location /longpolling {
 proxy_pass http://odoochat;
 }

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

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

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

이제 새 Nginx 서버 블록 구성을 활성화하고 Nginx 구성을 확인하여 구성이 올바른지 확인하십시오.

sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
sudo nginx -t

구성이 올바르면 test successful - syntax OK와 같은 출력 메시지가 표시됩니다.

마지막으로 다음 systemctl 명령을 실행하여 Nginx 서비스를 다시 시작하고 새 변경 사항을 적용합니다.

sudo systemctl restart nginx

이 시점에서 odoo ERP용 Nginx 리버스 프록시의 설치 및 구성을 완료했습니다. 이제 웹 브라우저를 통해 설치에 액세스할 수 있습니다.

다음 명령을 실행하여 Nginx 서비스를 확인하고 서비스가 실행 중인지 확인하십시오.

sudo systemctl restart nginx

Nginx 서비스가 실행 중이어야 합니다.

UFW 방화벽 설정

odoo 설치에서 방화벽을 활성화하는 것이 좋습니다. 이 단계에서는 UFW 방화벽을 설정하는 방법을 배웁니다.

기본적으로 일반 Ubuntu 서버에는 ufw 패키지가 설치되어 있으므로 구성을 시작할 수 있습니다.

다음 명령을 실행하여 OpenSSH 애플리케이션을 ufw 방화벽에 추가합니다. 그런 다음 ufw를 실행하고 활성화합니다.

sudo ufw allow "OpenSSH"
sudo ufw enable

확인 메시지가 표시되면 y를 입력하고 ENTER를 눌러 계속 진행합니다. 그러면 ufw 방화벽 서비스가 활성화되고 실행됩니다.

다음으로 다음 명령을 실행하여 Nginx Full 애플리케이션을 추가합니다. 이 애플리케이션 프로필은 기본 설치에서 Nginx 패키지에 의해 제공되며 애플리케이션에 대한 HTTP 및 HTTPS 포트를 모두 엽니다.

sudo ufw allow "Nginx Full"

마지막으로 ufw에서 활성화된 규칙 목록을 확인합니다. OpenSSH 및 Nginx Full이 활성화된 두 개의 애플리케이션이 표시되어야 합니다.

sudo ufw status

데이터베이스 마이그레이션 및 Odoo 16 설치

웹 브라우저를 열고 odoo 설치의 도메인 이름(예: https://odoo.hwdomain.io/)을 방문합니다.

처음에는 odoo용 데이터베이스를 마이그레이션하고 새 관리자 사용자를 생성해야 합니다.

여기서 마스터 비밀번호는 /etc/odoo.conf 파일에 방금 추가한 admin_passwd입니다.

자동으로 생성될 새 데이터베이스 이름을 입력하고 odoo 설치를 위한 새 관리 사용자 및 암호 세부 정보를 입력합니다. 또한 데모 데이터 확인란을 선택하여 설치에 데모 데이터를 추가할 수도 있습니다.

데이터베이스 생성을 클릭하여 odoo 설치를 시작합니다.

odoo가 설치되면 odoo 로그인 페이지로 리디렉션됩니다. odoo의 관리자 이메일과 비밀번호를 입력하고 로그인을 클릭합니다.

이제 odoo 사용자 대시보드를 가져와야 합니다.

결론

축하합니다! 이제 Ubuntu 22.04 서버에 Odoo 오픈 소스 ERP를 설치했습니다. 이제 역방향 프록시로 구성된 Nginx 웹 서버와 PostgreSQL 데이터베이스 서버의 기본 설치에 대해서도 배웠습니다.

이 시점에서 Ubuntu 서버에 Odoo 설치를 완전히 보호했습니다. 이제 귀하의 비즈니스에 적합한 몇 가지 추가 플러그인/애드온을 추가할 수 있습니다.