使用 Docker 和手动安装方式设置 Odoo 软件的指南
本文全面介绍了如何使用 Docker 和手动方法安装和配置 Odoo 软件。.

使用 Docker 和手动安装方式设置 Odoo 软件的指南

本文将完整介绍如何使用 Docker 和手动安装方式配置 Odoo。您将学习如何优化 Odoo,并实施安全性和可扩展性方面的建议。本指南包含安装和配置 Odoo 以在云服务器和 VPS 服务器上高效运行的步骤、技巧和窍门。.
0 股票
0
0
0
0

如何快速、安全、可扩展地搭建 Odoo?

本指南提供分步安装和配置方法。 Odoo 本文介绍了两种常用的 Docker 安装方法——Docker 安装和传统(手动)安装——以及安全技巧、性能优化、备份和高可用性/可扩展性解决方案,适用于云服务器和 VPS。文中还提供了基于 Docker 的发行版的示例和命令。 Debian/Ubuntu 所有操作设置和硬件建议均已提供并保留。.

Odoo架构简介

Odoo 它包含以下几个关键组成部分:

  • Python应用程序(后端)PostgreSQL 它们之间存在关联。.
  • Web客户端 它通过 8069 端口提供 HTTP/WS 服务; 长轮询 用于实时报告和通知。.
  • 文件存储 将附件存储在磁盘或云解决方案(S3)上。.
  • 附加模块和插件(社区 或者 企业).

先决条件

安装前,请确保以下物品齐全:

  • 操作系统: Ubuntu 20.04/22.04 或 Debian 11/12
  • PostgreSQL 12+ (兼容 Odoo 版本)
  • Python 3.8+pip、virtualenv(用于正常安装)
  • Docker Engine + docker-compose (针对容器方法)
  • Nginx 或 HAProxy 作为反向代理和 SSL 终止
  • 根据用户负载和自动化需求定制内存和处理器

使用 Docker 安装 Odoo

优势: 隔离性强,易于部署,版本兼容性好,可通过 docker-compose 进行管理。.

示例 docker-compose.yml 文件,助您快速入门

version: '3.7'
services:
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: odoo
      POSTGRES_USER: odoo
      POSTGRES_PASSWORD: odoo_password_here
    volumes:
      - odoo_db_data:/var/lib/postgresql/data
    restart: always

  odoo:
    image: odoo:16.0
    depends_on:
      - db
    ports:
      - "8069:8069"
    environment:
      HOST: db
      PORT: 5432
      USER: odoo
      PASSWORD: odoo_password_here
    volumes:
      - odoo_data:/var/lib/odoo
      - ./config:/etc/odoo
    restart: always

volumes:
  odoo_db_data:
  odoo_data:

基本执行命令

docker-compose up -d
docker-compose logs -f odoo

生产环境实用技巧

  • 使用官方镜像或自定义构建 其中包括您需要的模块和依赖项。.
  • 卷必须是持久性的;使用 NFS 或合适的存储驱动程序部署到集群。.
  • 在反向代理层配置 SSL;将 Odoo 容器连接到 proxy_mode = True 跑步。.
  • 要备份数据库 pg_dump 或者使用基于 WALS 的工具。.

Nginx反向代理示例(用于SSL)

server {
  listen 80;
  server_name odoo.example.com;
  return 301 https://$host$request_uri;
}
server {
  listen 443 ssl;
  server_name odoo.example.com;

  ssl_certificate /etc/letsencrypt/live/odoo.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/odoo.example.com/privkey.pem;

  proxy_read_timeout 720s;
  proxy_connect_timeout 720s;
  proxy_send_timeout 720s;

  location / {
    proxy_pass http://127.0.0.1:8069;
    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;
    proxy_set_header Host $host;
  }

  location /longpolling {
    proxy_pass http://127.0.0.1:8072;
  }
}

在 Linux 上手动安装 Odoo

这种方法适用于单一用途的服务器,以及需要完全控制的情况。.

一般安装步骤

步骤 1 — 安装必备组件:

sudo apt update && sudo apt upgrade -y
sudo apt install -y git python3-pip build-essential python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev node-less npm wkhtmltopdf

步骤 2 — 安装 PostgreSQL 并创建用户/数据库:

sudo apt install -y postgresql
sudo -u postgres createuser -s odoo
# یا ایجاد با رمز
sudo -u postgres psql -c "CREATE USER odoo WITH PASSWORD 'secure_password';"
sudo -u postgres psql -c "CREATE DATABASE odoo OWNER odoo;"

步骤 3 — 创建系统用户和虚拟环境:

sudo useradd -m -U -r -s /bin/bash odoo
sudo mkdir /opt/odoo && sudo chown odoo: /opt/odoo
sudo -u odoo git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0 /opt/odoo/odoo
cd /opt/odoo/odoo
python3 -m venv odoo-venv
source odoo-venv/bin/activate
pip install -r requirements.txt

步骤 4 — 配置 Odoo(例如 /etc/odoo.conf):

[options]
; This is the password that allows database operations:
admin_passwd = your_admin_db_password
db_host = False
db_port = False
db_user = odoo
db_password = secure_password
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom_addons
logfile = /var/log/odoo/odoo.log
proxy_mode = True
workers = 4
max_cron_threads = 1

步骤 5 — systemd 服务(启用并运行 Odoo):

sudo systemctl daemon-reload
sudo systemctl enable --now odoo

生产配置和性能优化

关键设置 odoo.conf 生产环境:

  • 工人: 对于多处理模式。建议公式:工作线程数 = (CPU 核心数 * 2) + 1
  • db_maxconn: 数据库连接数上限(例如,工作进程数 * 3)
  • limit_memory_soft 和 limit_memory_hard: 为防止内存溢出
  • proxy_mode = True 如果使用反向代理
  • 长轮询: 切换到不同的服务或端口(通常是 8072)

计算示例:4 核服务器 => workers = 9 和 db_maxconn = 60(可根据需要调整)。.

安全性和推荐硬件

网络安全和推荐设置

  • 防火墙: 仅开放必要的端口(例如 SSH、80、443),并将对 8069/8072 的访问限制为私有网络或反向代理。.
  • TLS: 使用 Let's Encrypt 和自动续费。.
  • 失败2禁止: 防止对 SSH 和管理面板进行暴力破解。.
  • PostgreSQL: 仅允许从本地主机或私有网络连接,使用强密码并限制用户使用。.
  • Odoo 中的访问权限: 限制用户权限并强制执行访问级别控制。.

根据使用情况推荐的硬件

  • 开发/测试: 1 个虚拟 CPU,2GB 内存,20GB 固态硬盘
  • 小型企业(5-20 位用户): 2-4 个虚拟 CPU,4-8GB 内存,50-200GB 固态硬盘
  • 中型组织(20-200 名用户): 4-8 个 vCPU、16-64GB RAM、NVMe SSD
  • HA/企业: 多台服务器(应用节点 + 专用数据库主节点 + 副本节点 + 基于 NFS/对象存储的文件存储)

备份、监控和高可用性/可扩展解决方案

备份

备用方案建议:

  • 数据库: 定期使用 pg_dump 或快照在块级别进行备份和测试恢复。.
  • 文件存储: 使用 rsync 同步到对象存储(兼容 S3)或 NFS 挂载并备份。.
  • 自动化: 定时脚本和 7/30 天保留期以及迁移到另一个地理位置。.
pg_dump -U odoo -Fc odoo > /backups/odoo_$(date +%F).dump

监测

使用 普罗米修斯 + 格拉法纳 或者使用 SaaS 工具来监控 CPU、内存、磁盘 I/O、连接数和队列。将日志发送到中央日志系统(ELK/Graylog)。.

高可用性和可扩展性

  • PostgreSQL 复制 (流复制)或使用托管数据库。.
  • 负载均衡器 (HAProxy/Nginx)和多个 Odoo 应用节点。.
  • 文件存储 采用共享存储(NFS/Gluster)或S3兼容存储,以确保同时访问。.

选择地点和推荐服务

选择位置和网络时需要考虑的要点:

  • 延迟: 选择靠近终端用户的数据中心以降低延迟。.
  • 遵守: 遵守当地法律和隐私法规。.
  • 网络: 对于延迟敏感型应用,请使用 ping 值低且具有合适 BGP 网络的位置。.
  • CDN: 它对 Odoo 的静态分发和负载降低很有用。.

条目文件中提到的相关服务包括提供 85 多个全球位置、云和 VPS 服务器、防 DDoS 服务器、托管数据库、CDN 以及用于管理模块和插件的 GitLab 和 CI/CD 托管功能。.

运营解决方案(用例)

  • 电子商务商店: 图片和静态文件的 CDN、缓存设置和工作节点扩充。.
  • POS机销售和面对面销售: 使用低延迟的本地网络或本地服务器,以确保在互联网中断期间的性能。.
  • 生产和仓储: 与物联网和队列管理集成,用于生成大量报表。.
  • 分析和机器学习: Odoo 适用于轻量级机器学习;对于大型模型,请使用专用 GPU 服务器。.

结论和后续步骤

本指南涵盖了使用 Docker 快速安装和手动安装以实现完全控制、安全提示、性能优化、备份和高可用性解决方案。选择合适的部署位置、硬件和网络配置对 Odoo 的稳定性和性能有着直接的影响。.

如果您需要一个具有多个位置、防 DDoS 保护、托管数据库和技术支持的环境,那么本文档中讨论的服务是合适的,可以帮助您实现安全且可扩展的部署。.

常见问题解答

您可能也喜欢