Cómo instalar Odoo ERP 13 en CentOS 8
En esta página
- Requisitos
- Cómo empezar
- Crear usuario de Odoo
- Instalar y configurar PostgreSQL
- Instalar Wkhtmltopdf
- Instalar y configurar Odoo 13
- Cree un archivo de servicio Systemd para Odoo 13
- Configurar Nginx como proxy inverso para Odoo 13
- Configurar cortafuegos
- Acceda a la interfaz web de Odoo 13
- Conclusión
Odoo es el software ERP gratuito, de código abierto y más popular que ofrece una amplia gama de aplicaciones comerciales que incluyen gestión de relaciones con los clientes (CRM), flujo de ventas, gestión de proyectos, fabricación, facturación, contabilidad, comercio electrónico y muchas más. Es una aplicación basada en la web y con todas las funciones que lo ayuda a mantener el ERP en cualquier negocio. Odoo viene con 30 módulos centrales y más de 4500 módulos creados por la comunidad que lo ayudan a personalizarlo como una tienda pequeña a una corporación de nivel empresarial.
En este tutorial, aprenderemos cómo instalar y configurar Odoo 13 con Nginx como proxy inverso en el servidor CentOS 8.
Requisitos
- Un servidor que ejecute CentOS 8 con un mínimo de 2 GB de RAM.
- Un nombre de dominio válido dirigido a la IP de su servidor. En este tutorial, usaremos el dominio exmaple.com.
- Se configura una contraseña raíz en el servidor.
Empezando
Primero, actualice el sistema e instale el repositorio EPEL con el siguiente comando:
dnf update
dnf install epel-release
A continuación, deberá instalar algunas herramientas y dependencias necesarias para compilar Odoo en su sistema.
Puede instalarlos todos con el siguiente comando:
dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.
Crear usuario de Odoo
A continuación, deberá crear un nuevo usuario del sistema con el nombre odoo y el directorio de inicio /opt/odoo usando el siguiente comando:
useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
Una vez que haya terminado, puede continuar con el siguiente paso.
Instalar y configurar PostgreSQL
Odoo usa PostgreSQL para almacenar sus datos. Por lo tanto, deberá instalar PostgreSQL en su servidor. Puedes instalarlo con el siguiente comando:
dnf install postgresql postgresql-server postgresql-contrib
Una vez instalado, inicialice la base de datos con el siguiente comando:
/usr/bin/postgresql-setup initdb
Deberías obtener el siguiente resultado:
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
A continuación, inicie el servicio PostgreSQL y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start postgresql
systemctl enable postgresql
Ahora puede verificar PostgreSQL usando el siguiente comando:
systemctl status postgresql
Debería ver el siguiente resultado:
? postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago
Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
Main PID: 31808 (postmaster)
Tasks: 8 (limit: 12552)
Memory: 16.5M
CGroup: /system.slice/postgresql.service
??31808 /usr/bin/postmaster -D /var/lib/pgsql/data
??31809 postgres: logger process
??31811 postgres: checkpointer process
??31812 postgres: writer process
??31813 postgres: wal writer process
??31814 postgres: autovacuum launcher process
??31815 postgres: stats collector process
??31816 postgres: bgworker: logical replication launcher
A continuación, deberá crear un nuevo usuario de PostgreSQL con el mismo nombre que el usuario del sistema, como se muestra a continuación:
su - postgres -c "createuser -s odoo"
Instalar Wkhtmltopdf
A continuación, deberá instalar la herramienta wkhtmltopdf en su sistema para que Odoo pueda imprimir informes en PDF. Puedes instalarlo con el siguiente comando:
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Una vez instalado, puede continuar con el siguiente paso.
Instalar y configurar Odoo 13
Primero, cambie al usuario de Odoo con el siguiente comando:
su - odoo
A continuación, descargue la última versión de Odoo 13 desde el repositorio de Git usando el comando git:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
A continuación, cree un nuevo entorno virtual para la instancia de Odoo 13 con el siguiente comando:
cd /opt/odoo
python3 -m venv odoo13-venv
A continuación, active el entorno virtual con el siguiente comando:
source odoo13-venv/bin/activate
Deberías obtener el siguiente resultado:
(odoo13-venv) [ ~]$
A continuación, instale todos los módulos de Python necesarios para Odoo 13 con el siguiente comando:
pip3 install -r odoo13/requirements.txt
Una vez instalados todos los módulos requeridos, desactive el entorno virtual con el siguiente comando:
deactivate
Finalmente, salga del usuario de Odoo con el siguiente comando:
exit
A continuación, cree un nuevo directorio para almacenar los módulos personalizados de Odoo y los registros de Odoo:
mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log
A continuación, cambie la propiedad de ambos directorios al usuario de odoo con el siguiente comando:
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/
Luego, cree un nuevo archivo de configuración para Odoo 13 usando el siguiente comando:
nano /etc/odoo.conf
Agregue las siguientes líneas:
[options]
admin_passwd =
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo13/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons
Guarde y cierre el archivo cuando haya terminado.
Crear un archivo de servicio Systemd para Odoo 13
A continuación, deberá crear un nuevo archivo de unidad systemd para que Odoo 13 administre el servicio Odoo.
Puedes crearlo con el siguiente comando:
nano /etc/systemd/system/odoo13.service
Agregue las siguientes líneas:
[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service
[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
Guarde y cierre el archivo. Luego, vuelva a cargar el demonio systemd con el siguiente comando:
systemctl daemon-reload
A continuación, inicie el servicio Odoo y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start odoo13
systemctl enable odoo13
También puede verificar el estado de Odoo con el siguiente comando:
systemctl status odoo13
Deberías obtener el siguiente resultado:
? odoo13.service - Odoo13
Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago
Main PID: 17022 (python3)
Tasks: 4 (limit: 12552)
Memory: 63.7M
CGroup: /system.slice/odoo13.service
??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.
De manera predeterminada, Odoo escucha en el puerto 8069. Puede verificarlo con el siguiente comando:
netstat -plntu | grep 8069
Debería ver el siguiente resultado:
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 17022/python3
Configurar Nginx como proxy inverso para Odoo 13
A continuación, deberá instalar y configurar Nginx como un proxy inverso para la instancia de Odoo 13.
Primero, instale el servidor web Nginx con el siguiente comando:
dnf install nginx
Una vez instalado, cree un nuevo archivo de configuración de host virtual con el siguiente comando:
nano /etc/nginx/conf.d/odoo13.conf
Agregue las siguientes líneas:
upstream odoo {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/odoo13.access.log;
error_log /var/log/nginx/odoo13.error.log;
location / {
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;
proxy_redirect off;
proxy_pass http://odoo;
}
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odoo;
}
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
Guarde y cierre el archivo cuando haya terminado. Luego, inicie el servicio Nginx y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:
systemctl start nginx
systemctl enable nginx
Puede verificar el estado del servicio Nginx usando el siguiente comando:
systemctl status nginx
Debería ver el siguiente resultado:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago
Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 17245 (nginx)
Tasks: 3 (limit: 12552)
Memory: 5.4M
CGroup: /system.slice/nginx.service
??17245 nginx: master process /usr/sbin/nginx
??17246 nginx: worker process
??17247 nginx: worker process
Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Configurar cortafuegos
A continuación, deberá permitir que el servicio Nginx a través de firewalld acceda a la instancia de Odoo 13 desde el sistema remoto.
Puede ejecutar el siguiente comando para permitir el servicio Nginx a través de firewalld:
firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload
De manera predeterminada, SELinux está habilitado en CentOS 8. Por lo tanto, deberá permitir HTTP a través de SELinux. Puedes permitirlo con el siguiente comando:
setsebool -P httpd_can_network_connect on
Acceda a la interfaz web de Odoo 13
Ahora, Odoo 13 está instalado y configurado. Es hora de acceder a la interfaz web de Odoo 13.
Abra su navegador web y escriba la URL http://example.com. Será redirigido a la siguiente página:
Ahora, proporcione su Contraseña maestra, Nombre de la base de datos, Correo electrónico, Contraseña, País y haga clic en el botón Crear base de datos. Será redirigido a la página de administración de Odoo 13:
Conclusión
En el tutorial anterior, aprendió cómo instalar y configurar Odoo 13 en el servidor CentOS 8. También aprendió cómo configurar Nginx como un proxy inverso para Odoo 13. Ahora puede personalizar su instancia de Odoo 13 según sus necesidades comerciales.