将 Odoo 部署到阿里云是一个常见且可行的选择,尤其适合希望在我国大陆提供稳定服务的企业。以下是详细的部署步骤和建议,帮助你在阿里云上成功部署 Odoo。
一、准备工作
-
注册阿里云账号
- 访问 阿里云官网
- 注册并完成实名认证。
-
选择合适的 ECS 实例
- 推荐配置(根据业务规模调整):
- 系统:Ubuntu 20.04 / 22.04 LTS(推荐)
- CPU:2核 或以上
- 内存:4GB 或以上
- 硬盘:系统盘 40GB + 数据盘(可选)
- 带宽:1~5 Mbps(视用户量而定)
- 推荐配置(根据业务规模调整):
-
安全组设置
- 开放以下端口:
22:SSH 远程登录80:HTTP443:HTTPS8069:Odoo 默认端口(可后续关闭或反向X_X后隐藏)
- 开放以下端口:
二、部署方式选择
✅ 方式一:手动部署(推荐用于学习或定制化)
步骤:
-
登录 ECS 实例
ssh root@你的公网IP -
更新系统
sudo apt update && sudo apt upgrade -y -
安装依赖
sudo apt install -y postgresql postgresql-contrib python3-pip python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libssl-dev libffi-dev build-essential wget git -
创建 PostgreSQL 用户
sudo su - postgres -c "createuser --createdb --username postgres --no-createrole --no-superuser odoo" -
克隆 Odoo 源码(以 v17 为例)
git clone https://github.com/odoo/odoo.git -b 17.0 --depth=1 /opt/odoo cd /opt/odoo -
创建虚拟环境并安装 Python 依赖
python3 -m venv odoo-env source odoo-env/bin/activate pip install -r requirements.txt -
创建配置文件
sudo mkdir /etc/odoo sudo cp /opt/odoo/debian/odoo.conf /etc/odoo/odoo.conf sudo chown -R $USER:$USER /etc/odoo/odoo.conf编辑配置:
[options] ; 基础配置 db_host = False db_port = False db_user = odoo db_password = False admin_passwd = your_admin_password_here addons_path = /opt/odoo/addons,/opt/odoo/odoo/addons xmlrpc_port = 8069 logfile = /var/log/odoo/odoo.log log_level = info -
创建日志目录
sudo mkdir /var/log/odoo sudo chown $USER:$USER /var/log/odoo -
创建 systemd 服务(开机自启)
sudo nano /etc/systemd/system/odoo.service内容如下:
[Unit] Description=Odoo Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple User=your_username ExecStart=/opt/odoo/odoo-env/bin/python3 /opt/odoo/odoo-bin -c /etc/odoo/odoo.conf KillSignal=SIGINT TimeoutStopSec=200 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload sudo systemctl enable odoo sudo systemctl start odoo -
访问 Odoo
浏览器打开:http://<你的公网IP>:8069首次访问会进入数据库创建页面。
✅ 方式二:使用 Docker 部署(更简单、快速)
-
安装 Docker 和 Docker Compose
curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose -
创建
docker-compose.ymlversion: '3' services: db: image: postgres:15 environment: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo POSTGRES_DB: postgres volumes: - postgres_data:/var/lib/postgresql/data restart: always web: image: odoo:17.0 depends_on: - db ports: - "8069:8069" environment: - HOST=db - USER=odoo - PASSWORD=odoo volumes: - odoo-web-data:/var/lib/odoo - ./config:/etc/odoo - ./addons:/mnt/extra-addons restart: always volumes: postgres_data: odoo-web-data: -
启动服务
docker-compose up -d -
访问
http://<你的公网IP>:8069
三、生产环境优化建议
-
使用 Nginx 反向X_X
- 隐藏 8069 端口
- 支持 HTTPS
- 负载均衡(多实例时)
-
申请 SSL 证书(免费可用阿里云或 Let’s Encrypt)
- 使用 Certbot 自动续期。
-
定期备份
- 数据库备份(pg_dump)
- 文件存储(
/var/lib/odoo/filestore)
-
监控与日志
- 使用阿里云日志服务 SLS
- 设置告警(CPU、内存、磁盘)
-
域名绑定
- 在阿里云购买域名 → 解析到 ECS 公网 IP
- 配置 Nginx 使用域名访问。
四、注意事项
- ⚠️ 不要将
admin_passwd泄露。 - 🔒 生产环境务必关闭
--dev模式。 - 🌐 建议通过 Nginx + HTTPS 提供服务,避免直接暴露 8069 端口。
- 💾 定期快照 ECS 磁盘以防数据丢失。
五、参考资源
- Odoo 官方文档
- 阿里云 ECS 文档
- Docker Odoo 镜像
如果你需要我帮你生成完整的脚本、Docker 配置或 Nginx 示例,请告诉我你的具体需求(如版本、是否需要 HTTPS、是否多用户等),我可以进一步定制方案。
秒懂云