Cómo instalar Odoo 14 en Ubuntu 20.04 | Ubuntu 21.10
Odoo es un conjunto de aplicaciones comerciales de código abierto. Consiste en CRM, comercio electrónico, inventario, punto de venta, gestión de proyectos y más. Estas aplicaciones están completamente integradas y se accede a ellas a través de una interfaz web común. Con Odoo puede integrar sus aplicaciones y facilitar la vida empresarial.
Hay dos ediciones de Oddo: la versión Community y Enterprise. La edición Community es gratuita para todos.
Odoo tiene pocas opciones de instalación, como desde el repositorio APT, usando Docker o instalando en un entorno virtual.
En este tutorial, explicamos cómo instalar Odoo 14 CE en Ubuntu 20.04 dentro de un entorno virtual Python. Odoo alojado en Nginx como proxy de terminación SSL con certificado Let’s Encrypt.
requisitos previos
- Una instancia de Ubuntu 20.04 con un mínimo de 2 GB de RAM
- Para la gestión de bases de datos Odoo requiere PostgreSQL
- Un usuario no root con privilegios de sudo
Paso 1. Instalación de dependencias
Primero, actualice su sistema.
sudo apt update
sudo apt upgrade
El siguiente comando instalará todas las dependencias de Odoo.
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev
Paso 2. Creación de un usuario del sistema
Para ejecutar Odoo, necesitaremos crear un nuevo usuario y grupo del sistema con un directorio de inicio en la ruta /opt/odoo14 que deberá poder ejecutar un servicio Odoo.
sudo useradd -m -d /opt/odoo14 -U -r -s /bin/bash odoo14
Paso 3. Instalar y configurar PostgreSQL
Primero, instale PostgreSQL usando apt.
sudo apt install postgresql
Una vez que se complete la instalación de PostgreSQL, necesitaremos crear un usuario de PostgreSQL . Tenga en cuenta que vamos a utilizar el mismo nombre con el que creamos previamente un usuario del sistema. Eso es oddo14.
sudo su - postgres -c "createuser -s odoo14"
Paso 4. Instalación de wkhtmltopdf
wkhtmltopdf : es una herramienta de línea de comandos de código abierto que admite la representación de páginas HTML en PDF y otros formatos similares.
Para poder imprimir formatos PDF e informes en Odoo, deberá instalar el paquete wkhtmltopdf.
Primero, descargue el paquete usando el comando wget.
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
Una vez que se complete la descarga, instale wkhtmltopdf usando el comando apt:
sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb
Paso 5. Instalar y configurar Odoo 14
Como mencionamos en la introducción, instalaremos Odoo desde la fuente como un entorno virtual de Python aislado .
Primero, cambie un usuario a odoo14 con el siguiente comando.
sudo su - odoo14
Para clonar el código fuente oficial de Odoo 14 de GitHub , escriba:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo
Luego cambie el directorio a /opt/odoo14
cd /opt/odoo14
A partir de ahí, cree un nuevo entorno virtual de Python para Odoo con el siguiente comando.
python3 -m venv odoo-venv
Y activar el entorno virtual.
source odoo-venv/bin/activate
Después de activar el entorno virtual, instale todos los módulos de Python necesarios con pip3.
(odoo-venv) $ pip3 install wheel
e instalar
(odoo-venv) $
pip3 install -r odoo/requirements.txt
Esto puede llevar algún tiempo, cuando termine, desactive el entorno con el siguiente comando.
(odoo-venv) $ deactivate
Cree un nuevo directorio en la ruta /opt/odoo14, que contendrá los complementos de terceros que vamos a incluir en la configuración.
mkdir /opt/odoo14/odoo-custom-addons
Agregaremos este directorio al parámetro addons_path. Este parámetro definirá una lista de directorios donde Odoo buscará módulos.
A continuación, salga del usuario de odoo y vuelva a cambiar a su usuario de sudo.
exit
Cree un archivo de configuración:
sudo nano /etc/odoo14.conf
Y pasado los siguientes contenidos en el archivo:
[options]
; This is the password that allows database operations:
admin_passwd = put_your_secure_password
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
Paso 6. Cree un archivo de unidad Systemd
Cree un archivo de unidad de servicio llamado odoo14.service en el directorio /etc/systemd/system/.
sudo nano /etc/systemd/system/odoo14.service
Y pasada la siguiente configuración:
[Unit] Description=Odoo14 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo14 PermissionsStartOnly=true User=odoo14 Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Dígale a systemd que se ha creado un nuevo archivo de unidad.
sudo systemctl daemon-reload
E inicie el servicio Odoo y habilítelo para que se inicie en el arranque con el siguiente comando:
sudo systemctl enable --now odoo14
Producción:
Created symlink /etc/systemd/system/multi-user.target.wants/odoo14.service → /etc/systemd/system/odoo14.service.
Verificar el estado del servicio:
sudo systemctl status odoo14
El resultado que muestra que el servicio Odoo está en funcionamiento:
● odoo14.service - Odoo14 Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-22 00:42:45 UTC; 48s ago Main PID: 149632 (python3) Tasks: 4 (limit: 1073) Memory: 63.7M CGroup: /system.slice/odoo14.service └─149632 /opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
Jul 22 00:42:45 li1129-224 systemd[1]: Started Odoo14. Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,927 149632 INFO ? odoo: Odoo version 14.0 Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: Using configuration file at /etc/odoo14.conf Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: addons paths: ['/opt/odoo14/odoo/odoo/addons', '/opt/odoo14/.local/share/Odoo/addons/14.0', '/opt/odoo14/odoo/addons', '/opt/odoo14/odoo-custom-addons> Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: database: odoo14@default:default Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,525 149632 INFO ? odoo.service.server: HTTP service (werkzeug) running on computerfreaks:8069
Para ver los mensajes que ha registrado el servicio Odoo, ejecute:
sudo journalctl -u odoo14
Producción:
-- Logs begin at Tue 2021-07-13 12:50:08 UTC, end at Thu 2021-07-22 00:45:23 UTC. --
Jul 22 00:42:45 li1129-224 systemd[1]: Started Odoo14.
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,927 149632 INFO ? odoo: Odoo>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: Usin>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: addo>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: data>
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,210 149632 INFO ? odoo.addon>
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,525 149632 INFO ? odoo.servi>
Abre tu navegador y escribe: http://<your_domain_or_IP_address>:8069
Coloque la contraseña maestra que definió previamente en la ruta de configuración /etc/odoo14.conf e ingrese otras credenciales para crear una base de datos.
Una vez que la base de datos se haya creado correctamente, se redirigirá al Panel de control de Odoo14.
Paso 7. Configuración de Nginx como proxy de terminación SSL (opcional)
Si desea que Odoo sea más seguro para su entorno, podemos configurar Nginx como un proxy de terminación de SSL que servirá el tráfico a través de HTTPS, en lugar del tráfico de servicio web predeterminado de Odoo a través de HTTP.
SSL Termination Proxy presenta un servidor proxy que manejará el cifrado SSL. En nuestro caso, el proxy de terminación es Nginx, procesará y descifrará las conexiones TLS entrantes (HTTPS) y pasará la solicitud sin cifrar al servicio Odoo.
Requisitos previos
- Nombre de dominio que apunta a la IP de su servidor público
Para este artículo usaremos example.conf - Nginx instalado
- Vamos a cifrar el certificado SSL
Asegúrese de verificar que tiene Let’s Encrypt en funcionamiento o algún otro certificado SSL configurado correctamente.
Para instalar el certificado SSL de Let’s Encrypt primero necesitamos instalar certbot:
# apt install certbot
# apt install python3-certbot-nginx
A continuación, ejecute el siguiente comando con el nombre de dominio example.com y complete la información requerida:
# certbot --nginx -d example.com -d www.example.com
Producción:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):
1. Crear o editar el bloque del servidor de dominio
sudo nano /etc/nginx/sites-enabled/example.com.conf
Y pasada la siguiente configuración:
# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; return 301 https://example.com$request_uri; }
server { listen 443 ssl http2; server_name example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers 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; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
# log files access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# Handle longpoll requests location /longpolling { proxy_pass http://odoochat; }
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odoo;
}
# Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
NOTA: No olvide reemplazar example.com con su dominio Odoo y establezca la ruta correcta a los archivos del certificado SSL.
2. Reinicie el servicio Nginx
sudo systemctl restart nginx
Después de reiniciar el servicio Nginx, necesitaremos decirle a Odoo que use este proxy configurado.
3. Abra el archivo de configuración.
sudo nano /etc/odoo14.conf
4. Y agregue la siguiente línea.
proxy_mode = True
5. Finalmente, reinicie el servicio Odoo.
sudo systemctl restart odoo14
Si siguió todos los pasos, podrá acceder a su instancia web de Odoo en https://example.com
Conclusión
En este tutorial, aprendimos cómo instalar y configurar Odoo 14 en Ubuntu 20.04. Puede comenzar a descubrir cómo el ERP Odoo de código abierto es poderoso, también puede probar e investigar un ADempiere, otra solución ERP de código abierto que es similar a Odoo.