Odoo

提供: ArchWiki
ナビゲーションに移動 検索に移動

Odoo (旧名 OpenERP、さらにその前は TinyERP) はオープンソースの業務管理アプリケーションスイートです。あらゆる規模の企業を対象としており、アプリケーションスイートには伝票発行・会計処理・製造管理・購買管理・在庫管理・プロジェクト管理が含まれています。

Odoo は PostgreSQL をデータベースバックエンドとして使用するアプリケーションサーバーを特徴としており、ウェブベースのクライアントが付属しています。Odoo は Python で書かれいて、高度にモジュール化された設計によって Open Object RAD で新しいモジュールを素早く開発することが可能です。そして Odoo の開発者はフリーソフトウェアに強くコミットしています。

Odoo の盛んな開発コミュニティやサポートは成長を遂げており、技術サポートやバグ修正、新しい開発、サービスのサポートが無料で受けられます。Odoo は様々な電子形式のドキュメントを用意しており、ハードコピーも存在します。Odoo の開発を担当している会社は Odoo のコンサルタントとのパートナーシップサービスで利益を得ており、サポートやトレーニング、ホスティングサービス、ソフトウェア開発、ソフトウェア品質テストなどを提供しています。

インストール

Odoo のインストール

odooAUR パッケージをインストールしてください。Odoo パッケージには AUR にある python2 パッケージが大量に付いてきます。依存パッケージが大量に存在するのと Odoo 自体の大きさから、かなり大きいディスク容量を使用する必要があります (依存パッケージを含まないソースと最終的な Odoo パッケージだけでも 1.8 GB になります)。カレントディレクトリで手動でビルドする場合、カレントディレクトリが存在するデバイスに十分な空き容量があることを確認してください。AUR ヘルパーを使用する場合、tmpfs のサイズを増加させるか AUR ヘルパーの設定を行なってください。

Odoo を実行できるように PostgreSQL を設定

Odoo はデータベースバックエンドとして PostgreSQL を使用します。postgresql は依存パッケージとして odoo パッケージと一緒にインストールされているはずです。

Odoo 用に新しい PostgreSQL ユーザーを作成してください。デフォルトの PostgreSQL スーパーユーザー 'postgres' としてログインするには、以下のコマンドを実行:

  • sudo をインストールしていて使用しているユーザー名が sudoers にある場合:
$ sudo -i -u postgres
  • もしくは:
$ su
# su - postgres

PostgreSQL インスタンスをまだ初期化していない場合、先に PostgreSQL のインストール手順に従ってください。

'postgres' ユーザーとしてログインしたら、以下のようにデータベースユーザー (PostgreSQL ではロールと呼ばれます) の odoo を作成してください。

  • --interactive はデフォルトのロール名と属性の代わりに存在しないロール名と属性を使います。
  • --pwprompt' は新しいロールにパスワードを指定します。

最初にパスワードが要求されます。安全かつ覚えやすいパスワードが欲しい場合、Diceware Passphrase を使うと良いでしょう。そして再度パスワードを入力します。次に訊かれる3つの質問には n, y, n と答えてください。

$ createuser odoo --interactive --pwprompt
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

また、以下のコマンドラインを使用することで質問はスキップするようにオプションを指定することもできます:

[postgres]$ createuser odoo --createdb --login --no-superuser --no-createrole --pwprompt

3つの質問に答えたら、exit と入力して通常ユーザーに戻ってください。

上記で Arch Linux で Odoo を使用するのに必要な PostgreSQL のインストールと設定は完了です。PostgreSQL の設定に関する詳しい情報は PostgreSQL の記事を読んでください。デフォルトでは、PostgreSQL はローカルマシンからの接続しか受け取りません。2つの異なるマシンで PostgreSQL と Odoo を実行する場合、PostgreSQL#リモートホストから PostgreSQL にアクセスできるように設定に従ってください。

PostgreSQL を使用するように Odoo を設定

Odoo の設定ファイルは /etc/odoo/odoo.conf です。前のステップで設定したユーザー名とパスワードを db_userdb_password に記入してください。PostgreSQL サーバーが別のマシン上にある場合、db_host も編集してください。

[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /usr/lib/python2.7/site-packages/odoo/addons

サーバーの起動

以下のコマンドを実行する前に PostgreSQL を起動・有効化してください。

起動時に odoo を自動的に起動させるには以下のコマンドを使用:

# systemctl enable odoo.service

odoo を起動するには次のコマンドを使用:

# systemctl start odoo.service

ログイン

ウェブブラウザで http://localhost:8069 を開いて Odoo のログインページにアクセスしてください。

リバースプロキシで Odoo を実行

ApacheNginx などのウェブサーバーをリバースプロキシとして odoo を実行することができます。odoo.mydomain.local などのドメイン名を使って、ローカルネットワーク上で odoo を使用したい場合に有用です。また、静的なリソースがキャッシュできるので、odoo アプリケーションの負担を減らすことにもなります。

リバースプロキシを使うには、まずローカルの DNS サーバー (BINDdnsmasq など) がドメイン名からウェブサーバーの IP アドレスを解決できるようにしてください。ローカルマシンで動作させる場合、/etc/hosts に以下のようなエントリを追加します:

127.0.0.1 odoo.mydomain.local

Nginx を使う

Nginx でバーチャルホストを作成する方法は Nginx#サーバーブロックを参照してください。

ローカルドメインの名前が mydomain.local で、odoo が Nginx サーバーと同じマシンでホストされている場合、servers-available ディレクトリの中に以下のような server ブロックが記述されたファイルを作成します:

/etc/nginx/servers-available/odoo
upstream odoo {
    server 127.0.0.1:8069;
}

server {
    listen 80;
    server_name odoo.mydomain.local;
    root        /usr/share/nginx/html;
    index       index.html index.htm;
    access_log  /var/log/nginx/odoo-mydomain-local.access.log;
    error_log   /var/log/nginx/odoo-mydomain-local.error.log;

    location / {
        proxy_pass  http://odoo;
        # force timeouts if the backend dies
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;

        # set headers
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto https;
    }

    # cache some static data in memory for 60mins
    location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }
}

有効化するには、シンボリックリンクを作成:

# ln -s /etc/nginx/servers-available/odoo /etc/nginx/servers-enabled/odoo

nginx サービスをリロードあるいは再起動して新しい設定を適用してください:

# systemctl restart nginx.service

参考文献

Odoo は統合的な業務ソリューションであり、初心者が使うには複雑なところがあります。したがって、Odoo ユーザードキュメントOdoo 技術ドキュメント を読むことを強く推奨します。