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スタックをインストールする方法を学びます。
前提条件
- Odooスタックをホストするために最低2GBのRAMを持つUbuntu 20.04ベースのサーバー。
- PostgreSQLデータベースをホストするために最低2GBのRAMを持つ2台目のUbuntu 20.04ベースのサーバー。ただし、Odooと同じサーバーにデータベースをインストールすることもできますが、プロダクション環境では別のサーバーにインストールすることを強くお勧めします。また、任意のプロバイダーから利用可能な管理データベースオプションを選択することもできます。
- RAMの要件は、スタックを使用する同時ユーザーの数によって異なります。システム要件の計算方法についての詳細なガイドは、Odooのドキュメントにあります。
- システムを最新の状態に保ちます。
shell $ sudo apt update $ sudo apt upgrade - 両方のサーバーで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
オプション-uはpostgresユーザーとしてコマンドを実行します。
オプション-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を使用します。
- Odoo用の新しい
virtualenv環境を作成します。shell $ python3 -m venv /home//odoo-env - 仮想環境をアクティブにします。システムユーザーのホームディレクトリの下に環境を作成しています。好きな場所を選んで構いません。
shell $ source /home//odoo-env/bin/activate - 念のためPIPを更新します。
shell (odoo-env) $ pip3 install --upgrade pip - 仮想環境に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://またはhttp://odoo.yourdomain.com:8069のURLを開きます。すべてが正常に動作していれば、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にログインすると、次のような画面が表示されます。

結論
これで、Ubuntu 20.04サーバーにOdooをインストールするためのチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。