Odoo 설치 · 10 min read · Sep 11, 2025

우분투 24.04 서버에 Odoo ERP 소프트웨어 설치하는 방법

Odoo(구 OpenERP)는 10,000개 이상의 오픈 소스 애플리케이션으로 구성된 자가 호스팅 스위트입니다. Odoo는 여러 유형의 비즈니스를 위한 무료 오픈 소스 ERP 솔루션입니다. Odoo는 ERP 및 CRM 솔루션을 제공하며 그 이상입니다. 고객 관계 관리(CRM), 판매 파이프라인, 프로젝트 관리, 제조, 청구, 회계, 전자 상거래 등 다양한 기능을 제공합니다.

Odoo는 귀하의 비즈니스를 위한 완전한 ERP 솔루션 중 하나입니다. 기본적으로 30개의 핵심 모듈이 있으며, 여러 비즈니스를 지원하기 위해 4,500개 이상의 커뮤니티 모듈을 제공합니다.

이 튜토리얼에서는 우분투 24.04 서버에 Odoo 오픈 소스 ERP를 설치합니다. 최신 안정 버전인 Odoo 17을 설치하고 구성하며, Odoo를 위한 PostgreSQL 데이터베이스를 설정하고, 마지막으로 Odoo 애플리케이션을 위한 리버스 프록시로 Nginx를 설정합니다.

필수 조건

이 튜토리얼을 시작하려면 다음 요구 사항이 필요합니다:

  • 우분투 24.04 서버 - 이 예제에서는 호스트 이름이 ‘odoo-server’인 우분투 서버를 사용합니다.
  • sudo 루트/관리자 권한이 있는 비루트 사용자 - 또는 루트 사용자도 사용할 수 있습니다.
  • 서버 IP 주소를 가리키는 도메인 이름 - 프로덕션을 위해 Odoo 설치를 위한 도메인 이름이 필요합니다.

종속성 설치

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

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

sudo apt update

update repo

다음으로, 다음 apt 명령을 통해 Odoo의 패키지 종속성을 설치합니다. 이 설치에는 최신 버전의 Python, 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를 눌러 진행합니다. 설치가 시작됩니다.

install deps

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

Nodejs 설치

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

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

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

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

add nodejs repo

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

sudo apt install nodejs

install nodejs

Node.js가 설치되면, 다음 npm 명령을 실행하여 ‘rtlcss‘ 패키지를 설치합니다.

rtlcss‘ 패키지는 특히 아랍어 및 히브리어와 같은 특정 언어의 오른쪽에서 왼쪽으로 사용자 인터페이스를 사용하는 경우 Odoo에 필요합니다.

sudo npm install -g rtlcss

install rtlcss

Wkhtmltopdf 설치

Odoo 오픈 소스 ERP는 wkhtmltopdf 패키지가 설치되어 있어야 합니다. 이 패키지는 HTML 페이지를 PDF 및 다양한 이미지 형식으로 렌더링하는 데 필요합니다. wkhtmltopdf 패키지는 .deb 패키지를 통해 우분투 시스템에 수동으로 설치됩니다.

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

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

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

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

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

sudo apt install -f

install wkhtmltopdf

Wkhtmltopdf가 설치된 후, 기본적으로 ‘/usr/local/bin‘ 디렉토리에 있는 Wkhtmltopdf 패키지의 바이너리 파일을 확인할 수 있습니다. ‘wkhtmltopdf’ 및 ‘wkhtmltoimage‘ 두 프로그램이 있어야 합니다.

ls /usr/local/bin

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

echo $PATH

마지막으로, 다음 명령을 실행하여 Wkhtmltopdf 패키지의 바이너리 경로가 사용 가능한지 확인합니다. Wkhtmltopdf 패키지가 사용 가능하면 Wkhtmltopdf 패키지의 전체 경로가 출력됩니다.

which wkhtmltopdf  
which wkhtmltoimage

check wkhtmltopdf

PostgreSQL 데이터베이스 서버 설치

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

다음 apt 명령을 실행하여 PostgreSQL 데이터베이스 서버를 설치합니다. 확인을 요청받으면 y를 입력하고 ENTER를 누릅니다.

sudo apt install postgresql

install postgresql

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

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

다음 출력에서 PostgreSQL 서비스가 활성화되어 있으며 시스템 시작 시 자동으로 실행될 것임을 확인할 수 있습니다. PostgreSQL의 상태가 실행 중입니다.

check postgresqlk

다음으로, Odoo를 위한 새 역할을 생성합니다. 다음 명령을 실행하여 ‘postgres‘ 사용자로 로그인하고 ‘ odoo ‘라는 이름의 새 역할을 생성합니다.

su - postgres  
createuser -sdP odoo

새 역할 ‘ odoo ‘의 비밀번호를 입력하고 반복합니다.

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

psql

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


du

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

create and check postgres user

이제 Odoo를 위한 역할을 생성했으므로 ‘odoo’ 역할에 대한 인증을 테스트합니다.

postgres ‘ 사용자로 로그인하고 psql 명령을 통해 PostgreSQL 셸에 로그인하여 ‘odoo’ 역할을 확인합니다.

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

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


du

이제 ‘ odoo ‘ 역할을 사용하여 PostgreSQL에 연결되어 있는 것을 확인할 수 있습니다.

connect to postgresql

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

Odoo 17 다운로드

이 데모에서는 사용자 ‘odoo’와 함께 Odoo v17을 설정하고 실행합니다. 이제 새 Unix 사용자 ‘odoo’를 생성하고 Odoo 17 소스 코드의 최신 버전을 다운로드합니다.

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

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

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

cd /opt/odoo  
git clone https://github.com/odoo/odoo.git --depth 1 --branch 17.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) root@hostname… ‘와 같이 변경된 것을 볼 수 있습니다.

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

pip3 install wheel  
pip3 install -r requirements.txt

install deps odoo

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

deactivate

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

Odoo 구성 생성

다음 nano 편집기를 사용하여 새 구성 파일 ‘ /etc/odoo.conf ‘를 생성합니다.

sudo nano /etc/odoo.conf

파일에 다음 구성을 추가합니다. ‘ admin_passwd ‘ 및 데이터베이스 사용자 및 비밀번호 세부 정보를 귀하의 세부 정보로 변경해야 합니다.

[options]  
; 데이터베이스 작업을 허용하는 비밀번호입니다:  
admin_passwd = adminpassodoo  
db_host = 127.0.0.1  
db_port = 5432  
db_user = odoo  
db_password = odoo  
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

Odoo를 Systemd 서비스로 실행

이 시점에서 Odoo를 명령줄을 통해 수동으로 실행할 수 있습니다. 더 쉽게 하려면 Odoo를 systemd 서비스로 실행할 수 있습니다. 이렇게 하면 systemctl 명령을 통해 Odoo를 관리할 수 있습니다.

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

시작하려면 다음 nano 편집기를 사용하여 새 systemd 서비스 파일 ‘/lib/systemd/system/odoo-server.service’를 생성합니다.

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

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

[Unit]  
Description=Odoo 17.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 관리자를 새 서비스 파일을 적용하기 위해 다시 로드합니다.

sudo systemctl daemon-reload

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

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

setup odoo service

마지막으로, Odoo 서비스가 실행 중인지 확인하기 위해 다음 명령을 실행합니다.

sudo systemctl status odoo-server

odoo-server ‘ 서비스가 실행 중이라는 출력이 표시되어야 합니다.

check odoo

Nginx 리버스 프록시로 Odoo 실행

Odoo를 프로덕션에 배포하는 권장 방법은 리버스 프록시를 사용하는 것입니다. 이렇게 하면 Odoo를 로컬호스트에서만 실행하고 모든 클라이언트 액세스는 리버스 프록시가 처리합니다.

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

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

sudo nano /etc/odoo.conf

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

xmlrpc_interface = 127.0.0.1  
proxy_mode = True

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

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

sudo systemctl restart odoo-server

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

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

sudo apt install nginx

install nginx

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

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

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

  
#odoo 서버  
upstream odoo {  
server 127.0.0.1:8069;  
}  
upstream odoochat {  
server 127.0.0.1:8072;  
}  
  
# http -> https  
server {  
listen 80;  
server_name odoo.howtoforge.local;  
rewrite ^(.*) https://$host$1 permanent;  
}  
  
server {  
listen 443 ssl http2;  
server_name odoo.howtoforge.local;  
proxy_read_timeout 720s;  
proxy_connect_timeout 720s;  
proxy_send_timeout 720s;  
  
# Odoo 프록시 모드에 대한 헤더 추가  
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 매개변수  
ssl_certificate /etc/letsencrypt/live/odoo.howtoforge.local/fullchain.pem;  
ssl_certificate_key /etc/letsencrypt/live/odoo.howtoforge.local/privkey.pem;  
ssl_session_timeout 1d;  
ssl_session_cache shared:MozSSL:10m; # 약 40000 세션  
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;  
ssl_dhparam /etc/ssl/certs/dhparam.pem;  
  
# 로그  
access_log /var/log/nginx/odoo.access.log;  
error_log /var/log/nginx/odoo.error.log;  
  
# Odoo 롱폴링 포트로 요청 리디렉션  
location /longpolling {  
proxy_pass http://odoochat;  
}  
  
# Odoo 백엔드 서버로 요청 리디렉션  
location / {  
proxy_redirect off;  
proxy_pass http://odoo;  
}  
  
# 일반 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 리버스 프록시 설치 및 구성이 완료되었습니다. 이제 웹 브라우저를 통해 설치에 접근할 수 있습니다.

check nginx

UFW 방화벽 설정

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

기본적으로 일반 우분투 서버에는 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

setup ufw

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

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

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

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

자동으로 생성될 새 데이터베이스 이름을 입력하고 Odoo 설치를 위한 새 관리자 사용자 및 비밀번호 세부 정보를 입력합니다. 추가로 데모 데이터를 설치에 추가하려면 데모 데이터 체크박스를 선택할 수 있습니다.

Create database ‘를 클릭하여 Odoo 설치를 시작합니다.

install odoo

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

login odoo

이제 Odoo 사용자 대시보드를 확인할 수 있습니다.

dashboard odoo

결론

축하합니다! 이제 우분투 24.04 서버에 Odoo 오픈 소스 ERP를 설치했습니다. PostgreSQL 데이터베이스 서버와 리버스 프록시로 구성된 Nginx 웹 서버의 기본 설치도 배웠습니다.

이제 우분투 서버에 Odoo 설치가 완전히 보안되었습니다. 이제 비즈니스에 적합한 추가 플러그인/애드온을 추가할 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.