Version v3.7.0 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot.
For up-to-date documentation, see the latest version.
Odoo is an open-source enterprise resource planning (ERP) software
that provides a full suite of business applications, including CRM, sales, purchasing, inventory, production, accounting,
and other management functions. Odoo is a typical web application that uses PostgreSQL as the underlying database.
All your business on one platform, Simple, efficient, yet affordable
The latest version of Odoo is 19.0
Quick Start
curl -fsSL https://repo.pigsty.io/get | bash -s v3.7.0;cd ~/pigsty
./bootstrap # install ansible./configure -c app/odoo # use odoo config (please CHANGE CREDENTIALS in pigsty.yml)./install.yml # install pigsty./docker.yml # install docker compose./app.yml # launch odoo stateless part with docker
The default credentials are admin : admin
Config Template
The conf/app/odoo.yml defines a template config file
that defines the resources required for a single Odoo instance.
all:children:# the odoo application (default username & password: admin/admin)odoo:hosts:{10.10.10.10:{}}vars:app:odoo # specify app name to be installed (in the apps)apps:# define all applicationsodoo:# app name should have the corresponding ~/app/odoo folderfile:# optional directory to be created- {path:/data/odoo ,state:directory, owner:100, group:101}- {path:/data/odoo/webdata ,state:directory, owner:100, group:101}- {path:/data/odoo/addons ,state:directory, owner:100, group:101}conf:# override /opt/<app>/.env config filePG_HOST:10.10.10.10# postgres hostPG_PORT:5432# postgres portPG_USERNAME:odoo # postgres userPG_PASSWORD:DBUser.Odoo # postgres passwordODOO_PORT:8069# odoo app portODOO_DATA:/data/odoo/webdata # odoo webdataODOO_ADDONS:/data/odoo/addons # odoo pluginsODOO_DBNAME:odoo # odoo database nameODOO_VERSION:19.0# odoo image version# the odoo databasepg-odoo:hosts:{10.10.10.10:{pg_seq:1, pg_role:primary } }vars:pg_cluster:pg-odoopg_users:- {name:odoo ,password:DBUser.Odoo ,pgbouncer:true ,roles:[ dbrole_admin ] ,createdb:true ,comment:admin user for odoo service }- {name:odoo_ro ,password:DBUser.Odoo ,pgbouncer:true ,roles:[ dbrole_readonly ] ,comment:read only user for odoo service }- {name:odoo_rw ,password:DBUser.Odoo ,pgbouncer:true ,roles:[ dbrole_readwrite ] ,comment:read write user for odoo service }pg_databases:- {name:odoo ,owner:odoo ,revokeconn:true ,comment:odoo main database }pg_hba_rules:- {user:all ,db:all ,addr:172.17.0.0/16 ,auth:pwd ,title:'allow access from local docker network'}- {user:dbuser_view , db:all ,addr:infra ,auth:pwd ,title:'allow grafana dashboard access cmdb from infra nodes'}infra:{hosts:{10.10.10.10:{infra_seq:1}}}etcd:{hosts:{10.10.10.10:{etcd_seq:1 } }, vars:{etcd_cluster:etcd } }#minio: { hosts: { 10.10.10.10: { minio_seq: 1 } }, vars: { minio_cluster: minio } }vars:# global variablesversion:v3.7.0 # pigsty version stringadmin_ip:10.10.10.10# admin node ip addressregion:default # upstream mirror region: default|china|europenode_tune:oltp # node tuning specs: oltp,olap,tiny,critpg_conf:oltp.yml # pgsql tuning specs: {oltp,olap,tiny,crit}.ymldocker_enabled:true# enable docker on app group#docker_registry_mirrors: ["https://docker.m.daocloud.io"] # use dao cloud mirror in mainland chinaproxy_env:# global proxy env when downloading packages & pull docker imagesno_proxy:"localhost,127.0.0.1,10.0.0.0/8,192.168.0.0/16,*.pigsty,*.aliyun.com,mirrors.*,*.tsinghua.edu.cn"#http_proxy: 127.0.0.1:12345 # add your proxy env here for downloading packages or pull images#https_proxy: 127.0.0.1:12345 # usually the proxy is format as http://user:[email protected]#all_proxy: 127.0.0.1:12345infra_portal:# domain names and upstream servershome :{domain:h.pigsty }grafana :{domain:g.pigsty ,endpoint:"${admin_ip}:3000", websocket:true}prometheus :{domain:p.pigsty ,endpoint:"${admin_ip}:9058"}alertmanager :{domain:a.pigsty ,endpoint:"${admin_ip}:9059"}blackbox :{endpoint:"${admin_ip}:9115"}loki :{endpoint:"${admin_ip}:3100"}minio :{domain:m.pigsty ,endpoint:"${admin_ip}:9001",scheme:https ,websocket:true}odoo :{domain:odoo.pigsty, endpoint:"127.0.0.1:8069",websocket:true}#cert: /path/to/crt ,key: /path/to/key# setup your own domain name here ^^^, or use default domain name, or ip + 8069 port direct access# certbot --nginx --agree-tos --email [email protected] -n -d odoo.your.domain # replace with your email & odoo domain#----------------------------------## Credential: CHANGE THESE PASSWORDS#----------------------------------##grafana_admin_username: admingrafana_admin_password:pigsty#pg_admin_username: dbuser_dbapg_admin_password:DBUser.DBA#pg_monitor_username: dbuser_monitorpg_monitor_password:DBUser.Monitor#pg_replication_username: replicatorpg_replication_password:DBUser.Replicator#patroni_username: postgrespatroni_password:Patroni.API#haproxy_admin_username: adminhaproxy_admin_password:pigstyrepo_modules:infra,node,pgsql,dockerrepo_packages:[node-bootstrap, infra-package, infra-addons, node-package1, node-package2, pgsql-utility, docker ]repo_extra_packages:[pg18-main ]pg_version:18
Basics
Check .env file for configurable environment variables:
make up # pull up odoo with docker compose in minimal modemake run # launch odoo with docker , local data dir and external PostgreSQLmake view # print odoo access pointmake log # tail -f odoo logsmake info # introspect odoo with jqmake stop # stop odoo containermake clean # remove odoo containermake pull # pull latest odoo imagemake rmi # remove odoo imagemake save # save odoo image to /tmp/docker/odoo.tgzmake load # load odoo image from /tmp/docker/odoo.tgz
Use External PostgreSQL
You can use external PostgreSQL for Odoo. Odoo will create its own database during setup, so you don’t need to do that
pg_users:[{name:dbuser_odoo ,password:DBUser.Odoo ,pgbouncer:true ,roles:[ dbrole_admin ] ,comment:admin user for odoo database } ]pg_databases:[{name:odoo ,owner:dbuser_odoo ,revokeconn:true ,comment:odoo primary database } ]
And create business user & database with:
bin/pgsql-user pg-meta dbuser_odoo
#bin/pgsql-db pg-meta odoo # odoo will create the database during setup