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).
Medios de Instalación:
Section titled “Medios de Instalación:”- 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.
Ediciones
Section titled “Ediciones”- 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.
Instalación de Odoo en Desarrollo
Section titled “Instalación de Odoo en Desarrollo”-
Actualizar el sistema (Debian/Ubuntu).
Terminal window sudo apt update && apt upgrade -y -
Instalar PostgreSQL
Terminal window sudo apt install postgresql -yTerminal window # Crear usuario odoo19 en PostgreSQLsudo -u postgres psql -c "CREATE USER odoo19 WITH CREATEDB NOCREATEROLE NOSUPERUSER;"# Crear Contraseña para odoo19 en PostgreSQLsudo -u postgres psql -c "ALTER USER odoo19 WITH ENCRYPTED PASSWORD 'p6ssW0rd19';" -
Instalar Dependencias
Terminal window sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev python3-venv -y -
Crear Directorio Odoo y Entorno Virtual
Terminal window mkdir odoo19cd odoo19python3 -m venv venvsource venv/bin/activate -
Instalar Código Fuente
Terminal window git clone https://github.com/odoo/odoo.git src --branch 19.0 --depth 1pip3 install --upgrade pippip3 install wheelpip3 install -r src/requirements.txt -
Crear Configuración
Terminal window mkdir -p {addons_custom,etc}echo '[options]admin_passwd = p6ssW0rd19db_host = localhostdb_port = 5432db_user = odoo19db_password = p6ssW0rd19# db_name = odoo19http_port = 8069addons_path = src/addons,addons_custom' > etc/odoo.conf -
Ejecutar el Servidor
Terminal window ./src/odoo-bin -c etc/odoo.conf -d odoo19
Instalación de Odoo en Producción
Section titled “Instalación de Odoo en Producción”-
Actualizar el sistema (Debian/Ubuntu)
Terminal window sudo apt update && apt upgrade -y -
Instalar PostgreSQL
Terminal window sudo apt install postgresql -y# Crear usuario odoo19 en PostgreSQLsudo -u postgres psql -c "CREATE USER odoo19 WITH CREATEDB NOCREATEROLE NOSUPERUSER;"# Crear Contraseña para odoo19 en PostgreSQLsudo -u postgres psql -c "ALTER USER odoo19 WITH ENCRYPTED PASSWORD 'p6ssW0rd19';" -
Instalar Dependencias
Terminal window sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev python3-venv -y -
Crear Usuario y Directorio odoo19
Terminal window sudo useradd -m -d /opt/odoo19 -s /bin/bash odoo19sudo passwd odoo19sudo su - odoo19python3 -m venv venvsource venv/bin/activate -
Instalar Código Fuente
Terminal window git clone https://github.com/odoo/odoo.git src --branch 19.0 --depth 1pip3 install --upgrade pippip3 install wheelpip3 install -r src/requirements.txt -
Crear Configuración
Terminal window mkdir -p {addons_custom,backups,etc,logs}echo '[options]admin_passwd = p6ssW0rd19db_host = localhostdb_port = 5432db_user = odoo19db_password = p6ssW0rd19# db_name = odoo19list_db = Falsehttp_port = 8069proxy_mode = Trueaddons_path = /opt/odoo19/src/addons,/opt/odoo19/addons_customdata_dir = /opt/odoo19/.local/share/Odoologfile = /opt/odoo19/logs/odoo.loglimit_memory_hard = 1677721600limit_memory_soft = 629145600limit_request = 8192limit_time_cpu = 600limit_time_real = 1200max_cron_threads = 1workers = 8' > etc/odoo.conf -
Crear Servicio Odoo
Terminal window echo '[Unit]Description=Odoo 19 ServiceRequires=postgresql.serviceAfter=network.target postgresql.service[Service]Type=simpleSyslogIdentifier=odoo19User=odoo19Group=odoo19ExecStart=/opt/odoo19/venv/bin/python3 /opt/odoo19/src/odoo-bin -c /opt/odoo19/etc/odoo.confStandardOutput=journal+console[Install]WantedBy=multi-user.target' > /etc/systemd/system/odoo19.service -
Iniciar el Servicio Odoo
Terminal window sudo systemctl daemon-reloadsudo systemctl enable odoo19sudo systemctl start odoo19 -
Instalar Nginx
Terminal window sudo apt install nginx -yTerminal 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;}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;rewrite ^(.*) https://$host$1 permanent;}server {listen 443 ssl;server_name odoo.mycompany.com;proxy_read_timeout 720s;proxy_connect_timeout 720s;proxy_send_timeout 720s;ssl_certificate /etc/ssl/nginx/server.crt;ssl_certificate_key /etc/ssl/nginx/server.key;ssl_session_timeout 30m;ssl_protocols TLSv1.2;ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;ssl_prefer_server_ciphers off;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;add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8}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 -
Habilitar Sitio
Terminal window sudo ln -s /etc/nginx/sites-available/odoo19 /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl reload nginx -
Reiniciar Servicio Odoo
Terminal window sudo systemctl restart odoo19
Instalar Soporte LDAP 3
Section titled “Instalar Soporte LDAP 3”sudo apt install python3-ldap3 -yInstalar Soporte PDF
Section titled “Instalar Soporte PDF”sudo apt install wkhtmltopdf -yComandos de Gestión
Section titled “Comandos de Gestión”# Iniciar serviciossudo systemctl daemon-reloadsudo systemctl enable odoo18 odoo19sudo systemctl start odoo18 odoo19
# Ver estadosudo systemctl status odoo18sudo systemctl status odoo19
# Logs específicossudo journalctl -u odoo18 -fsudo journalctl -u odoo19 -f
# Logs de archivotail -f /opt/odoo18/logs/odoo.logtail -f /opt/odoo19/logs/odoo.logConfiguración del Sistema
Section titled “Configuración del Sistema”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
[options]limit_memory_hard = 1677721600limit_memory_soft = 629145600limit_request = 8192limit_time_cpu = 600limit_time_real = 1200max_cron_threads = 1workers = 8