适用系统:仅适用于rocky Linux 9、RHEL 9、CentOS Stream 9系列系统,CentOS7/8等低版本系统不可直接使用。
#!/bin/bash
#install_odoo17
#author tommypeng 20260327
set -e
ODOO_USER=odoo
ODOO_HOME=/opt/odoo
ODOO_VERSION=17.0
PYTHON_BIN=python3.11
echo "===== 1. 安装系统依赖 ====="
dnf update -y
dnf install -y epel-release
dnf install -y git wget gcc make python3-devel libxml2-devel libxslt-devel \
openldap-devel libjpeg-devel freetype-devel postgresql-server \
postgresql-devel
dnf install -y ./wkhtmltox-0.12.6.1-3.almalinux9.x86_64.rpm
wkhtmltopdf -V
echo "===== 2. 安装 Python 3.11 ====="
dnf install -y python3.11 python3.11-devel
echo "===== 3. 初始化 PostgreSQL ====="
postgresql-setup --initdb || true
systemctl enable postgresql
systemctl start postgresql
echo "===== 4. 创建 Odoo 用户 ====="
useradd -m -U -r -d ODOO_HOME -s /bin/bash ODOO_USER || true
echo "===== 5. 创建数据库用户 ====="
su - postgres -c "psql -c \"CREATE USER odoo WITH PASSWORD 'odoo';\"" || true
su - postgres -c "psql -c \"ALTER USER odoo CREATEDB;\"" || true
echo "===== 6. 下载 Odoo ====="
rm -rf /opt/odoo
git clone https://www.github.com/odoo/odoo --depth 1 --branch ODOO_VERSION ODOO_HOME
echo "===== 7. 创建虚拟环境 ====="
PYTHON_BIN -m venv ODOO_HOME/venv
echo "===== 8. 安装 Python 依赖 ====="
source $ODOO_HOME/venv/bin/activate
pip install --upgrade pip wheel
pip install -r $ODOO_HOME/requirements.txt
echo "===== 9. 创建配置文件 ====="
cat > /etc/odoo.conf << CONF
options
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = odoo
addons_path = $ODOO_HOME/addons
logfile = /var/log/odoo/odoo.log
xmlrpc_interface = 0.0.0.0
CONF
mkdir -p /var/log/odoo
chown -R ODOO_USER:ODOO_USER /var/log/odoo
echo "===== 10. 权限设置 ====="
chown -R ODOO_USER:ODOO_USER $ODOO_HOME
echo "===== 11. 创建 systemd 服务 ====="
cat > /etc/systemd/system/odoo.service << SERVICE
Unit
Description=Odoo
After=network.target postgresql.service
Service
User=$ODOO_USER
Group=$ODOO_USER
ExecStart=ODOO_HOME/venv/bin/python ODOO_HOME/odoo-bin -c /etc/odoo.conf
Restart=always
Install
WantedBy=multi-user.target
SERVICE
echo "===== 12. 启动服务 ====="
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable odoo
systemctl restart odoo
echo "===== 13. 开放端口 ====="
firewall-cmd --permanent --add-port=8069/tcp
firewall-cmd --reload
echo "===== 安装完成 ====="
echo "访问地址: http://服务器IP:8069"
echo "数据库账号: odoo / odoo"
echo "管理密码: admin"