Odooインストール · 5 min read · Nov 12, 2025

Ubuntu 20.04にOdoo 14 ERPソフトウェアをインストールする方法

Odoo(以前はOpenERPとして知られていました)は、CRM、eコマース、会計、在庫、プロジェクト管理、販売時点など、さまざまなビジネスニーズに適した10,000以上のオープンソースアプリケーションの自己ホスト型スイートです。これらのアプリケーションは完全に統合されており、共通のWebインターフェースを介してアクセスされます。

このチュートリアルでは、Ubuntu 20.04ベースのサーバーにOdoo 14スタックをインストールする方法を学びます。

前提条件

  1. Odooスタックをホストするために最低2GBのRAMを持つUbuntu 20.04ベースのサーバー。
  2. PostgreSQLデータベースをホストするために最低2GBのRAMを持つ2台目のUbuntu 20.04ベースのサーバー。ただし、Odooと同じサーバーにデータベースをインストールすることもできますが、プロダクション環境では別のサーバーにインストールすることを強くお勧めします。また、任意のプロバイダーから利用可能な管理データベースオプションを選択することもできます。
  3. RAMの要件は、スタックを使用する同時ユーザーの数によって異なります。システム要件の計算方法についての詳細なガイドは、Odooのドキュメントにあります。
  4. システムを最新の状態に保ちます。 shell $ sudo apt update $ sudo apt upgrade
  5. 両方のサーバーでsudo権限を持つ非rootユーザー。

ファイアウォールルールの設定

このチュートリアルの目的のために、両方のサーバーにufwファイアウォールがインストールされていると仮定します。

Odooサーバーでは、ポート22、80、443、6010、5432、8069を開く必要があります。22はSSH用、80はHTTP用、443はHTTPS用、6010はOdoo通信用、5432はPostgreSQL用、8069はOdooサーバーアプリケーション用です。

必要なポートをOdooサーバーで開くために、次のコマンドを実行します。

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

PostgreSQLサーバーでは、ポート22、6010、5432を開く必要があります。先ほど説明したコマンドを使用して開いてください。

ホスト名の割り当て

サーバーのIPアドレスを使用するか、利用可能な場合は完全修飾ドメイン名(FQDN)を使用できます。このチュートリアルではFQDNを使用し、そのために両方のサーバーでホスト名を設定する必要があります。

Odooサーバーで、/etc/hostsファイルを開きます。

$ sudo nano /etc/hosts

次のように見えることを確認してください。

127.0.0.1  localhost
127.0.0.1  odoo.yourdomain.com      odoo
10.1.1.10  postgresql.yourdomain.com  postgresql

PostgreSQLサーバーでファイルを開き、次のように見えることを確認してください。

127.0.0.1  localhost
127.0.0.1  postgresql.yourdomain.com  postgresql
10.1.2.10  odoo.yourdomain.com      odoo

エディタを閉じるにはCtrl + Xを押し、ファイルを保存するように求められたらYを押します。

PostgreSQLのインストールと設定

Ubuntu 20.04にはデフォルトでPostgreSQL 12が付属しており、それをインストールします。PostgreSQLサーバーで次のコマンドを実行します。

$ sudo apt install postgresql-12 postgresql-server-dev-12

次に、データベースユーザーodooを作成する必要があります。

$ sudo -u postgres createuser odoo -U postgres -dP

オプション-upostgresユーザーとしてコマンドを実行します。

オプション-Uは接続するユーザー名を示します。

オプション-dはユーザーにデータベースを作成する権限を付与します。

オプション-pは新しいユーザーのパスワードを求めます。

ホストベースの認証の設定

PostgreSQLサービスがOdooサーバーに接続できるようにするための権限を与える必要があります。

まず、PostgreSQLサービスを停止します。

$ sudo systemctl stop postgresql

/etc/postgresql/12/main/pg_hba.confファイルを編集のために開きます。

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

最後に次の行を貼り付けます。

host    all        odoo        odoo.yourdomain.com        md5

この行は、odooユーザーがこのサーバー内のすべてのデータベースに接続する権限を付与します。allキーワードの代わりにデータベースの名前を指定することもできます。

エディタを閉じるにはCtrl + Xを押し、ファイルを保存するように求められたらYを押します。

PostgreSQLリスニングアドレスの設定

次に、データベースサーバーがリモート接続をリッスンできるようにする必要があります。/etc/postgresql/12/main/postgresql.confファイルを編集のために開きます。

$ sudo nano /etc/postgresql/12/main/postgresql.conf

listen_addressesの行を次のように変更します。

#listen_addresses = 'localhost' # what IP address(es) to listen on;

次のように変更します。

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

*はすべてのIPアドレスをリッスンすることを意味します。OdooインスタンスのIPアドレスに変更することもできます。

エディタを閉じるにはCtrl + Xを押し、ファイルを保存するように求められたらYを押します。

PostgreSQLサービスの有効化と開始

設定が完了したので、PostgreSQLサービスを開始して有効にする時が来ました。

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Odooのインストール

依存関係のインストールとインストールの準備

OdooサーバーでOdooプロセスを管理するための新しいシステムユーザーを作成します。

$ sudo adduser --system --home=/opt/odoo --group odoo

いくつかのシステム依存関係をインストールする必要がありますが、まずソースリポジトリを有効にする必要があります。そのために、元のソースリストをバックアップし、すべてのソースリポジトリを有効にしてリポジトリリストを更新します。

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Odoo 14のセットアップに必要なシステム依存関係をインストールします。

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Nodejsをインストールします。

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Nodeを使用してLess CSSパッケージをインストールします。

$ sudo npm install -g less less-plugin-clean-css

wkhtmltopdfバージョン0.12.6パッケージをダウンロードします。

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

パッケージをインストールします。

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

wkhtmltopdfが正しく機能することを確認するために、バイナリを/usr/binにコピーし、適切な権限を与えます。

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Odooファイルのダウンロード

OdooのGithubリポジトリをシステムにクローンします。

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

目的のために、Odooを/opt/odooディレクトリにコピーします。ここからインストールされます。

Python環境の仮想環境の設定

このステップはオプションですが、Odooの仮想Python環境を使用することをお勧めします。これにより、特にOSのアップグレードを行う際に、オペレーティングシステムのPythonモジュールとの競合を避けることができます。

これにはvirtualenvを使用します。

  1. Odoo用の新しいvirtualenv環境を作成します。 shell $ python3 -m venv /home//odoo-env
  2. 仮想環境をアクティブにします。システムユーザーのホームディレクトリの下に環境を作成しています。好きな場所を選んで構いません。 shell $ source /home//odoo-env/bin/activate
  3. 念のためPIPを更新します。 shell (odoo-env) $ pip3 install --upgrade pip
  4. 仮想環境にPythonのwheelをインストールします。 shell $ pip3 install wheel

Python依存関係のインストール

Odoo 14に必要なPython依存関係をインストールします。

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

要件のインストールには時間がかかるので、辛抱強く待ってください。

インストールされたPythonモジュールのリストを確認して、要件が正しくインストールされているか確認します。

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Pythonの仮想環境を終了します。

$ deactivate

Odooの設定

デフォルトのOdoo設定ファイルをコピーして新しいものを作成します。

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

編集のためにファイルを開きます。

$ sudo nano /etc/odoo-server.conf

ファイルを次のように編集します。

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

エディタを閉じるにはCtrl + Xを押し、ファイルを保存するように求められたらYを押します。

オプションadmin_passwdは、Odoo GUI内での管理操作を許可するパスワードです。安全なパスワードを選択してください。

オプションdb_hostはPostgreSQLサーバーのFQDNまたはIPアドレスです。

オプションdb_portは、デフォルトのPostgreSQLポート5432が使用されているため、falseに設定されています。別のポートを使用する場合は、この値を更新する必要があります。

オプションdb_userはPostgreSQLユーザーの名前です。

オプションdb_passwordは、PostgreSQLサーバーで以前に作成したPostgreSQLの’odoo’ユーザーのパスワードです。

オプションaddons_pathはデフォルトのアドオンパスです。カスタムパスを追加することもでき、カンマで区切ります。

オプションxmlrpc_portはOdooがリッスンするポートです。

Odooサービスの作成

Odooがシステム再起動後も実行され続けるようにするために、サービスを作成する必要があります。

/lib/systemd/system/odoo-server.serviceというファイルを作成し、編集のために開きます。

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

以下のコードを貼り付けます。

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home//odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

/home/をPython仮想環境のインストール場所に置き換えます。

エディタを閉じるにはCtrl + Xを押し、ファイルを保存するように求められたらYを押します。

ファイルの権限を設定

odoo-server.serviceファイルの権限を設定し、Odooユーザーのみが読み取りまたは実行できるようにします。

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Python環境とOdooインストールディレクトリの所有権を設定します。

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home//odoo-env

Odoo設定ファイルのアクセスを制限します。

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Odooサーバーの起動

Odooサーバーを起動して有効にします。

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

サーバーの状態を確認します。

$ sudo systemctl status odoo-server

ブラウザでhttp://:8069またはhttp://odoo.yourdomain.com:8069のURLを開きます。すべてが正常に動作していれば、Odooのデータベース作成画面が表示されるはずです。

Odooインストール画面

すべてのフィールドに入力します。デモデータフィールドをチェックしてデータベースにサンプルデータを入力し、次にデータベースを作成ボタンをクリックします。

次に、選択できるアプリのリストが表示されます。

データベースを初めて作成する際は、アドオンページの読み込みに時間がかかるため、ページを更新しないでください。

Nginxのインストールと設定

これまで、Odooのサーバーを使用してスタックを実行していました。しかし、理想的には、プロキシを使用してNginxで実行する方が良いです。これにより、SSLをインストールできます。

Nginxをインストールします。

$ sudo apt install nginx

Nginx経由で実行するには、Odooをlocalhostで実行する必要があります。それを変更するために、Odooサービスを停止します。

$ sudo systemctl stop odoo-server

Odooサーバー設定ファイルを開きます。

$ sudo nano /etc/odoo-server.conf

次の行を追加します。

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Odoo用のNginx設定ファイルを作成します。

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

以下のコードを貼り付けます。

#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.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 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.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/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;
}

エディタを閉じるにはCtrl + Xを押し、ファイルを保存するように求められたらYを押します。

この設定ファイルをsites-enabledディレクトリにリンクして有効にします。

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

Nginx設定をテストします。

$ sudo nginx -t

SSLのインストール

Let’s Encryptサービスを使用してSSLをインストールします。

そのために、Certbotをインストールします。

$ sudo apt install certbot

Certbotプロセスに干渉するため、Nginxを停止します。

$ sudo systemctl stop nginx

証明書を生成します。DHParams証明書も作成する必要があります。

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

SSLを自動的に更新するためのcronジョブを設定する必要があります。crontabエディタを開くには、次のコマンドを実行します。

$ sudo crontab -e

次の行を最後に貼り付けます。

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

上記のcronジョブは、毎日午前2時25分にcertbotを実行します。任意の時間に変更できます。

ファイルを保存するにはCtrl + Xを押し、求められたらYを押します。

Odooを起動

すべての設定が完了したので、Odooサーバーを再度起動できます。

$ sudo systemctl start odoo-server

ブラウザでhttps://odoo.yourdomain.comを開きます。前述の画面が表示されます。データベースを作成するために必要な詳細を入力し、Odooにログインすると、次のような画面が表示されます。

Odooホームページ

結論

これで、Ubuntu 20.04サーバーにOdooをインストールするためのチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。