Odoo:自建开源ERP系统
Module:
Categories:
Odoo 是一个开源的企业级 ERP 系统,提供了从 CRM、销售、采购、库存、生产、财务等全方位的企业管理功能。Odoo 也是一个典型的 Web 应用,底层使用 PostgreSQL 数据库作为存储。
将你所有的业务都汇总入一个平台,简单,高效,省钱。
公开演示(不一定开放):http://odoo.pigsty.cc, username: test@pigsty.cc
, password: pigsty
快速上手
首先准备一个 Pigsty 单节点配置文件,如下所示:
curl -fsSL https://repo.pigsty.io/get | bash
./bootstrap # prepare local repo & ansible
./configure -c demo/odoo # IMPORTANT: CHANGE CREDENTIALS!!
./install.yml # install pigsty & pgsql & minio
./docker.yml # install docker & docker-compose
./app.yml # install odoo
Odoo 默认监听在 8069 端口,你可以通过浏览器访问 http://<ip>:8069
。第一次登陆会提示您创建数据库(建议使用 odoo
即可,其他初始用户名密码按实际情况填写并记录)
你可以在浏览器所在主机(/etc/hosts
)添加一条解析记录 odoo.pigsty
指向您的服务器,这样您就可以通过 http://odoo.pigsty
访问 Odoo 网络界面了。
如果你想要通过 SSL/HTTPS 访问 Odoo,你需要使用真正的 SSL 证书,或者信任 Pigsty 自动生成的自签名 ca 证书。(当然,在 Chrome 浏览器中,你也可以使用敲击键入 thisisunsafe
来绕过证书验证)
单节点配置文件
在 conf/demo/odoo.yml
中有一个样例配置文件:
all:
children:
infra:
hosts: { 10.10.10.10: { infra_seq: 1 } }
vars:
# ./docker.yml -l infra
docker_enabled: true
docker_registry_mirrors: []
# - https://docker.m.daocloud.io
# - https://dockerproxy.com
# ./app.yml -l infra -e app=odoo
app: odoo
app_config:
PG_HOST: 10.10.10.10
PG_PORT: 5432
PG_USER: dbuser_odoo
PG_PASS: DBUser.Odoo
ODOO_PORT: 8069
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 } }
pg-meta:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars:
pg_cluster: pg-meta
pg_users:
- {name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [dbrole_admin] ,comment: pigsty admin user }
- {name: dbuser_view ,password: DBUser.Viewer ,pgbouncer: true ,roles: [dbrole_readonly] ,comment: read-only viewer for meta database }
- {name: dbuser_odoo ,password: DBUser.Odoo ,pgbouncer: true ,roles: [dbrole_admin] ,comment: admin user for odoo service ,createdb: true } #,superuser: true}
pg_databases:
- {name: meta ,baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [pigsty] ,extensions: [{name: vector}]}
#- {name: odoo ,owner: dbuser_odoo ,revokeconn: true ,comment: odoo main database } # this will be created by the dbuser_odoo, you can register it to grafana later
pg_hba_rules:
- {user: dbuser_view , db: all ,addr: infra ,auth: pwd ,title: 'allow grafana dashboard access cmdb from infra nodes'}
pg_libs: 'pg_stat_statements, auto_explain' # add timescaledb to shared_preload_libraries
vars: # global variables
version: v3.2.1 # pigsty version string
admin_ip: 10.10.10.10 # admin node ip address
region: default # upstream mirror region: default|china|europe
infra_portal: # domain names and upstream servers
home : { domain: h.pigsty }
grafana : { domain: g.pigsty ,endpoint: "${admin_ip}:3000" , websocket: true }
prometheus : { domain: p.pigsty ,endpoint: "${admin_ip}:9090" }
alertmanager : { domain: a.pigsty ,endpoint: "${admin_ip}:9093" }
blackbox : { endpoint: "${admin_ip}:9115" }
loki : { endpoint: "${admin_ip}:3100" }
odoo : { domain: odoo.pigsty, endpoint: "127.0.0.1:8069", websocket: true } # <-- 在这里指定 Odoo 的域名
# Credential: CHANGE THESE PASSWORDS IN PRODUCTION
grafana_admin_password: pigsty
pg_admin_password: DBUser.DBA
pg_monitor_password: DBUser.Monitor
pg_replication_password: DBUser.Replicator
patroni_password: Patroni.API
haproxy_admin_password: pigsty
repo_modules: infra,node,pgsql,docker
repo_packages: [ node-bootstrap, infra-package, infra-addons, node-package1, node-package2, pgsql-utility, docker ]
repo_extra_packages: [ pg17-main ]
pg_version: 17
然后依次执行以下剧本,即可完成 Odoo 安装:
./install.yml # 完成单节点 Pigsty 安装
./docker.yml # 安装 Docker 模块
./app.yml # 安装 Odoo 模块
默认的连接串如下所示,你可以在 app.yml
中修改用户的密码,并相应修改 app_config
中的配置
psql postgres://dbuser_odoo:DBUser.Odoo@10.10.10.10:5432/postgres
将 Odoo 服务对外暴露
infra_portal: # domain names and upstream servers
home : { domain: h.pigsty }
grafana : { domain: g.pigsty ,endpoint: "${admin_ip}:3000" , websocket: true }
prometheus : { domain: p.pigsty ,endpoint: "${admin_ip}:9090" }
alertmanager : { domain: a.pigsty ,endpoint: "${admin_ip}:9093" }
blackbox : { endpoint: "${admin_ip}:9115" }
loki : { endpoint: "${admin_ip}:3100" }
odoo : { domain: odoo.pigsty, endpoint: "127.0.0.1:8069", websocket: true } # <------ add this line
./infra.yml -t nginx # setup nginx infra portal
Odoo 扩展插件
社区中有很多可用的 Odoo 模块,你可以通过下载并将它们放置在 addons
文件夹中来安装它们。
volumes:
- ./addons:/mnt/extra-addons
你可以将 ./addons
目录挂载到容器中的 /mnt/extra-addons
目录,然后下载并解压到 addons
文件夹中,然后启用这些模块。
要启用这些模块,首先进入 开发者模式
Settings -> Generic Settings -> Developer Tools -> Activate the developer Mode
然后,转到 > Apps -> Update Apps List, 然后你可以在面板中找到这些额外的模块并安装它们。
经常使用的 免费模块 ,当然以及大家最需要的 Accounting Kit 模块。