Administrator
Published on 2025-10-28 / 154 Visits
0
0

Odoo 17 部署实战教程 | 私有化 ERP 系统搭建全流程

本期我们来学习如何在 Linux 服务器上部署 Odoo 17,这一ERP 系统的经典之作,假设你想自己搭建一套企业管理系统,比如客户管理、销售、库存、甚至网站都能用一套系统搞定。

  1. Linux安装教程

  2. docker安装教程

  3. odoo 发布教程

  4. odoo 简单使用教程

安装教程

服务器配置说明:

配置项

参数

cpu

1C

内存

1G

系统

Ubuntu 22.04 (dock安装任意linux系统)

Linux odoo安装教程

1️⃣ 更新系统

sudo apt update && sudo apt upgrade -y

2️⃣ 安装基础依赖

sudo apt install git python3-pip build-essential wget python3-dev python3-venv \
libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools npm node-less \
libjpeg-dev libpq-dev libxml2-dev libffi-dev libssl-dev wkhtmltopdf -y

3️⃣ 安装 PostgreSQL 并创建数据库用户

sudo apt install postgresql -y
sudo -u postgres createuser -s odoo

如果你想给数据库用户加密码:

sudo -u postgres psql
\password odoo
\q

4️⃣ 创建 Odoo 用户和目录

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
​
# 给 odoo 用户授予 sudo 权限
sudo usermod -aG sudo odoo
# 重置odoo密码为odoo
sudo echo "odoo:odoo" | sudo chpasswd

5️⃣ 获取 Odoo 源码

sudo su - odoo
git clone https://github.com/odoo/odoo.git -b 17.0
cd odoo

如果服务器无法下载可以直接打开链接https://github.com/odoo/odoo/tree/saas-17.4 页面下载

6️⃣ 创建虚拟环境并安装依赖

//目录授权
sudo chown -R odoo:odoo odoo/
python3 -m venv venv
//配置pip国内源
pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple/
pip config set global.extra-index-url https://mirrors.cloud.tencent.com/pypi/simple/
pip config set install.trusted-host "repo.huaweicloud.com mirrors.cloud.tencent.com"
pip config set global.timeout 60
//激活虚拟环境
source venv/bin/activate


​
​
pip install -r requirements.txt

常用命令

# 退出虚拟环境
deactivate
# 清除当前缓存
pip cache purge
# 查看当前配置
pip config list
# 测试下载速度
pip install --upgrade pip

如遇pip依赖报错

手动更新 requirements.txt
打开你的文件:
vim requirements.txt
​
找到以下两行(大约在 20 行附近):
gevent==21.8.0
greenlet==1.1.2
​
修改为:
gevent>=22.10.2
greenlet>=2.0.0

7️⃣ 启动测试

su odoo
./odoo-bin -r odoo --addons-path=addons --db-filter=odoo$

访问: 👉 http://localhost:8069 初始化数据库后即可进入 Odoo 界面。

如遇到权限报错 PermissionError: [Errno 13] Permission denied: '/opt/odoo/.local'

​
sudo mkdir -p /opt/odoo/.local
sudo chown -R odoo:odoo /opt/odoo/.local
sudo chmod -R 775 /opt/odoo/.local

8️⃣ (可选)创建 Systemd 服务

让 Odoo 开机自启:

sudo nano /etc/systemd/system/odoo.service

写入:

[Unit]
Description=odoo
After=network.target postgresql.service
​
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
​
[Install]
WantedBy=multi-user.target

9️⃣ 创建配置文件

sudo nano /etc/odoo.conf

内容:

[options]
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/addons
logfile = /var/log/odoo/odoo.log

然后:

sudo mkdir -p /var/log/odoo
sudo chown odoo: /var/log/odoo

🔟 启动服务

sudo systemctl daemon-reload
sudo systemctl enable --now odoo
sudo systemctl status odoo
// 打印服务日志
sudo tail -200f /var/log/odoo/odoo.log

访问: 👉 http://服务器IP:8069

docker odoo安装教程

1️⃣ 安装docker

docker安装教程:https://halo.blog360.sbs/archives/dockeran-zhuang-jiao-cheng

2️⃣ 创建目录结构

mkdir -p /opt/odoo
cd /opt/odoo

目录建议:

/opt/odoo/
 ├─ docker-compose.yml
 ├─ config/
 │   └─ odoo.conf
 ├─ addons/        # 自定义模块目录
 └─ data/          # 数据持久化目录

3️⃣ 创建配置文件 config/odoo.conf

[options]
; 数据库连接
db_host = db
db_port = 5432
db_user = odoo
db_password = odoo
; 插件目录
addons_path = /mnt/extra-addons

4️⃣ 创建 docker-compose.yml

以下是稳定的 Odoo 17 社区版部署文件 👇

version: '3.9'
​
services:
  db:
    image: postgres:15
    container_name: odoo-db
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
    volumes:
      - ./data/db:/var/lib/postgresql/data
    restart: unless-stopped
​
  odoo:
    image: odoo:17.0
    container_name: odoo
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
      - ./data/odoo:/var/lib/odoo
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=odoo
    restart: unless-stopped

5️⃣ 启动 Odoo

# 修改文件权限,避免权限异常报错
cd /opt/odoo
mkdir -p /opt/odoo/data/odoo
sudo chown -R 101:101 /opt/odoo/data/odoo
sudo chmod -R 700 /opt/odoo/data/odoo
#启动容器
docker compose up -d

查看启动日志:

docker logs -f odoo

访问:

http://<服务器IP>:8069

第一次进入时,你需要创建一个数据库账户。

发布教程

发布odoo

添加配置域名发布文件

server {
​
    listen 80;
    server_name test.blog360.sbs;
​
    client_max_body_size 20m;
  # 主请求代理
  location / {
    proxy_pass http://172.30.0.2:8069;
​
    # 关键头信息传递 (解决混合内容问题)
        proxy_set_header Host $http_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 $scheme;  # 告知Discourse使用HTTPS
​
        # WebSocket支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
​
        # 缓存优化
        proxy_cache_bypass $http_upgrade;
​
        # 修复静态资源路径
        sub_filter_once off;
        sub_filter_types text/html text/css application/javascript;
  }
​
}

申请免费证书(ssl证书可选)

安装Certbot工具

# Ubuntu/Debian
sudo apt update
sudo apt install certbot python3-certbot-nginx
​
# CentOS/RHEL
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx

申请ssl证书(nginx)

sudo certbot --nginx -d your-domain.com
  • 替换 your-domain.com 为你的域名

简单使用教程

详细使用教程见:https://www.odoo.com/documentation/17.0/zh_CN/applications/finance/accounting.html

优化设置odoo数据库管理工具

默认登录页面存在管理数据库工具访问页面

并且页面进入默认没有,没有密码

这样是非常危险的,我们可以再映射的配置文件上设置两个参数:

; 禁用数据库管理
list_db = false  # 是否启用页面上的管理数据库页面
admin_passwd = your_secure_admin_password # 设置odoo数据库的管理员密码

重启odoo

docker restart odoo

设置完成后就可以给数据库设置好默认管理员密码,再页面上禁用数据库管理

设置页面参数

首先登录完成,前往设置页面

再公司设置所有相关信息

邮箱设置

想要设置邮件,首先的要启动开发者模式

在激活开发者模式后,页面菜单会产生变化,在导航栏会出现新的菜单

我们在开放者模式下打开设置页面,会发现新的菜单,这里有两个非常重要的菜单

debug菜单下的设置和技术菜单,几乎所有的高级设置全在这内部

点击技术,选择发件邮件发送服务器设置

新建一个邮件服务器,配置好smtp配置,测速连接是否正常

配置完成后,我们尝试邀请用户,可能会发现,还是无法邀请

这是因为我们少安装了一个模块,安装启用讨论模块

此时再去尝试发起邀请就可以收到了

并且我们下拉会发现,此时已经出现了页面注册禁止接口了,我们可以给他限制为应邀

这样我们就可以发送邮件了,有些小伙伴可能想调整邮件模板,默认重置密码模板是这样

我们可以在技术 --》 邮箱模板

设置好邮箱模板,默认有:

我们可以按需修改

比较重要就是设置这里可以选择邮箱服务器,否则按照优先级选择


Comment