Odoo
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_user
と db_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 を実行
Apache や Nginx などのウェブサーバーをリバースプロキシとして odoo を実行することができます。odoo.mydomain.local
などのドメイン名を使って、ローカルネットワーク上で odoo を使用したい場合に有用です。また、静的なリソースがキャッシュできるので、odoo アプリケーションの負担を減らすことにもなります。
リバースプロキシを使うには、まずローカルの DNS サーバー (BIND や dnsmasq など) がドメイン名からウェブサーバーの 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 技術ドキュメント を読むことを強く推奨します。