IT・個人事業

Ubuntu 24.04 / 26.04にOdoo 19をインストールする手順

公開: 更新:

※ 本記事にはアフィリエイト広告(Amazonアソシエイト・楽天アフィリエイト等)が含まれています。

以前Ubuntu 22.04にOdoo 16を入れる記事を書きましたが、その後Odooはバージョンが上がり、現在の最新メジャーバージョンは Odoo 19 です。そこで、最新の長期サポート版である Ubuntu 24.04 LTS、および Ubuntu 26.04 LTS で動くように、手順を全面的に書き直しました。どちらのUbuntuでもほぼ同じ流れで進められます。

OdooはPython製の統合業務アプリ(ERP)で、データベースには PostgreSQL を使います。ここでは公式のソースコードをGitHubから取得し、Pythonの仮想環境の中で動かす、という王道の構成でインストールしていきます。

※手順は公式ドキュメントおよびOdoo 19の構成に合わせて整理していますが、環境により細部(依存パッケージのバージョンなど)は変わります。エラーが出たら末尾の公式ドキュメントも合わせて確認してください。

前提と全体像

  • Ubuntu 24.04 LTS もしくは 26.04 LTS
  • sudo が使える一般ユーザーでログイン済みであること
  • これから行うのは大きく分けて「①依存パッケージを入れる → ②専用ユーザーを作る → ③PostgreSQLを用意する → ④Odoo本体を取得して仮想環境を作る → ⑤設定ファイルとサービスを用意して起動」の5ステップです

1. Linuxのバージョンを確認する

まず、今動いているUbuntuのバージョンを確認しておきます。

lsb_release -a

Ubuntu 24.04 LTSUbuntu 26.04 LTS と表示されればOKです。

2. パッケージ情報を更新する

インストール前にパッケージ一覧を最新化します。

sudo apt update && sudo apt upgrade -y

update が一覧の更新、upgrade が導入済みパッケージの更新です。&& でつないで一気に実行しています。

3. 依存パッケージをまとめて入れる

Odooをソースからビルドするのに必要な、Python関連のツールや各種開発用ライブラリを一括で入れます。

sudo apt install -y git build-essential wget python3-dev python3-venv \
python3-wheel python3-pip libfreetype6-dev libxml2-dev libzip-dev \
libsasl2-dev libldap2-dev libjpeg-dev zlib1g-dev libpq-dev \
libxslt1-dev libtiff5-dev libopenjp2-7-dev

ざっくり言うと、gitwget は取得用、build-essentialpython3-dev はビルド用、末尾の lib○○-dev 群は、OdooがPythonパッケージをインストールするときに必要になる開発用ヘッダー類です。

4. Node.jsとrtlcssを入れる

Odooはフロントエンドのアセット処理にNode.jsを使います。Ubuntuの標準リポジトリのNode.jsで問題ありません。加えて、アラビア語などの右書き言語向けにCSSを変換する rtlcss を入れておきます。

sudo apt install -y nodejs npm
sudo npm install -g rtlcss

5. wkhtmltopdf(PDF出力用)を入れる

Odooの帳票をPDF出力するには wkhtmltopdf が必要です。Odooは特定バージョン(0.12.6.1)を推奨しているため、Ubuntu標準版ではなく公式ビルドを入れます。

cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb
執筆時点でUbuntu 24.04(noble)向けの専用ビルドは公式リリースにないため、上記ではjammy向けの公式ビルドを利用しています。`apt install ./ファイル名` で入れると依存関係を自動解決してくれます。最新の配布ファイルはwkhtmltopdfのリリースページで確認してください。PDF出力を使わない場合、この手順は後回しでも構いません。

6. Odoo専用のシステムユーザーを作る

Odooを動かす専用ユーザーを作ります。セキュリティの観点から、アプリは専用ユーザーで動かすのが基本です。ホームディレクトリを /opt/odoo19 にしておきます。

sudo useradd -m -d /opt/odoo19 -U -r -s /bin/bash odoo19

-m -d /opt/odoo19 でホームディレクトリを作成、-U で同名のグループも作成、-r でシステムユーザー、-s /bin/bash でログインシェルを指定しています。

7. PostgreSQLをインストールして起動する

Odooのデータ保存先となるPostgreSQLを入れます。

sudo apt install -y postgresql

インストール後は自動で起動しています。状態を確認しておきましょう(確認後 q で抜けます)。

sudo systemctl status postgresql

続いて、先ほど作ったOSユーザーと同じ名前のPostgreSQLユーザー(ロール)を作ります。名前を揃えておくと、Odooがパスワードなしでスムーズに接続できます。

sudo su - postgres -c "createuser -s odoo19"

-s はスーパーユーザー権限を与えるオプションです(開発・検証用途向け。本番では権限を絞る運用も検討してください)。

8. Odoo 19のソースを取得する

ここからはOdoo専用ユーザーに切り替えて作業します。

sudo su - odoo19

GitHubからOdoo 19のソースコードを取得します。--depth 1 --branch 19.0 で、19.0ブランチの最新状態だけを軽量にクローンします。

git clone https://github.com/odoo/odoo.git --depth 1 --branch 19.0 /opt/odoo19/odoo

9. Python仮想環境を作り、依存ライブラリを入れる

システム全体のPythonを汚さないよう、Odoo専用のPython仮想環境(venv)を作ります。

python3 -m venv /opt/odoo19/venv
source /opt/odoo19/venv/bin/activate

source ... activate を実行すると、プロンプトの先頭に (venv) と表示され、以後のPython操作がこの仮想環境の中で行われます。まずインストール補助の wheel を入れ、続いてOdooが必要とするライブラリを requirements.txt から一括で入れます。

pip install --upgrade pip
pip install wheel
pip install -r /opt/odoo19/odoo/requirements.txt

ここは環境によっては数分かかります。カスタムアドオン(自作の拡張機能)を置くフォルダも作っておきましょう。

mkdir /opt/odoo19/custom-addons

終わったら仮想環境を抜け、Odooユーザーからも元のユーザーに戻ります。

deactivate
exit

10. 設定ファイルを作る

Odooの動作設定を書くファイルを作ります。root 側の作業に戻っているので、sudo を使います。

sudo nano /etc/odoo19.conf

エディタに以下を貼り付けます。admin_passwd は、データベースを作成・管理するときに使うマスターパスワードです。必ず自分の強いパスワードに変えてください。

[options]
admin_passwd = 任意の強いマスターパスワード
db_user = odoo19
addons_path = /opt/odoo19/odoo/addons,/opt/odoo19/custom-addons
logfile = /var/log/odoo19/odoo19.log
http_port = 8069

Ctrl + XYEnter で保存します。この設定ファイルはパスワードを含むので、所有者をOdooユーザーにし、他人から読めないよう権限を絞ります。

sudo chown odoo19:odoo19 /etc/odoo19.conf
sudo chmod 640 /etc/odoo19.conf

ログの出力先ディレクトリも用意しておきます。

sudo mkdir /var/log/odoo19
sudo chown odoo19:odoo19 /var/log/odoo19

11. systemdサービスを作って自動起動させる

サーバー起動時にOdooが自動で立ち上がるよう、systemdのサービスファイルを作ります。

sudo nano /etc/systemd/system/odoo19.service

以下を貼り付けます。ExecStart で「仮想環境のPython」を使って「Odoo本体」を「先ほどの設定ファイル付き」で起動する、という指定をしています。

[Unit]
Description=Odoo 19
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

保存したら、systemdに新しいサービスを認識させ、自動起動を有効にしつつ今すぐ起動します。

sudo systemctl daemon-reload
sudo systemctl enable --now odoo19.service

正しく起動したか確認します(active (running) ならOK。q で抜けます)。

sudo systemctl status odoo19.service

12. ブラウザで初期設定を行う

ファイアウォール(UFW)を有効にしている場合は、Odooが使う8069番ポートを開けます。

sudo ufw allow 8069

ブラウザで http://サーバーのIPアドレス:8069(同じマシンなら http://localhost:8069)にアクセスすると、データベース作成画面が表示されます。ここで入力する Master Password は、手順10で設定した admin_passwd と同じ値です。データベース名・管理者メール・パスワードなどを入力して作成すれば、Odooのログイン画面に進めます。

これでOdoo 19が動く状態になりました。お疲れさまでした。

参考にした公式ドキュメント

PR
サーバー選びで迷っているなら ConoHa WING

私がこのブログで使っているレンタルサーバーです。公式が「サーバー処理速度 国内No.1」をうたうとおり表示が速く、初期費用は無料。WordPressの簡単セットアップも使えるので、検証用の環境をさっと用意したいときにも便利です。

ConoHa WINGを見てみる