Odoo:自建开源ERP系统
Module:
Categories:
Odoo 是一个开源的企业级 ERP 系统,提供了从 CRM、销售、采购、库存、生产、财务等全方位的企业管理功能。Odoo 也是一个典型的 Web 应用,底层使用 PostgreSQL 数据库作为存储。
将你所有的业务都汇总入一个平台,简单,高效,省钱。
公开演示(不一定开放):http://odoo.pigsty.cc, username: [email protected]
, 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:[email protected]: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 模块。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.