Skip to content

Instalación

Dependiendo del caso de uso previsto, hay varias formas de instalar Odoo. Tanto para los desarrolladores de la comunidad Odoo como para los empleados de Odoo, la forma preferida es realizar una instalación de código fuente (ejecutando Odoo desde el código fuente).

  • Instalación en línea es la manera más fácil de usar Odoo en producción o de probarlo.
  • Instalación en paquete es ideal para realizar pruebas y desarrollar módulos. También es excelente para producción a largo plazo donde se harán despliegues adicionales y se realizará trabajo de mantenimiento.
  • Instalación de código fuente permite mayor flexibilidad para la ejecución de varias versiones de Odoo en el mismo sistema. También es adecuada para desarrollar módulos y se puede usar como base para desplegar producción.
  • También está disponible una imagen base de Docker para desarrollo o despliegue.
  • Odoo Community es la versión gratuita y de código abierto del software y cuenta con la licencia GNU LGPLv3. Es la base con la que construimos Odoo Enterprise.
  • Odoo Enterprise es la versión origen compartida del software que tiene acceso a más funciones, como soporte funcional, actualizaciones y alojamiento. Los precios dependen de la cantidad de usuarios.
  1. Actualizar el sistema (Debian/Ubuntu).

    Terminal window
    sudo apt update && apt upgrade -y
  2. Instalar PostgreSQL

    Terminal window
    sudo apt install postgresql -y
    Terminal window
    # Crear usuario odoo19 en PostgreSQL
    sudo -u postgres psql -c "CREATE USER odoo19 WITH CREATEDB NOCREATEROLE NOSUPERUSER;"
    # Crear Contraseña para odoo19 en PostgreSQL
    sudo -u postgres psql -c "ALTER USER odoo19 WITH ENCRYPTED PASSWORD 'p6ssW0rd19';"
  3. Instalar Dependencias

    Terminal window
    sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev python3-venv -y
  4. Crear Directorio Odoo y Entorno Virtual

    Terminal window
    mkdir odoo19
    cd odoo19
    python3 -m venv venv
    source venv/bin/activate
  5. Instalar Código Fuente

    Terminal window
    git clone https://github.com/odoo/odoo.git src --branch 19.0 --depth 1
    pip3 install --upgrade pip
    pip3 install wheel
    pip3 install -r src/requirements.txt
  6. Crear Configuración

    Terminal window
    mkdir -p {addons_custom,etc}
    echo '
    [options]
    admin_passwd = p6ssW0rd19
    db_host = localhost
    db_port = 5432
    db_user = odoo19
    db_password = p6ssW0rd19
    # db_name = odoo19
    http_port = 8069
    addons_path = src/addons,addons_custom
    ' > etc/odoo.conf
  7. Ejecutar el Servidor

    Terminal window
    ./src/odoo-bin -c etc/odoo.conf -d odoo19
  1. Actualizar el sistema (Debian/Ubuntu)

    Terminal window
    sudo apt update && apt upgrade -y
  2. Instalar PostgreSQL

    Terminal window
    sudo apt install postgresql -y
    # Crear usuario odoo19 en PostgreSQL
    sudo -u postgres psql -c "CREATE USER odoo19 WITH CREATEDB NOCREATEROLE NOSUPERUSER;"
    # Crear Contraseña para odoo19 en PostgreSQL
    sudo -u postgres psql -c "ALTER USER odoo19 WITH ENCRYPTED PASSWORD 'p6ssW0rd19';"
  3. Instalar Dependencias

    Terminal window
    sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev python3-venv -y
  4. Crear Usuario y Directorio odoo19

    Terminal window
    sudo useradd -m -d /opt/odoo19 -s /bin/bash odoo19
    sudo passwd odoo19
    sudo su - odoo19
    python3 -m venv venv
    source venv/bin/activate
  5. Instalar Código Fuente

    Terminal window
    git clone https://github.com/odoo/odoo.git src --branch 19.0 --depth 1
    pip3 install --upgrade pip
    pip3 install wheel
    pip3 install -r src/requirements.txt
  6. Crear Configuración

    Terminal window
    mkdir -p {addons_custom,backups,etc,logs}
    echo '
    [options]
    admin_passwd = p6ssW0rd19
    db_host = localhost
    db_port = 5432
    db_user = odoo19
    db_password = p6ssW0rd19
    # db_name = odoo19
    list_db = False
    http_port = 8069
    proxy_mode = True
    addons_path = /opt/odoo19/src/addons,/opt/odoo19/addons_custom
    data_dir = /opt/odoo19/.local/share/Odoo
    logfile = /opt/odoo19/logs/odoo.log
    limit_memory_hard = 1677721600
    limit_memory_soft = 629145600
    limit_request = 8192
    limit_time_cpu = 600
    limit_time_real = 1200
    max_cron_threads = 1
    workers = 8
    ' > etc/odoo.conf
  7. Crear Servicio Odoo

    Terminal window
    echo '
    [Unit]
    Description=Odoo 19 Service
    Requires=postgresql.service
    After=network.target postgresql.service
    [Service]
    Type=simple
    SyslogIdentifier=odoo19
    User=odoo19
    Group=odoo19
    ExecStart=/opt/odoo19/venv/bin/python3 /opt/odoo19/src/odoo-bin -c /opt/odoo19/etc/odoo.conf
    StandardOutput=journal+console
    [Install]
    WantedBy=multi-user.target
    ' > /etc/systemd/system/odoo19.service
  8. Iniciar el Servicio Odoo

    Terminal window
    sudo systemctl daemon-reload
    sudo systemctl enable odoo19
    sudo systemctl start odoo19
  9. Instalar Nginx

    Terminal window
    sudo apt install nginx -y
    Terminal window
    upstream odoo {
    server 127.0.0.1:8069;
    }
    upstream odoochat {
    server 127.0.0.1:8072;
    }
    map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
    }
    server {
    listen 80;
    server_name odoo.mycompany.com;
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;
    location /websocket {
    proxy_pass http://odoochat;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header X-Forwarded-Host $http_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 / {
    proxy_set_header X-Forwarded-Host $http_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_redirect off;
    proxy_pass http://odoo;
    }
    gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
    gzip on;
    }

    Establezca el modo proxy en el el archivo de configuración odoo.conf:

    Terminal window
    proxy_mode = True
  10. Habilitar Sitio

    Terminal window
    sudo ln -s /etc/nginx/sites-available/odoo19 /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
  11. Reiniciar Servicio Odoo

    Terminal window
    sudo systemctl restart odoo19
Terminal window
sudo apt install python3-ldap3 -y
Terminal window
sudo apt install wkhtmltopdf -y
Terminal window
# Iniciar servicios
sudo systemctl daemon-reload
sudo systemctl enable odoo18 odoo19
sudo systemctl start odoo18 odoo19
# Ver estado
sudo systemctl status odoo18
sudo systemctl status odoo19
# Logs específicos
sudo journalctl -u odoo18 -f
sudo journalctl -u odoo19 -f
# Logs de archivo
tail -f /opt/odoo18/logs/odoo.log
tail -f /opt/odoo19/logs/odoo.log

Ejemplo de configuración

  • Servidor con 4 CPU, 8 hilos.
  • 60 usuarios concurrentes.
  • 60 usuarios / 6 = 10 <- Número teórico de workers necesarios.
  • (4 * 2) + 1 = 9 <- Número teórico máximo de workers.
  • Usaremos 8 workers + 1 para el cron.
  • RAM = 9 * ((0.8150) + (0.21024)) ~= 3GB RAM para Odoo

Archivo de configuración odoo.conf

Terminal window
[options]
limit_memory_hard = 1677721600
limit_memory_soft = 629145600
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 8