GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el software ERP Odoo 14 en Ubuntu 20.04

Odoo (anteriormente conocido como OpenERP) es un conjunto autohospedado de más de 10 000 aplicaciones de código abierto adecuadas para una variedad de necesidades comerciales, que incluyen CRM, comercio electrónico, contabilidad, inventario, gestión de proyectos y punto de venta. Estas aplicaciones están totalmente integradas y se accede a ellas a través de una interfaz web común.

En este tutorial, aprenderemos a instalar Odoo 14 Stack en un servidor basado en Ubuntu 20.04.

Requisitos

  1. Un servidor basado en Ubuntu 20.04 con un mínimo de 2 GB de RAM para alojar Odoo Stack.

  2. Un segundo servidor basado en Ubuntu 20.04 con un mínimo de 2 GB de RAM para alojar la base de datos PostgreSQL. Sin embargo, puede instalar la base de datos en el mismo servidor que Odoo, pero para entornos de producción, se recomienda enfáticamente que la instale en un servidor separado. También puede elegir cualquiera de las opciones de bases de datos administradas disponibles de cualquier proveedor de su elección.

  3. El requisito de RAM dependerá de la cantidad de usuarios simultáneos que usarán la pila. Puede encontrar una guía detallada sobre cómo calcular los requisitos del sistema en la documentación de Odoo.

  4. Mantenga sus sistemas actualizados.

    $ sudo apt update
    $ sudo apt upgrade
    
  5. Un usuario no root con privilegios sudo en ambos servidores.

Configurar reglas de cortafuegos

A los efectos de este tutorial, asumiremos que tiene ufw firewall instalado en ambos servidores.

En el servidor Odoo, necesitaremos que los puertos 22, 80, 443, 6010, 5432 y 8069 estén abiertos. 22 se usa para SSH, 80 es para HTTP, 443 es para HTTPS, 6010 se usa para comunicación Odoo, 5432 es usado por PostgreSQL y 8069 es usado por la aplicación del servidor Odoo.

Ejecute los siguientes comandos para abrir los puertos requeridos en el servidor Odoo.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

En el servidor PostgreSQL, necesitamos abrir los puertos 22, 6010 y 5432. Ábralos usando los comandos que acabamos de discutir.

Asignar nombres de host

Puede usar las direcciones IP de los servidores o usar sus nombres de dominio completos (FQDN), si están disponibles. Para nuestro tutorial, usaremos FQDN y, para eso, debemos establecer nombres de host en ambos servidores.

En el servidor de Odoo, abra el /etc/hosts archivo.

$ sudo nano /etc/hosts

Asegúrate de que tenga el siguiente aspecto.

127.0.0.1 	localhost
127.0.0.1	odoo.yourdomain.com		odoo
10.1.1.10	postgresql.yourdomain.com	postgresql

En el servidor PostgreSQL, abra el archivo y asegúrese de que tenga el siguiente aspecto.

127.0.0.1 	localhost
127.0.0.1	postgresql.yourdomain.com	postgresql
10.1.2.10	odoo.yourdomain.com		odoo

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

Instalar y configurar PostgreSQL

Ubuntu 20.04 viene con PostgreSQL 12 de forma predeterminada y lo instalaremos. Ejecute el siguiente comando en el servidor PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

A continuación, necesitamos crear un usuario de base de datos odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

La opción -u ejecuta el comando como postgres usuario.

La opción -U indique el nombre de usuario para conectarse.

La opción -d otorga al usuario permiso para crear bases de datos.

La opción -p solicita la contraseña del nuevo usuario.

Configurar autenticación basada en host

Necesitamos dar permiso al servicio PostgreSQL para poder conectarse al servidor Odoo.

Primero, detenga el servicio PostgreSQL.

$ sudo systemctl stop postgresql

Abra el archivo /etc/postgresql/12/main/pg_hba.conf para editar.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Pegue la siguiente línea al final.

host		all		odoo		odoo.yourdomain.com		md5

Esta línea otorga permiso al odoo usuario para conectarse a todas las bases de datos dentro de este servidor. También puede especificar el nombre de las bases de datos en lugar de usar all palabra clave.

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

Configurar la dirección de escucha de PostgreSQL

A continuación, debemos permitir que el servidor de la base de datos escuche las conexiones remotas. Abra el archivo /etc/postgresql/12/main/postgresql.conf para editar.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Cambia la línea listen_addresses de

#listen_addresses = 'localhost' # what IP address(es) to listen on;

a.

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

El * significa que escuchará todas las direcciones IP. Puede cambiarlo a la dirección IP de su instancia de odoo.

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

Habilitar e iniciar el servicio PostgreSQL

Ya que nuestra configuración ha terminado, es hora de iniciar y habilitar el servicio PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Instalar Odoo

Instalar dependencias y preparar para la instalación

Cree un nuevo usuario del sistema para administrar los procesos de Odoo en el servidor de Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

Necesitamos instalar algunas dependencias del sistema, pero primero, debemos habilitar los repositorios de origen. Para hacer eso, haga una copia de seguridad de la lista de fuentes original y luego habilite todos los repositorios de fuentes y actualice la lista de repositorios.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Instale las dependencias del sistema requeridas para la configuración de Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Instalar Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Instale el paquete Less CSS usando Node.

$ sudo npm install -g less less-plugin-clean-css

Descargar wkhtmltopdf paquete de la versión 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Instale el paquete.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Para asegurarse de que wkhtmltopdf funciona correctamente, copia los binarios a /usr/bin y darles los permisos adecuados.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Descargar archivos de Odoo

Clone el repositorio Github de Odoo en su sistema.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Para nuestro propósito, estamos copiando Odoo al /opt/odoo directorio desde donde se instalará.

Configurar el entorno Virtualenv Python

Este paso es opcional pero se recomienda ya que un entorno virtual de Python para Odoo ayudará a evitar conflictos con los módulos de Python del sistema operativo, especialmente al realizar actualizaciones del sistema operativo.

Para esto, usaremos virtualenv .

  1. Crear un nuevo virtualenv ambiente para Odoo.

    $ python3 -m venv /home/<username>/odoo-env
    
  2. Activar el entorno virtual. Estamos creando un entorno en el directorio de inicio del usuario del sistema. Eres libre de elegir la ubicación que quieras.

    $ source /home/<username>/odoo-env/bin/activate
    
  3. Actualice PIP por si acaso.

    (odoo-env) $ pip3 install --upgrade pip
    
  4. Instale la rueda de Python en el entorno virtual.

    $ pip3 install wheel
    

Instalar dependencias de Python

Instale las dependencias de Python requeridas por Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Los requisitos tardarán un tiempo en instalarse, así que tenga paciencia.

Compruebe si los requisitos están instalados correctamente consultando la lista de módulos de Python instalados.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Salga del entorno virtual de Python.

$ deactivate

Configurar Odoo

Copie el archivo de configuración predeterminado de Odoo para crear uno nuevo.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Abra el archivo para editarlo.

$ sudo nano /etc/odoo-server.conf

Edite el archivo para que tenga el siguiente aspecto.

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

La opción admin_passwd es la contraseña que permite las operaciones administrativas dentro de la GUI de Odoo. Asegúrese de elegir una contraseña segura.

La opción db_host es el FQDN o la dirección IP del servidor PostgreSQL.

La opción db_port se establece en false ya que se está utilizando el puerto 5432 de PostgreSQL predeterminado. Si desea utilizar un puerto diferente, deberá actualizar este valor.

La opción db_user es el nombre del usuario de PostgreSQL.

La opción db_password es la contraseña de usuario de PostgreSQL 'odoo' que creamos previamente en el servidor de PostgreSQL.

La opción addons_path es la ruta de complementos predeterminada. También puede agregar una ruta personalizada para complementos separándolos con comas.

La opción xmlrpc_port es el puerto en el que escucha Odoo.

Crear servicio Odoo

Para asegurarnos de que Odoo siga funcionando incluso después de reiniciar el sistema, debemos crear un servicio para él.

Cree un archivo /lib/systemd/system/odoo-server.service y ábralo para editarlo.

$ sudo nano /lib/systemd/system/odoo-server.service

Pegue el siguiente código en él.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home/<username>/odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Reemplazar /home/<username> con la ubicación que eligió para instalar Python Virtual Environment.

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

Establecer permisos de archivo

Establecer permisos en el odoo-server.service archivo para que solo el usuario de Odoo pueda leerlo o ejecutarlo.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Establezca la propiedad en el entorno de Python y el directorio de instalación de Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home/<username>/odoo-env

Restrinja el archivo de configuración de Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Iniciar el servidor Odoo

Inicie y habilite el servidor Odoo.

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

Comprueba el estado del servidor.

$ sudo systemctl status odoo-server

En su navegador, abra la URL http://<yourIPaddress>:8069 o http://odoo.yourdomain.com:8069 . Si todo funciona correctamente, debería ver la pantalla de creación de la base de datos de Odoo.

Rellene todos los campos. Compruebe los Demo Data para llenar la base de datos con datos de muestra y luego haga clic en Crear base de datos botón.

A continuación, se le mostrará una lista de aplicaciones que puede elegir y seleccionar.

La primera vez que cree una base de datos, la página de complementos tardará en cargarse, así que no actualice la página.

Instalar y configurar Nginx

Hasta ahora, hemos estado usando el servidor de Odoo para ejecutar la pila. Pero idealmente, es mejor ejecutarlo en Nginx usando un proxy porque eso nos permitirá instalar SSL en él.

Instala Nginx.

$ sudo apt install nginx

Para ejecutarlo a través de Nginx, debemos ejecutar Odoo en localhost. Para cambiar eso, detenga el servicio Odoo.

$ sudo systemctl stop odoo-server

Abra el archivo de configuración del servidor Odoo.

$ sudo nano /etc/odoo-server.conf

Añádele las siguientes líneas.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Cree un archivo de configuración de Nginx para Odoo.

$ sudo nano /etc/nginx/sites-available/odoo.conf

Pegue el código a continuación.

#odoo server
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   server_name odoo.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for odoo proxy mode
 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/odoo.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
 ssl_session_tickets off;
 ssl_protocols TLSv1.2 TLSv1.3;
 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;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

 # log
 access_log /var/log/nginx/odoo.access.log;
 error_log /var/log/nginx/odoo.error.log;

 # Redirect longpoll requests to odoo longpolling port
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Redirect requests to odoo backend server
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # common gzip
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

Active este archivo de configuración vinculándolo a sites-enabled directorio.

$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

Pruebe la configuración de Nginx.

$ sudo nginx -t

Instalar SSL

Instalaremos SSL utilizando el servicio Let's Encrypt.

Para eso, instale Certbot.

$ sudo apt install certbot

Detenga Nginx porque interferirá con el proceso de Certbot.

$ sudo systemctl stop nginx

Generar el certificado. También necesitamos crear un certificado DHParams.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

También necesitamos configurar un trabajo cron para renovar el SSL automáticamente. Para abrir el editor crontab, ejecute el siguiente comando.

$ sudo crontab -e

Pegue la siguiente línea en la parte inferior.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

El trabajo cron anterior ejecutará certbot a las 2:25 am todos los días. Puedes cambiarlo a lo que quieras.

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Iniciar Odoo

Ahora que todo está configurado, podemos iniciar el servidor Odoo nuevamente.

$ sudo systemctl start odoo-server

Inicie Odoo en su navegador a través de https://odoo.yourdomain.com . Obtendrá una pantalla descrita anteriormente. Ingrese los detalles requeridos para crear la base de datos y debe iniciar sesión en Odoo y ver una pantalla como esta.

Conclusión

Esto concluye nuestro tutorial sobre la instalación de Odoo en el servidor Ubuntu 20.04. Si tiene alguna pregunta, publíquela en los comentarios a continuación.


Ubuntu
  1. Cómo instalar Odoo en Ubuntu

  2. ¿Cómo instalar el software Audacity en Ubuntu?

  3. Instale Odoo 9 en Ubuntu 14.04

  4. Cómo instalar Odoo 15 en Ubuntu 22.04

  5. Cómo instalar Odoo 13 en Ubuntu 20.04

Cómo instalar Odoo 13 en Ubuntu

Cómo instalar Odoo en Ubuntu 18.04

Cómo instalar Odoo en Ubuntu 20.04

Cómo instalar Odoo 13 en Ubuntu 22.04

Cómo instalar Odoo 14 en Ubuntu 22.04

Cómo instalar Odoo 12 en Ubuntu 20.04