En este video vamos a instalar Odoo 14 en un servidor con sistema operativo Ubuntu Server 20.04 LTS y posteriormente le configuraremos un nombre de dominio y certificado.

A continuación el resumen de comandos ejecutados durante el video cómo guía para realizar los pasos de los video:

1 Instalando PostgreSQL cómo motor de base de datos

sudo apt install postgresql postgresql-client

2 Instalando libreria para exportar reportes a PDF en Odoo

sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
sudo apt install ./wkhtmltox_0.12.6-1.bionic_amd64.deb -f

3 Crear usuario en postgres para Odoo

sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo14

4 Entrar a psql y darle permisos al usuario

psql
ALTER USER odoo14 WITH SUPERUSER;

5 Agregar repositorios de Odoo para realizar la instalación

wget -O - https://nightly.odoo.com/odoo.key | sudo apt-key add -
echo "deb http://nightly.odoo.com/14.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list

6 Instalando Odoo

sudo apt update
sudo apt install odoo

7 Revisar que odoo se está ejecutando

systemctl status odoo

8 Habilitar servicio de Odoo para que arranque automáticamente al iniciar el servidor

sudo systemctl enable --now odoo

9 Instalar nginx para usarlo como proxy reverso

sudo apt-get install nginx

10 Creando un directorio para guardar los certificados de mi dominio

mkdir /etc/nginx/certs

11 Configuración de nginx para el sitio de Odoo creado en /etc/nginx/sites-available con el nombre de mi sitio odoo.bioxor.net.conf

Creando archivo de configuración

sudo nano /etc/nginx/sites-available/odoo.bioxor.net.conf

Configuración de nginx en nuestro archivo de odoo.bioxor.net.conf:

upstream odoo {
server 192.168.0.105:8069;
}

upstream odoochat {
server 192.168.0.105:8072;
}

server {
listen 80;
server_name odoo.bioxor.net;
rewrite ^(.*) https://$host$1 permanent;
}

server {
listen 443 ssl;
server_name odoo.bioxor.net;
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/nginx/certs/odoo.bioxor.net.crt;
ssl_certificate_key /etc/nginx/certs/odoo.bioxor.net.key;
ssl_trusted_certificate /etc/nginx/certs/server_ca.crt;
ssl_session_timeout 30m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;

# 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;
}

12 Creando link simbolico para que nginx lea la configuración.

cd /etc/nginx/sites-enabled
sudo ln -s ../sites-available/odoo.bioxor.net.conf

13 Comprobando que no haya errores de sintaxis en el archivo de configuración de nginx

sudo nginx -t

14 Reiniciar servicio de nginx para que tome los cambios de configuración.

sudo service nginx restart

Moviendo mis certificados desde la carpeta de /home/rborja a mi carpeta de etc/nginx/certs

sudo mv odoo.bioxor.net.key /etc/nginx/certs/
sudo mv odoo.bioxor.net.crt /etc/nginx/certs/
sudo mv server_ca.crt /etc/nginx/certs/

15 Editar archivo de configuración de Odoo

sudo nano /etc/odoo/odoo.conf

16 Habilitar en True modo proxy en odoo.conf

proxy_mode = True

17 Reiniciar servicio de odoo

sudo service odoo restart

Rodolfo Borja

Me encanta la tecnología y los chocolates y me da satisfacción poder ayudar a otras personas compartiendo mis conocimientos, estudié ingeniería en computación y me dedico al giro del desarrollo software y servicios desde hace más de 10 años.

View all posts

14 comments

Tu dirección de correo electrónico no será publicada.

  • Estimado amigo, una maravilla el tutorial, gracias a personas altruistas como tu el mundo va mejorando, muchas gracias por entregar tus conocimientos.
    Solo una pregunta el direccionamiento del puerto 80 al 8069 no termina de funcionar cuando realizas todo esto en un VPS, es decir si vas directo a https://XXXXXXXX.com funciona, pero si solo pones en el navegado XXXXXXXX.com no lo direcciona al https y simplemente te muestra la pagina por defecto de nginx, alguien sabría que hay que modificar en el archivo de configuración de nginx para que funcione? muchas gracias y felicitaciones por tu web

    • Esta sección debe redireccionar http a https en el puerto 443, también puedes revisar el archivo default de nginx para ver si su configuración no este interfiriendo. Igualmente borra el caché de tu navegador, a veces ese es el problema.

      server {
      listen 80;
      server_name odoo.bioxor.net;
      rewrite ^(.*) https://$host$1 permanent;
      }

    • Significa que tienes un error en la línea 1 del archivo brotli.conf, indica que estas usando como directiva la palabra ‘brotli’ y esta directiva no existe, revisa que tenga la correcta sintaxis tu archivo de configuración.

        • Este error se debe normalmente a que nginx no encuentra el sitio al cual esta reenviando las peticiones en su función como proxy, debes verificar que efectivamente el servicio de Odoo este ejecutándose y que el puerto y la dirección IP o dominio donde esta odoo sea correcta en la configuración del sitio en nginx o que nginx tenga acceso a esa dirección de red donde esta el odoo, revisa por ejemplo que la dirección de red de odoo sea correcta en la directiva proxy_pass.

          • Los servicios de odoo se están ejecutando correctamente.

            Esta es mi configuración de nginx

            upstream odoo {
            server http://localhost:8069;
            }
            upstream odoochat {
            server http://localhost:8072;
            }

            server {
            listen 80;
            server_name sidt.com.mx;
            server_name http://www.sidt.com.mx;
            rewrite ^(.*) https://$host$1 permanent;
            }
            server {
            listen 443 ssl;
            server_name sidt.com.mx;
            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/nginx/certs/sidt.com.mx_ssl_certificate.cer;
            ssl_certificate_key /etc/nginx/certs/*.sidt.com.mx_private_key.key;
            ssl_trusted_certificate /etc/nginx/certs/*.sidt.com.mx_ssl_certificate_INTERMEDIATE.cer;
            ssl_session_timeout 30m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers ‘ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:> ssl_prefer_server_ciphers on;

            # 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://localhost:8069;
            proxy_buffers 16 4k;
            proxy_buffer_size 2k;
            proxy_pass http: // localhost:8069;
            }

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

  • me gustaría que me apoyes a instalar odoo 12 en ubuntu server 20.04
    cuento con las aplicaciones necesarias para un funcionamiento optimo. .

    • Muy buen tutorial Rodolfo, bastante bien para nosotros los mortales jeje.
      crees que nos podrías explicar un poco mejor la última parte del vídeo, donde mencionas que tenemos que configurar un ip publica, y lo del dns.
      tengo un dominio y no logro acceder a oddo desde ese dominio

      • Debes tener una IP publica contratada o instalar Odoo en un servidor o hosting o servicio de nube que te proporcione una dirección IP pública, para que el Odoo sea accesible por internet, por ejemplo supongamos que tienes esta IP
        201.127.49.204, entonces mediante ese IP tu servidor sera accesible en internet, luego para configuración de DNS se suele contar con ella en el servicio de hosting donde contrataste el dominio debes crear un registro DNS de Tipo A
        donde indique que esta IP 201.127.49.204 apunta a tu nombre de domimio midominio.com

Publicidad

¿Me donas para un chocolate?