本期我们来学习如何在 Linux 服务器上部署 Odoo 17,这一ERP 系统的经典之作,假设你想自己搭建一套企业管理系统,比如客户管理、销售、库存、甚至网站都能用一套系统搞定。
Linux安装教程
docker安装教程
odoo 发布教程
odoo 简单使用教程
安装教程
服务器配置说明:
Linux odoo安装教程
1️⃣ 更新系统
sudo apt update && sudo apt upgrade -y2️⃣ 安装基础依赖
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 -y3️⃣ 安装 PostgreSQL 并创建数据库用户
sudo apt install postgresql -y
sudo -u postgres createuser -s odoo如果你想给数据库用户加密码:
sudo -u postgres psql
\password odoo
\q4️⃣ 创建 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 chpasswd5️⃣ 获取 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.07️⃣ 启动测试
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/.local8️⃣ (可选)创建 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.target9️⃣ 创建配置文件
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-addons4️⃣ 创建 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-stopped5️⃣ 启动 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配置,测速连接是否正常

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

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

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

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

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

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

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

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