Este tutorial esta dirigido a personas con conocimientos básicos-medios en manejo de sistema Linux, además de contar ya con un entorno de trabajo en algún servidor bajo ssh y un dominio propio registrado el cual puedan modificar las redirección DNS para la adecuada configuración final
Odoo, anteriormente conocido como OpenERP es un software de ERP integrado bajo licencia LGPLv3 en la versión comunitaria, también contando con una versión comercial bajo la empresa belga Odoo S.A.
Entre sus funciones se incluyen un CRM, sitio web y comercio electrónico, facturación, contabilidad, fabricación, gestión de almacenes y proyectos, e inventario entre otros.
En este tutorial abarcaremos la instalación de Odoo desde cero, con su configuración adecuada en nginx para su uso bajo el protocolo https.
TODOS LOS COMANDOS SON BAJO EL USUARIO ROOT, SI NO ESTAS LOGEADO COMO ROOT ANTEPÓN EL COMANDO sudo
Paso 1.
Como en todo nueva instalación nos cercioraremos de que este todo actualizando en nuestro sistema 🙂
apt update
apt upgrade
Paso 2.
Ahora a instalar las dependencias necesarias:
apt install python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev python3-pip gnupg2 wget nano
Paso 3.
Ahora toca instalar PostgreSQL, y para ello agregaremos su repositorio al los del sistema, primero importante su llave gpg, posterior a eso agregaremos la dirección del repositorio en un archivo en la carpeta especial /etc/apt/sources.list.d, actualizamos la base de datos del apt para continuar con la instalación y al final confirmamos su ejecución de forma correcta, a continuación los comandos:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list
apt update
apt -y install postgresql-12 postgresql-client-12
systemctl status postgresql.service
Paso 3.1.
Ahora vamos a configurar el PostgreSQL para hacerlo mas seguro, cambiando la contraseña por default con los siguientes comandos:
Nota donde dice MegaContraseña se debe cambiar por la que se usara, recuerda las buenas practicas a la hora de elegir la tu ya
su - postgres
psql -c "alter user postgres with password 'MegaContraseña'"
Paso 4
Ahora toca la instalación de wkhtmltopdf, el cual es necesario para generar algunos de los reportes de Odoo, esto lo realizaremos descargando el paquete deb desde su github e instalándolo.
Nota: Al momento de escribir esto, la versión mas actual es la 0.12.6.1, pero revisa su pagina para encontrar la mas nueva
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb
Paso 5
Ahora si, vamos a instalar Odoo, y al igual que con el PostgreSQL, añadiremos su repo a los del sistema.
wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/13.0/nightly/deb/ ./" | tee /etc/apt/sources.list.d/odoo.list
apt update
apt install odoo
Paso 5.1
Bien en este momento ya tienes instalado Odoo, solamente confirmaremos que se este ejecutando y estableceremos que se inicie cada vez que el sistema se reinicie.
systemctl status odoo
systemctl enable --now odoo
Paso 6.
Muy bien, ahora instalaremos y configuraremos nginx para trabajar con el cifrado SSL para usar el protocolo https, para ello usaremos la herramienta de certbot de la EFF, el cual nos otorgara un certificado valido y así no tendrán problema los usuarios al momento de acceder a nuestros servicios, además garantizamos la seguridad si deseamos tener una tienda en linea, y por ultimo agregaremos una linea en el cron para renovar el certificado de forma automática.
Nota: para este paso supondremos que nuestro dominio sera erp.cempazuchitl.org en tu caso es lo que se debe cambiar
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
systemctl stop nginx
export DOMAIN="erp.cempazuchitl.org"
export EMAIL="ventas@erp.cempazuchitl.org"
certbot-auto certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiring
crontab -e
Agregar al final del archivo que se abrirá:
15 3 * * * /usr/local/bin/certbot-auto renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
Paso 6.1
Ahora se mostrara como debe quedar la configuración del nginx, seguiremos usando erp.cempazuchitl.org en nuestro ejemplo y es lo que debes modificar en tu caso.
Para crear el archivo de configuración
nano /etc/nginx/conf.d/odoo.conf
Lo siguiente es el contenido del archivo que acabamos de crear en /etc/nginx/conf.d, solo cópialo y edíta lo necesario (el nombre de dominio).
# Odoo
upstream erp.cempazuchitl.org {
server 127.0.0.1:8069;
}
# redirección de http a https
server {
listen 80;
server_name erp.cempazuchitl.org;
return 301 https://erp.cempazuchitl.org$request_uri;
}
server {
listen 443 ssl;
server_name erp.cempazuchitl.org;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# SSL
ssl_certificate /etc/letsencrypt/live/erp.cempazuchitl.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/erp.cempazuchitl.org/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/erp.cempazuchitl.org/chain.pem;
# Configuración del Proxy
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Solicitud de dominio
location / {
proxy_redirect off;
proxy_pass http://erp.cempazuchitl.org;
}
# Cache de archivos estáticos
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://erp.cempazuchitl.org;
}
# Compresión Gzip
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
Paso 6.2.
Ahora, solo queda validar la configuración hecha y si todo esta bien, reiniciamos el servicio de nginx y listo, ya podrás acceder a Odoo desde tu dominio (para este ejemplo erp.cempazuchitl.org).
nginx -t
systemctl restart nginx
Si todo salio bien, ya podrás acceder a tu Odoo desde la URL de tu dominio.
Paso 7.
Como parte de la seguridad deberás asignar una contraseña maestra a la base de datos, esto se realiza ingresando a la siguiente URL, https://erp.cempazuchitl.org/web/database/manager, esto quiere decir que a tu nombre de dominio le agregas la siguiente ruta /web/database/manager , es decir https://tudomionio.org/web/database/manager en esta ruta especial podrás, crear nuevas bases de datos para Odoo, así como eliminarlas, o respaldarlas.
Esto es todo, espero te sea de ayuda, gracias por tu tiempo.
Referencias y guías en ingles
Esta
También esta
Y esta
Importante (Manual de Usuario )
Lo mismo de arriba pero en español