odoo19 部署流程文档

# Odoo 19.0 部署流程文档

## 1. 部署概述

Odoo 19.0 支持多种部署方式,包括单服务器部署、多服务器部署、容器化部署和云部署。本文档详细介绍基于Ubuntu 24.04的单服务器部署流程,包括环境准备、依赖安装、Odoo安装、数据库配置、反向代理配置和启动运行等步骤。

## 2. 环境准备

### 2.1 操作系统要求

| 操作系统 | 版本 | 架构 |

|----------|------|------|

| Ubuntu | 24.04 LTS | x86_64 |

| Debian | 12 | x86_64 |

| CentOS | 9 | x86_64 |

| RHEL | 9 | x86_64 |

### 2.2 硬件要求

| 部署规模 | CPU | 内存 | 磁盘 |

|----------|-----|------|------|

| 小型(<50用户) | 4核 | 8GB | 200GB SSD |

| 中型(50-200用户) | 8核 | 16GB | 500GB SSD |

| 大型(>200用户) | 16核+ | 32GB+ | 1TB+ SSD |

### 2.3 网络要求

- 开放端口:8069(Odoo默认端口)、80/443(HTTP/HTTPS)

- 数据库端口:5432(PostgreSQL)

- 确保服务器可以访问互联网,用于安装依赖和更新

## 3. 依赖安装

### 3.1 系统更新

```bash

sudo apt update && sudo apt upgrade -y

```

### 3.2 安装必要的系统依赖

```bash

sudo apt install -y \n git \n python3-pip \n python3-venv \n python3-dev \n libpq-dev \n libldap2-dev \n libsasl2-dev \n libxml2-dev \n libxslt1-dev \n zlib1g-dev \n libjpeg-dev \n libpng-dev \n libfreetype6-dev \n libharfbuzz-dev \n libfontconfig1-dev \n build-essential \n libssl-dev \n libffi-dev \n libbz2-dev \n libreadline-dev \n libsqlite3-dev \n wget \n curl \n llvm \n libncurses5-dev \n libncursesw5-dev \n xz-utils \n tk-dev

```

### 3.3 安装PostgreSQL数据库

```bash

# 安装PostgreSQL

sudo apt install -y postgresql postgresql-contrib

# 启动并启用PostgreSQL服务

sudo systemctl start postgresql

sudo systemctl enable postgresql

# 检查PostgreSQL状态

sudo systemctl status postgresql

```

### 3.4 配置PostgreSQL用户和数据库

```bash

# 切换到postgres用户

sudo -u postgres psql

# 创建Odoo用户(密码设置为odoo123,可根据需要修改)

CREATE USER odoo WITH PASSWORD ‘odoo123’;

# 授予用户创建数据库的权限

ALTER USER odoo CREATEDB;

# 退出PostgreSQL\q

```

## 4. Odoo安装

### 4.1 创建Odoo用户

```bash

# 创建odoo用户

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo

# 设置odoo用户密码

sudo passwd odoo

```

### 4.2 克隆Odoo源码

```bash

# 切换到odoo用户

sudo su - odoo

# 克隆Odoo 19.0源码

git clone https://github.com/odoo/odoo.git -b 19.0 --depth 1

# 退出odoo用户

exit

```

### 4.3 创建虚拟环境并安装依赖

```bash

# 切换到odoo用户

sudo su - odoo

# 进入Odoo目录

cd /opt/odoo/odoo

# 创建虚拟环境

python3 -m venv venv

# 激活虚拟环境

source venv/bin/activate

# 升级pip

pip install --upgrade pip

# 安装依赖(使用国内镜像加速)

pip install -i Simple Index -r requirements.txt

# 退出虚拟环境

deactivate

# 退出odoo用户

exit

```

## 5. 配置Odoo

### 5.1 创建配置文件

```bash

# 创建配置文件目录

sudo mkdir -p /etc/odoo

# 创建日志目录

sudo mkdir -p /var/log/odoo

# 创建自定义模块目录

sudo mkdir -p /opt/odoo/custom_addons

# 设置目录权限

sudo chown -R odoo:odoo /etc/odoo

sudo chown -R odoo:odoo /var/log/odoo

sudo chown -R odoo:odoo /opt/odoo/custom_addons

```

### 5.2 编写配置文件

```bash

sudo nano /etc/odoo/odoo.conf

```

在配置文件中添加以下内容:

```ini

[options]

; 基本配置

admin_passwd = admin123 ; 管理员密码,首次登录使用

db_host = False ; 数据库主机,False表示使用默认socket连接

db_port = False ; 数据库端口,False表示使用默认端口5432

db_user = odoo ; 数据库用户名

db_password = odoo123 ; 数据库密码

; 模块配置

addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom_addons ; 模块路径

; HTTP配置

http_port = 8069 ; HTTP端口

proxy_mode = True ; 启用代理模式

; 日志配置

logfile = /var/log/odoo/odoo.log ; 日志文件路径

logrotate = True ; 启用日志轮转

; 其他配置

max_cron_threads = 2 ; 定时任务线程数

dbfilter = ^odoo_.*$ ; 数据库过滤规则

```

### 5.3 设置配置文件权限

```bash

sudo chown odoo:odoo /etc/odoo/odoo.conf

sudo chmod 640 /etc/odoo/odoo.conf

```

## 6. 创建系统服务

### 6.1 编写服务文件

```bash

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

```

在服务文件中添加以下内容:

```ini

[Unit]

Description=Odoo 19.0

Requires=postgresql.service

After=network.target postgresql.service

[Service]

Type=simple

SyslogIdentifier=odoo

PermissionsStartOnly=true

User=odoo

Group=odoo

ExecStart=/opt/odoo/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo/odoo.conf

StandardOutput=journal+console

[Install]

WantedBy=multi-user.target

```

### 6.2 启用并启动服务

```bash

# 重新加载系统服务

sudo systemctl daemon-reload

# 启用Odoo服务

sudo systemctl enable odoo

# 启动Odoo服务

sudo systemctl start odoo

# 检查Odoo服务状态

sudo systemctl status odoo

```

## 7. 配置Nginx反向代理

### 7.1 安装Nginx

```bash

sudo apt install -y nginx

# 启动并启用Nginx服务

sudo systemctl start nginx

sudo systemctl enable nginx

```

### 7.2 配置Nginx虚拟主机

```bash

sudo nano /etc/nginx/sites-available/odoo

```

在配置文件中添加以下内容(替换example.com为你的域名):

```nginx

upstream odoo {

server 127.0.0.1:8069;

}

server {

listen 80;

server_name example.com www.example.com;

return 301 https://$host$request_uri;

}

server {

listen 443 ssl http2;

server_name example.com www.example.com;



\# SSL配置(替换为你的证书路径)

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';

ssl_prefer_server_ciphers off;

ssl_session_cache shared:SSL:10m;

ssl_session_timeout 10m;



\# 日志配置

access_log /var/log/nginx/odoo.access.log;

error_log /var/log/nginx/odoo.error.log;



\# 代理配置

proxy_read_timeout 720s;

proxy_connect_timeout 720s;

proxy_send_timeout 720s;

proxy_set_header X-Forwarded-Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

proxy_set_header X-Real-IP $remote_addr;



\# 静态文件缓存

location \~\* /web/static/ {

    proxy_cache_valid 200 90m;

    proxy_buffering on;

    expires 864000;

    proxy_pass http://odoo;

}



\# 长连接支持

location /longpolling {

    proxy_pass http://127.0.0.1:8072;

}



\# 主请求

location / {

    proxy_redirect off;

    proxy_pass http://odoo;

}



\# 健康检查

location /health {

    access_log off;

    return 200 "OK";

    add_header Content-Type text/plain;

}

}

```

### 7.3 启用虚拟主机并测试配置

```bash

# 启用虚拟主机

sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/

# 测试Nginx配置

sudo nginx -t

# 重新加载Nginx配置

sudo systemctl reload nginx

```

## 8. 安装SSL证书(可选)

### 8.1 安装Certbot

```bash

sudo apt install -y certbot python3-certbot-nginx

```

### 8.2 获取SSL证书

```bash

sudo certbot --nginx -d example.com -d www.example.com

```

按照提示完成证书安装。Certbot会自动更新Nginx配置,启用HTTPS。

### 8.3 配置证书自动续期

```bash

# 测试自动续期

sudo certbot renew --dry-run

# 启用定时器

sudo systemctl enable certbot.timer

sudo systemctl start certbot.timer

```

## 9. Odoo初始化配置

### 9.1 首次访问Odoo

1. 打开浏览器,访问你的域名(如https://example.com

2. 输入数据库名称(如odoo19_db)

3. 输入邮箱和密码(用于创建管理员用户)

4. 选择要安装的应用模块

5. 点击"创建数据库"按钮

### 9.2 配置数据库

数据库创建完成后,系统会自动登录到Odoo后台。你可以:

1. 配置公司信息:设置->公司->公司信息

2. 配置用户和权限:设置->用户和公司->用户

3. 安装额外模块:设置->应用

4. 配置系统参数:设置->技术->系统参数

## 10. 维护和监控

### 10.1 日志管理

```bash

# 查看Odoo日志

tail -f /var/log/odoo/odoo.log

# 查看Nginx日志

tail -f /var/log/nginx/odoo.access.log

tail -f /var/log/nginx/odoo.error.log

```

### 10.2 数据库备份

#### 手动备份

```bash

# 切换到odoo用户

sudo su - odoo

# 备份数据库(替换odoo19_db为你的数据库名)

python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo/odoo.conf -d odoo19_db --backup-path=/opt/odoo/backups

# 退出odoo用户

exit

```

#### 自动备份

创建备份脚本:

```bash

sudo nano /opt/odoo/backup.sh

```

添加以下内容:

```bash

#!/bin/bash

# 配置

ODOO_BIN=“/opt/odoo/odoo/odoo-bin”

ODOO_CONF=“/etc/odoo/odoo.conf”

BACKUP_DIR=“/opt/odoo/backups”

DB_NAME=“odoo19_db”

RETENTION_DAYS=7

# 创建备份目录

mkdir -p $BACKUP_DIR

# 执行备份

sudo -u odoo python3 $ODOO_BIN -c $ODOO_CONF -d $DB_NAME --backup-path=$BACKUP_DIR

# 删除过期备份

find $BACKUP_DIR -name “*.zip” -mtime +$RETENTION_DAYS -delete

```

设置脚本权限并添加到定时任务:

```bash

# 设置脚本权限

sudo chmod +x /opt/odoo/backup.sh

# 添加到crontab(每天凌晨2点执行备份)

sudo crontab -e

```

在crontab中添加:

```

0 2 * * * /opt/odoo/backup.sh

```

### 10.3 系统监控

安装并配置监控工具:

```bash

# 安装htop(进程监控)

sudo apt install -y htop

# 安装glances(系统监控)

sudo apt install -y glances

# 安装prometheus和grafana(可选,用于高级监控)

# 参考: First steps with Prometheus | Prometheus

# 参考: Install Grafana on Debian or Ubuntu | Grafana documentation

```

### 10.4 Odoo升级

```bash

# 切换到odoo用户

sudo su - odoo

# 进入Odoo目录

cd /opt/odoo/odoo

# 拉取最新代码

git pull origin 19.0

# 激活虚拟环境

source venv/bin/activate

# 更新依赖

pip install -i Simple Index -r requirements.txt

# 退出虚拟环境

deactivate

# 退出odoo用户

exit

# 重启Odoo服务

sudo systemctl restart odoo

```

## 11. 常见问题和解决方案

### 11.1 Odoo服务无法启动

**问题**:`sudo systemctl status odoo`显示服务启动失败

**解决方案**

1. 查看日志文件:`tail -f /var/log/odoo/odoo.log`

2. 检查配置文件:`sudo nginx -t`

3. 检查数据库连接:确保PostgreSQL服务正常运行

4. 检查端口占用:`sudo lsof -i :8069`

### 11.2 数据库连接失败

**问题**:Odoo无法连接到PostgreSQL数据库

**解决方案**

1. 检查PostgreSQL服务状态:`sudo systemctl status postgresql`

2. 检查数据库用户和密码:确保odoo.conf中的db_user和db_password正确

3. 检查数据库权限:确保odoo用户有创建数据库的权限

4. 检查PostgreSQL日志:`tail -f /var/log/postgresql/postgresql-16-main.log`

### 11.3 性能问题

**问题**:Odoo运行缓慢

**解决方案**

1. 优化PostgreSQL配置:调整shared_buffers、work_mem等参数

2. 启用缓存:在odoo.conf中配置缓存参数

3. 优化Nginx配置:启用gzip压缩、配置静态文件缓存

4. 增加系统资源:根据负载情况增加CPU、内存或磁盘

5. 优化Odoo配置:调整max_cron_threads、workers等参数

### 11.4 模块安装失败

**问题**:安装模块时出现错误

**解决方案**

1. 查看日志文件:`tail -f /var/log/odoo/odoo.log`

2. 检查模块依赖:确保所有依赖模块已安装

3. 检查模块兼容性:确保模块与Odoo 19.0兼容

4. 检查权限:确保odoo用户有足够的权限

## 12. 安全加固

### 12.1 系统安全

1. 启用防火墙:`sudo ufw enable`

2. 限制SSH访问:修改/etc/ssh/sshd_config,禁用root登录

3. 安装fail2ban:防止暴力破解

4. 定期更新系统:`sudo apt update && sudo apt upgrade -y`

5. 配置SELinux或AppArmor(可选)

### 12.2 Odoo安全

1. 更改默认管理员密码:登录Odoo后台,进入设置->用户和公司->用户,修改管理员密码

2. 启用两步验证:在用户设置中启用两步验证

3. 配置IP白名单:在odoo.conf中配置allow_ip参数

4. 限制数据库访问:修改PostgreSQL配置,只允许本地访问

5. 定期备份数据库:确保数据安全

## 13. 总结

Odoo 19.0的部署流程包括环境准备、依赖安装、Odoo安装、数据库配置、反向代理配置和启动运行等步骤。通过遵循本文档的部署流程,可以快速搭建一个稳定、安全、高效的Odoo系统。

在实际部署过程中,应根据具体需求和环境进行适当调整,如硬件配置、网络设置、安全策略等。同时,定期进行系统维护和监控,确保Odoo系统的稳定运行。

2 个赞

这个页面markdown显示出问题了?

这个就是官方文档,翻译过来的吗?Oddo的各个版本之前安装的差异是?