app/odoo
使用 Pigsty 托管的 PostgreSQL 部署 Odoo 开源 ERP 系统
app/odoo 配置模板提供了自建 Odoo Community 19 开源 ERP 系统的参考配置,使用 Pigsty 托管的 PostgreSQL 作为数据库。
更多细节,请参考 Odoo 部署教程
配置概览
- 配置名称:
app/odoo - 节点数量: 单节点
- 配置说明:使用 Pigsty 托管的 PostgreSQL 部署 Odoo ERP
- 适用系统:
el8,el9,el10,d12,d13,u22,u24,u26 - 适用架构:
x86_64,aarch64 - 相关配置:
meta
启用方式:
./configure -c app/odoo [-i <primary_ip>]配置内容
源文件地址:pigsty/conf/app/odoo.yml
---
#==============================================================#
# File : odoo.yml
# Desc : pigsty config for running 1-node odoo app
# Ctime : 2025-01-11
# Mtime : 2026-10-08
# Docs : https://pigsty.io/docs/app/odoo
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright : 2018-2026 Ruohang Feng / Vonng (rh@vonng.com)
#==============================================================#
# tutorial: https://pigsty.io/docs/app/odoo
# how to use this template:
#
# curl -fsSL https://repo.pigsty.io/get | bash; cd ~/pigsty
# ./bootstrap # prepare local repo & ansible
# ./configure -c app/odoo # Use this odoo config template
# vi pigsty.yml # IMPORTANT: CHANGE CREDENTIALS!!
# ./deploy.yml # install Pigsty, PostgreSQL, and optional Silo
# ./docker.yml # install docker & docker-compose
# ./app.yml # install odoo
# Access through http://<ip>:8069 or http://odoo.pigsty after configuring DNS.
# Odoo 19 is retained for addon compatibility.
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 applications
odoo: # app name, should have corresponding ~/pigsty/app/odoo folder
file: # 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 file
PG_HOST: 10.10.10.10 # postgres host
PG_PORT: 5432 # postgres port
PG_USERNAME: odoo # postgres user
PG_PASSWORD: DBUser.Odoo # postgres password
ODOO_PORT: 8069 # published HTTP port on all host interfaces
ODOO_PROXY_MODE: true # trust this node's Nginx forwarded headers
ODOO_DATA: /data/odoo/webdata # filestore and sessions
ODOO_ADDONS: /data/odoo/addons # Odoo 19 addons
ODOO_DBNAME: odoo # odoo database name
ODOO_ADMIN_PASSWORD: change-this-master-password # CHANGE ME: database manager master password
ODOO_VERSION: "19.0" # stay on Odoo 19 for addon compatibility
# the odoo database
pg-odoo:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-odoo
pg_users:
- { name: odoo ,password: DBUser.Odoo ,pgbouncer: true ,roles: [ dbrole_admin ] ,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 ,extensions: [unaccent, pg_trgm] ,comment: odoo main database }
pg_hba_rules:
- { user: odoo ,db: odoo ,addr: 172.16.0.0/12 ,auth: pwd ,title: 'allow odoo access from local docker networks' }
- { user: dbuser_view , db: all ,addr: infra ,auth: pwd ,title: 'allow grafana dashboard access cmdb from infra nodes' }
pg_crontab: [ '00 01 * * * /pg/bin/pg-backup full' ] # make a full backup every 1am
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 variables
version: v4.5.0 # pigsty version string
admin_ip: 10.10.10.10 # admin node ip address
region: default # upstream mirror region: default|china|europe
node_tune: oltp # node tuning specs: oltp,olap,tiny,crit
pg_conf: oltp.yml # pgsql tuning specs: {oltp,olap,tiny,crit}.yml
docker_enabled: true # enable docker on app group
#docker_registry_mirrors: ["https://docker.1panel.live","https://docker.1ms.run","https://docker.xuanyuan.me","https://registry-1.docker.io"]
proxy_env: # global proxy env when downloading packages & pull docker images
no_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:pass@proxy.xxx.com
#all_proxy: 127.0.0.1:12345
infra_portal: # domain names and upstream servers
home : { domain: i.pigsty }
minio : { domain: m.pigsty ,endpoint: "${admin_ip}:9001" ,scheme: https ,websocket: true }
odoo: # nginx server config for odoo
domain: odoo.pigsty # REPLACE WITH YOUR OWN DOMAIN!
endpoint: "10.10.10.10:8069" # Odoo host IP and published HTTP port
websocket: true # HTTP and WebSocket share 8069 with the default workers=0
certbot: odoo.pigsty # cert name; use your real domain for public certificates
repo_enabled: false
node_repo_modules: node,infra,pgsql
pg_version: 18 # Odoo 19 requires PostgreSQL 13 or later
#----------------------------------------------#
# PASSWORD : https://pigsty.io/docs/setup/security/
#----------------------------------------------#
grafana_admin_password: pigsty
grafana_view_password: DBUser.Viewer
pg_admin_password: DBUser.DBA
pg_monitor_password: DBUser.Monitor
pg_replication_password: DBUser.Replicator
patroni_password: Patroni.API
haproxy_admin_password: pigsty
minio_secret_key: S3User.MinIO
etcd_root_password: Etcd.Root
...配置解读
此单节点模板使用 Docker 运行 Odoo Community 19,由 Pigsty 管理 PostgreSQL。
关键特性:
- 使用 Odoo
19.0镜像和 PostgreSQL 18,预建专用角色、数据库及unaccent、pg_trgm扩展 - 默认监听所有地址的 8069 端口,支持直接访问和 Nginx 门户访问
- 文件存储位于
/data/odoo/webdata,插件目录为/data/odoo/addons
访问方式:
http://<ip>:8069
http://odoo.pigsty将 odoo.pigsty 解析到 Nginx 主机。应用初始登录为 admin / admin,首次登录后修改密码。
注意事项:
- 部署前修改数据库密码和
ODOO_ADMIN_PASSWORD;数据库管理主密码与应用登录密码不同 ./app.yml初始化已有空库后启动 Web 容器,数据库管理页面默认关闭ODOO_PORT只填写发布端口号;修改后同步调整 Nginxendpoint端口- 代理访问使用
ODOO_PROXY_MODE=true,仅直连时设为false;生产环境使用 HTTPS - 数据目录归属 uid=100、gid=101
- 文件存储和插件目录由用户自行使用 Restic 或 PGFS 备份
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)
最后修改 2026-10-11 · Merge origin/main while preserving local documentation updates (6364ff2)