Cómo instalar Odoo con Docker en Ubuntu

0 acciones
0
0
0
0

Introducción

Odoo es una herramienta de planificación de recursos empresariales (ERP) de código abierto escrita en Python. Admite diversos complementos para diversas necesidades empresariales, como contabilidad, nóminas, gestión de inventario y más. En este tutorial, instalará Odoo y una base de datos PostgreSQL mediante Docker Compose. A continuación, instalará Nginx como proxy inverso para su sitio web de Odoo. Finalmente, habilitará conexiones HTTPS seguras mediante Certbot para descargar y configurar un certificado TLS de la autoridad de certificación Let's Encrypt.

Requisitos previos
  • Un servidor Ubuntu con 2 o más CPU, un usuario no root con privilegios de sudo y un firewall habilitado.
  • Docker instalado
  • Finalmente, para habilitar TLS, necesita un nombre de dominio que apunte a la dirección IP pública de su servidor. Debería ser algo como ejemplo.com u odoo.ejemplo.com.

Una vez que tenga todos los requisitos previos listos, proceda al paso 1, donde instalará el paquete docker-compose.

Paso 1: Instalar Docker Compose

Para instalar la herramienta de línea de comandos docker-compose, actualice su lista de paquetes y luego instale el paquete usando apto Instalar:

sudo apt update
sudo apt install docker-compose

Puede verificar que el paquete esté instalado ejecutando el siguiente comando:

docker-compose –version

Debería obtener un resultado como el siguiente:

Output
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.10

Una vez que haya verificado que Docker Compose está instalado en su servidor, configurará e iniciará Odoo y PostgreSQL usando Docker Compose en el siguiente paso de este tutorial.

Paso 2: Ejecutar Odoo y PostgreSQL con Docker Compose

Para empezar a crear tus contenedores de Odoo y PostgreSQL, crea un directorio llamado odoo en tu directorio personal para almacenar los archivos que crearás en este tutorial. Usarás este directorio para almacenar todos los archivos necesarios para ejecutar Odoo.

Ejecute los siguientes comandos para crear el directorio y luego cd Ejecútalo:

mkdir ~/odoo
cd ~/odoo

Ahora crea un nuevo archivo YAML vacío llamado docker-compose.yml usando nano O abre tu editor favorito:

nano docker-compose.yml

Puedes usar este archivo con el comando docker-compose Lo usarás para iniciar tus contenedores de Odoo y PostgreSQL y vincularlos. Agrega las siguientes líneas al archivo:

version: '3'
services:
odoo:
image: odoo:15.0
env_file: .env
depends_on:
- postgres
ports:
- "127.0.0.1:8069:8069"
volumes:
- data:/var/lib/odoo
postgres:
image: postgres:13
env_file: .env
volumes:
- db:/var/lib/postgresql/data/pgdata
volumes:
data:
db:

El archivo define dos servicios. El primero se llama odoo y ejecuta la aplicación Odoo. El segundo se llama postgres y es el contenedor de la base de datos PostgreSQL. Ambos servicios apuntan a volúmenes que utilizan para almacenar datos fuera de las instancias del contenedor en ejecución. Finalmente, el servicio odoo expone el puerto 8069 de su servidor al contenedor Odoo, que se ejecuta en el mismo puerto 8069.

Cuando termines de editar el archivo, guárdalo y sal. Si usas nano, presiona CTRL+O y luego ENTER para guardar, y CTRL+X para salir.

Los contenedores de Odoo y PostgreSQL utilizan variables de entorno para su configuración. El archivo docker-compose.yml especifica una directiva env_file para ambos servicios. Esta directiva incluye un archivo de referencia que contiene las variables que cada servicio necesita para ejecutarse.

Este enfoque suele recomendarse en lugar de añadir variables de entorno directamente al archivo docker-compose.yml, ya que es recomendable no incluir contraseñas en él. Este enfoque es especialmente útil si se confirman los archivos en un repositorio Git u otro sistema de control de versiones.

Abra un nuevo archivo env con nano:

nano .env

Agregue las siguientes líneas al archivo y reemplace los valores resaltados con un USUARIO_POSTGRES y CONTRASEÑA DE POSTGRES Reemplace su selección:

# postgresql environment variables
POSTGRES_DB=postgres
POSTGRES_PASSWORD=a_strong_password_for_user
POSTGRES_USER=odoo
PGDATA=/var/lib/postgresql/data/pgdata
# odoo environment variables
HOST=postgres
USER=odoo
PASSWORD=a_strong_password_for_user

Para generar una contraseña para Odoo y PostgreSQL, use el comando openssl, que debería estar disponible en la mayoría de los sistemas Linux. Ejecute el siguiente comando en su servidor para generar un conjunto aleatorio de bytes e imprimir una versión codificada en base64 que pueda usar como contraseña:

openssl rand -base64 30

Utilice la cadena resultante en lugar de las contraseñas de protección. una contraseña segura para el usuario En el archivo .env Una vez que haya terminado de editar su archivo .env, guárdelo y salga de su editor de texto.

Ahora estás listo para crear contenedores. odoo y Postgres con el comando docker-compose Empezar:

docker-compose up -d

El subcomando "up" indica a docker-compose que inicie los contenedores y los volúmenes y redes asociados definidos en el archivo docker-compose.yml. El indicador -d (que significa "daemonize") indica a docker-compose que ejecute los contenedores en segundo plano para que el comando de la terminal no tome el control. docker-compose imprime una breve salida mientras descarga las imágenes de Docker necesarias y luego inicia los contenedores:

Output
Creating network "odoo_default" with the default driver
Creating volume "odoo_odoo_data" with default driver
Creating volume "odoo_postgres_data" with default driver
Pulling odoo (odoo:14.0)...
15.0: Pulling from library/odoo
. . .

Una vez hecho esto, Odoo debería estar ejecutándose. Puedes comprobar si un servidor web está funcionando recuperando la página de inicio con el comando curl. 127.0.0.1:8069 Carreras:

curl --head http://localhost:8069

Esto imprimirá solo los encabezados HTTP de la respuesta:

Output
HTTP/1.0 303 SEE OTHER
Content-Type: text/html; charset=utf-8
Content-Length: 215
Location: http://localhost:8069/web
Set-Cookie: session_id=142fa5c02742d0f5f16c73bc14ec8144b8230f8a; Expires=Mon, 06-Jun-2022 20:45:34 GMT; Max-Age=7776000; HttpOnly; Path=/
Server: Werkzeug/0.14.1 Python/3.7.3
Date: Tue, 08 Mar 2022 20:45:34 GMT

Respuesta 303 VER OTROS Esto significa que el servidor Odoo Está en funcionamiento, pero deberá visitar otra página para completar la instalación. Encabezado http://localhost:8069/web La ubicación especificada indica dónde debe visitar la página del instalador de Odoo en su navegador.

Luego configuraremos Nginx para redirigir el tráfico público al contenedor Odoo.

Paso 3: Instalar y configurar Nginx

Instalar un servidor web como Nginx frente al servidor de Odoo puede mejorar el rendimiento al liberar espacio en caché, la compresión y el servicio de archivos estáticos para un proceso más eficiente. Instalaremos Nginx y lo configuraremos para que utilice el proxy inverso de las solicitudes a Odoo, lo que significa que se encargará de enviar las solicitudes de los usuarios a Odoo y viceversa. Usar un proceso Nginx sin contenedor facilitará la adición de certificados TLS de Let's Encrypt en el siguiente paso.

Primero actualice su lista de paquetes, luego instale Nginx usando apto Instalar:

sudo apt update
sudo apt install nginx

Usando el perfil de aplicación Nginx Full UFW, permita el tráfico público a los puertos 80 y 443 (HTTP y HTTPS):

sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)

A continuación, abra un nuevo archivo de configuración de Nginx en el directorio /etc/nginx/sites-available. Lo llamaremos odoo.conf, pero puede usar otro nombre:

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

Pegue lo siguiente en el nuevo archivo de configuración, asegurándose de reemplazar your_domain_here con el dominio que ha configurado para apuntar a su servidor Odoo. Debería ser algo como odoo.example.com, por ejemplo:

server {
listen 80;
listen [::]:80;
server_name your_domain_here;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://localhost:8069;
}
}

Por ahora, esta configuración es solo HTTP, ya que dejaremos que Certbot configure TLS en el siguiente paso. El resto del archivo de configuración configura las ubicaciones de los registradores y luego envía todo el tráfico, así como algunos encabezados de proxy importantes, a http://localhost:8069, el contenedor de Odoo que iniciamos en el paso anterior.

Guarde y cierre el archivo, luego habilite la configuración vinculándolo a /etc/nginx/sites-enabled/:

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

Utilice nginx -t para comprobar la sintaxis del archivo de configuración:

sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Y finalmente, recargue el servicio nginx con la nueva configuración:

sudo systemctl reload nginx.service

Tu sitio Odoo debería ser accesible ahora mediante HTTP simple. Carga http://tu_dominio_aquí (quizás tengas que pasar por una advertencia de seguridad) y se verá así:


Ahora que su sitio está configurado mediante HTTP, es hora de asegurar la conexión con los certificados Certbot y Let's Encrypt. Debe hacerlo antes de continuar con la configuración web de Odoo.

Paso 4: Instalar Certbot y configurar certificados TLS

Gracias a Certbot y a la licencia gratuita Let's Encrypt, agregar el cifrado TLS a su aplicación Odoo solo requiere dos comandos.

Primero, instale Certbot y su complemento Nginx:

sudo apt install certbot python3-certbot-nginx

A continuación, ejecute certbot en modo –nginx y especifique el mismo dominio que utilizó en la directiva de configuración server_name de Nginx:

sudo certbot --nginx -d your_domain_here

Se le pedirá que acepte los términos de servicio de Let's Encrypt e ingrese una dirección de correo electrónico. Después, se le preguntará si desea redirigir todo el tráfico HTTP a HTTPS. Esto depende de usted, pero generalmente es recomendable y seguro.

Después de eso, Let's Encrypt aprobará tu solicitud y Certbot descargará tu certificado:

Output
Congratulations! You have successfully enabled https://odoo.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=odoo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/odoo.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/odoo.example.com/privkey.pem
Your cert will expire on 2022-05-09. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Certbot cargará Nginx automáticamente con la nueva configuración y los certificados. Recargue su sitio web en su navegador y debería cambiar automáticamente a HTTPS si selecciona la opción de redirección.

Su sitio ahora es seguro y puede continuar sin peligro con el proceso de configuración basado en web.

Paso 5 – Configuración de Odoo

Regrese a su navegador web y recargue la página. Ahora debería poder abrir la página de configuración de la base de datos de Odoo mediante una conexión segura https://. Ahora puede ingresar su nombre de usuario y contraseña de forma segura para completar la instalación.

La información que complete en esta página le indica a la aplicación Odoo cómo crear su base de datos PostgreSQL y detalles sobre el usuario administrativo predeterminado.

Rellene los siguientes campos:
  • Nombre de la base de datos: odoo
  • Correo electrónico: Su dirección de correo electrónico
  • Contraseña: Una contraseña segura y única para iniciar sesión como administrador.
  • Datos de demostración: si es la primera vez que instala Odoo, asegúrese de que esta opción esté marcada.

Los valores predeterminados son válidos para el resto de los campos. Asegúrate de registrar el correo electrónico y la contraseña que elijas, ya que los usarás para iniciar sesión en Odoo en el futuro.

Ahora haga clic en el botón "Crear base de datos" en la parte inferior izquierda de la página. Odoo puede tardar uno o dos minutos en crear las tablas de su base de datos. Una vez completado el proceso, será redirigido a la página de administración de Odoo Apps.


Desde aquí puede elegir los módulos de Odoo que desea instalar y usar para sus necesidades de ERP. Si desea probar una aplicación, haga clic en el botón Instalar en la sección Ventas. Odoo instalará el módulo y le redirigirá a la página personal de la aplicación Discuss.

Haga clic en el ícono del cuadrado dividido en la parte superior izquierda de la página y luego seleccione el enlace Ventas en la lista desplegable de opciones.


Estarás en una página que te guiará a través de la personalización de datos, precios, pedidos y una lista de muestras de ventas con las que puedes experimentar.

Resultado

En este tutorial, implementó la aplicación Odoo ERP y la base de datos PostgreSQL usando Docker Compose, luego configuró un proxy inverso Nginx y lo protegió usando certificados TLS de Let's Encrypt.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

También te puede gustar