Acompáñanos a lo largo de este tutorial donde descubriremos cómo instalar Odoo en un servidor Linux de Jotelulu.
Odoo es un conjunto de aplicaciones basadas en software libre (código abierto) que permite gestionar nuestra empresa a través de un completo ERP y CRM con ventas, inventario, informes, contabilidad, mailing, facturas web, etc.
Es todo lo que una empresa necesita para poder llevar los clientes, ventas, etc. de manera sencilla y sostenible, y, por tanto, consideramos que debemos comentaros como podéis desplegar este software de manera sencilla para aprovechar todo su potencial.
¿Cómo instalar Odoo en un servidor Linux de Jotelulu?
Pre-requisitos o pre-configuración
Para completar de forma satisfactoria este tutorial y poder instalar Odoo en un servidor Linux de Jotelulu se necesitará:
- Por un lado, estar dado de alta en la Plataforma Jotelulu con una organización y estar registrado en la misma tras hacer Log-in.
- Por otro lado, haber dado de alta una suscripción de Servidores
- Tener un servidor Ubuntu dentro de la suscripción.
- El servidor debe tener al menos 2 CPU.
- Un usuario con privilegios de administrador o bien a través de “root” o mediante el comando “sudo”.
Paso 1. Instalación del servicio de Docker
NOTA: En el presente tutorial partimos de que el lector ya ha desplegado Docker en su sistema, en caso de que no sea así recomendamos consultar el artículo donde se trata en este mismo blog.
Paso 2. Instalación del servicio de Docker Compose
Docker Compose es una herramienta para definir y ejecutar aplicaciones Docker de varios contenedores y poder gestionarlos de la manera más eficiente. Para ello se usan archivos YAML que permiten configurar los servicios que se quieren ejecutar dentro de la aplicación. De esta manera, con un solo comando se podrá crear e iniciar todos los servicios desde su configuración.
Para instalar la herramienta Docker Compose en nuestro Ubuntu se deberá actualizar la lista de paquetes que puede usar nuestra distribución, y una vez actualizados, podremos instalar Docker Compose como tal. Para ello usaremos nuestro viejo amigo, el comando “apt”.
NOTA: La ejecución de comandos la podremos hacer de dos maneras, mediante el acceso al usuario root y ejecutando todos los comandos desde este, o mediante el uso del comando “sudo” que permitirá a usuarios seleccionados la ejecución de comandos con privilegios elevados.
Los comandos para ejecutar serían:
# sudo apt update
# sudo apt install docker compose
O
# apt update
# apt install docker compose
A continuación, se puede comprobar que la instalación ha funcionado correctamente y que tenemos Docker Compose instalado en nuestro servidor mediante la ejecución del comando “docker compose –version”
# docker compose –version
Paso 3. Desplegar Odoo y PostgreSQL mediante Docker Compose
Ahora que tenemos Docker Compose ejecutándose dentro de nuestro servidor, es hora de desplegar la solución. Pero es importante saber, que esta solución (Odoo), va a necesitar una base de datos para poder correr el aplicativo, y en este caso, la base de datos recomendada es PostgreSQL.
Para realizar esta tarea, debemos comenzar por crear un directorio llamado “odoo” para albergar los contenedores de Odoo y PostgreSQL, este directorio será usado para almacenar los archivos que se necesitan para ejecutar Odoo de manera satisfactoria. Para ello se ejecutará el comando “mkdir” ().
# mkdir ~/odoo
# cd ~/odoo
Donde “~” simboliza el directorio HOME por lo que “~/odoo” indica que la carpeta usada será “$HOME/odoo” siendo “$HOME” el del usuario que se haya usado para la instalación.
Una vez creado el directorio “~/odoo” y estando dentro de él, se debe crear un archivo YAML en blanco que puede ser llamado “docker-compose.yml” usando nuestro editor preferido, que en mi caso es Vi, pero se puede usar Nano Emacs o cualquier otro:
# vi docker-compose.yml
O
# nano docker-compose.yml
En este punto se debe editar el fichero que será leído por el comando Docker Compose para lanzar y vincular los contenedores de Odoo y PostgreSQL.
Para editar el fichero en “vi” se debe pulsar “i” (insert) y pegar el texto que tenemos bajo estas líneas:
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:
Donde se puede observar que se están configurando dos servicios separados:
- Odoo: CR;/ERP.
- Postgres: Base de Datos asociada al servicio.
Odoo que va a hacer uso del puerto “8069” por lo que se deberá tener en mente en el firewall en caso de tener problemas de comunicación.
Asimismo, el resto de los puntos, hacen referencia a donde se tiene los volúmenes o donde se tienen las variables de entorno que configuraremos posteriormente mediante la directiva “env_file”. La directiva hará una llamada al archivo al que se hace referencia y que contiene las variables que cada uno de los servicios a ejecutar.
NOTA: Se podría poner todo dentro del archivo “docker-compose.yml”, pero se recomienda tener todo separado, entre otras cosas para poder mantener las contraseñas fuera de este fichero.
Una vez editado todo, en caso de haber editado con Vi se deberá pulsar <ESC> (Tecla de Escape) y a continuación “:wq” que Guarda la configuración (Write) y Sale del editor (Quit).
En caso de haberlo hecho con Nano se debe Hacer “CTRL+O” y <Enter> para guardar, y luego “CTRL+X” para salir del editor.
A continuación, se deben definir las variables de entorno (env) para que se puedan configurar correctamente las aplicaciones de Odoo y PostgreSQL.
Para definir las variables se debe crear un nuevo archivo “.env” mediante Vi, Nano u otro editor.
# vi .env
o
# nano .env
Y una vez editado, en “vi” se debe pulsar “i” (insert) y pegar el texto que tenemos bajo estas líneas:
# postgresql: Variables de Entorno
POSTGRES_DB=postgres
POSTGRES_PASSWORD=<Contraseña_Postgres>
POSTGRES_USER=odoo
PGDATA=/var/lib/postgresql/data/pgdata
# odoo: Variables de Entorno
HOST=postgres
USER=odoo
PASSWORD=<Contraseña_Usuario>
Donde
- <Contraseña_Postgres>: Una contraseña segura para Postgres.
- <Contraseña_Usuario>: Una contraseña segura para el usuario.
NOTA: Si no se tiene una política de contraseñas fuertes se puede hacer uso del comando “openssl” para generar una contraseña segura y aleatoria.
Una vez terminada la edición, al igual que antes, en caso de haber editado con Vi se deberá pulsar <ESC> (Tecla de Escape) y a continuación “:wq” que Guarda la configuración (Write) y Sale del editor (Quit). En caso de haberlo hecho con Nano se debe Hacer “CTRL+O” y <Enter> para guardar, y luego “CTRL+X” para salir del editor.
Una vez llegados a este punto, en principio, ya podemos gestionar nuestro aplicativo mediante Docker Compose por lo que se deberá lanzar el comando:
# docker-compose up -d
Donde:
- up: Hace referencia a que levante el servicio.
- d: Indica que se levante el servicio como un demonio del sistema.
NOTA: Esta acción tomará un rato, sobre todo pensando que es la primera vez que se levanta el servicio.
Cuando termine de mostrarse mensajes por pantalla, si todo ha ido bien es que Odoo se está ejecutándo.
La prueba más eficiente de que todo ha ido bien es usar el comando “curl” junto con “127.0.0.1:8069”:
# curl –head http://127.0.0.1:8069
o
# curl –head http://localhost:8069
Donde:
- head: Indica que solo se quiere ver los mensajes de la parte superior.
En este caso, lo que queremos encontrar, es el mensaje “HTTP/1.0 303 SEE OTHER” que indicará que el proceso se ha ejecutado correctamente y que el Docker de Odoo está corriendo.
Paso 4. Instalación de Nginx
En este punto vamos a intentar mejorar el rendimiento del aplicativo poniendo un Nginx (servidor web) delante del servidor Odoo, que descarga el almacenamiento en caché, la compresión y el servicio de archivos estáticos, lo que debería mejorar el rendimiento del conjunto.
Volveremos a actualizar la lista de paquetes del servidor, aunque en principio no debería haber novedades, ya que acabamos de hacerlo, para ello ejecutaremos el comando “apt update”.
# apt update
O
# sudo apt update
Y una vez actualizados, lanzaremos el comando de instalación, mediante “apt install nginx”.
# sudo apt install nginx
O
# apt install nginx
Después lanzaremos el comando “ufw allow” para permitir el tráfico público a los puertos 80 (HTTP) y 443 (HTTPS):
# ufw allow “Nginx Full”
O
# sudo ufw allow “Nginx Full”
Editamos un nuevo fichero “/etc/nginx/sites-available/odoo.conf” dentro de la carpeta de configuración de Nginxs.
# nano /etc/nginx/sites-available/odoo.conf
O
# sudo nano /etc/nginx/sites-available/odoo.conf
Poniendo la siguiente configuración:
server {
listen 80;
listen [::]:80;
server_name <Nombre_Dominio>;
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;
}
}
Donde:
- <Nombre_Dominio>: Debe ser sustituido por el dominio que se configuró para apuntar al servidor Odoo. Ejemplo odoo.jotelulu.com.
- Listen: En este momento, se está trabajando con HTTP (Puesto 80) o no seguro, y trabajaremos posteriormente para hacerlo seguro.
- *_log: Decimos donde se guardan los archivos de registro (logs).
- Proxy_*: Encabezados proxy como “http://localhost:8069”.
Nuevamente, tras realizar la edición, en caso de haber editado con Vi se deberá pulsar <ESC> (Tecla de Escape) y a continuación “:wq” que Guarda la configuración (Write) y Sale del editor (Quit). En caso de haberlo hecho con Nano se debe Hacer “CTRL+O” y <Enter> para guardar, y luego “CTRL+X” para salir del editor.
El siguiente punto será crear un enlace entre nuestro nuevo fichero y los sitios disponibles:
# ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
o
# sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
Para ver que todo está bien, se debe lanzar el comando de testeo (prueba) del fichero de Nginx.
# nginx -t
o
# sudo nginx -t
Finalmente, recargamos la configuración de Nginx mediante el comando de “systemctl”.
# systemctl reload nginx.service
o
# sudo systemctl reload nginx.service
También se puede comprobar el estado mediante el comando:
# systemctl status nginx.service
o
# sudo systemctl status nginx.service
Estando disponible en este paso el acceso a la ventana de inicio de Odoo, aunque estando completamente pendiente la configuración de su entorno.
Paso 5. Configuración de Odoo
En este punto, estamos llegando al final de nuestro tutorial cómo instalar Odoo en un servidor GNU/Linux de Jotelulu que terminaremos enseguida siguiendo cuatro pautas.
En el paso anterior, nos hemos quedado en la pantalla inicial de Odoo, donde se deberán rellenar los siguientes campos:
- Database Name: Nombre de la base de datos, que en nuestro caso será “odoo”.
- Email: Correo electrónico, que deberá ser la dirección de correo electrónico del administrador.
- Password: Contraseña segura y única para su inicio de sesión de administrador.
- Phone number: Número de teléfono del administrador.
- Language: Lenguaje del entorno, pudiéndolo dejar en “English (US)” o pasarlo a otro idioma.
- Country: País donde se despliega.
- Demo data: Datos de demostración que deberá estar marcada si es la primera vez que instalamos odoo.
NOTA: Los datos de correo electrónico y contraseña se utilizarán para iniciar sesión en Odoo por lo que es necesario recordarlos o almacenarlos en un gestor de contraseñas seguro.
En este punto, se debe hacer clic en “Create database” para que comience el proceso de despliegue de Odoo para su explotación.
Odoo puede tardar unos minutos en crear las tablas de base de datos y dejar el entorno preparado, y cuando esto suceda seremos redirigidos a la página administrativa de Odoo Apps.
En este punto, se deberá acceder a la plataforma y empezar a poblar de usuarios y contraseñas y otros datos relacionados.
NOTA: Otro punto que deberíamos configurar es el uso de certificados para acceder a nuestro Odoo a través de un entorno seguro.
Conclusiones:
Tal como has podido ver a lo largo de este tutorial, “Cómo instalar Odoo en un servidor Linux de Jotelulu”, desplegar Odoo sobre Dockers en Ubuntu Linux es relativamente sencillo siempre que se tengan claros los pasos a seguir.
En este caso hemos revisado como hacer la configuración desde el CLI de GNU/Linux partiendo de que ya teníamos Docker desplegado en nuestro servidor. En caso de que tengas dudas sobre como desplegar Docker en Ubuntu puedes revisarlo en otro tutorial de nuestro blog.
Iremos hablando más sobre Odoo, como configurarlo, optimizarlo, trucos, etc.
¡Gracias por acompañarnos!