Cómo instalar ERPNext en Debian 12
ERPNext es una solución de planificación de recursos empresariales (ERP) de código abierto. ERPNext puede utilizarse en diversos sectores, como fabricación, distribución, venta al por menor, comercio, servicios, educación, organizaciones sin ánimo de lucro y sanidad. También ofrece módulos como contabilidad, CRM, ventas, compras, sitio web, comercio electrónico, punto de venta, fabricación, almacén, gestión de proyectos, inventario y servicios.
ERPNext es una plataforma ERP empresarial licenciada bajo la Licencia Pública General GNU v3. Está escrita principalmente en Python y JavaScript y fue desarrollada por Frappe Technologies Pvt. Ltd. ERPNext es una aplicación escrita bajo frappeframework, un marco web de código abierto en Python y JavaScript.
ERPNext se desarrolló como alternativa a servicios como NetSuite de Oracle, QAD, Tython, OpenBrave y Odoo. En términos de funcionalidad, ERPNext es similar a Odoo (antes OpenERP).
En este tutorial, te guiaremos en la instalación de ERPNext en el servidor Debian 12. Instalarás ERPNext con un servidor de base de datos MariaDB, Nginx como proxy inverso y un gestor de procesos supervisor.
Requisitos previos
Para empezar, asegúrate de que tienes acceso a:
- Un servidor Debian 12.
- Un usuario no root con privilegios de administrador sudo.
- Un nombre de dominio apuntando a la dirección IP del servidor.
Instalación de las dependencias
ERPNext es un software ERP y CRM de código abierto escrito en Python. Para instalar ERPNext, debes instalar dependencias como Python 3, el servidor MariaDB, Node.js, el gestor de paquetes Yarn, Nginx, el gestor de procesos Supervisor y Redis en tu servidor Debian.
En este primer paso, instalarás las dependencias de ERPNext desde el repositorio de Debian. Después, también verificarás cada dependencia para asegurarte de que todo está instalado.
Antes de instalar las dependencias, ejecuta el siguiente comando apt update para actualizar el índice de paquetes de Debian.
sudo apt update
Ahora ejecuta el siguiente comando para instalar las dependencias para ERPNext, incluyendo Python 3.11, Node.js, NPM, servidor MariaDB, servidor web Nginx, gestor de procesos Supervisor y servidor Redis.
sudo apt install python3-dev python3-venv nodejs yarnpkg npm redis-server mariadb-server nginx supervisor fail2ban libffi-dev git python3-pip python3-testresources libssl-dev wkhtmltopdf gcc g++ make
Escribe y para proceder a la instalación.
Una vez instaladas las dependencias, verifica cada una de ellas ejecutando el siguiente comando. Verificarás algunos servicios mediante el comando systemctl para asegurarte de que cada servicio se está ejecutando y está habilitado.
Verifica el servidor MariaDB mediante el siguiente comando.
sudo systemctl is-enabled mariadb sudo systemctl status mariadb
Verifica el servicio Nginx para asegurarte de que el servicio se está ejecutando y está habilitado.
sudo systemctl is-enabled nginx sudo systemctl status nginx
Ahora verifica el servicio del gestor de procesos supervisor utilizando el siguiente comando.
sudo systemctl is-enabled supervisor sudo systemctl status supervisor
A continuación, verifica el Redis para asegurarte de que está disponible y listo para la producción de ERPNext.
sudo systemctl is-enabled redis-server sudo systemctl status redis-server
A continuación, verifica las versiones de Node.js y NPM utilizando el siguiente comando.
node --version npm --version
La siguiente salida confirma que Node.js v18.x y NPM 1.22 están instalados.
Por último, verifica la versión de wkhtmltopdf utilizando el siguiente comando. Deberías ver que está instalada la versión 0.12 de wkhtmltopdf.
wkhtmltopdf --version wkhtmltoimage --version
Configurar el servidor MariaDB
Tras instalar las dependencias, deberás configurar tu servidor MariaDB para asegurarte de que está listo para la instalación de ERPNext. ERPNext requiere que el formato barracuda esté habilitado y el juego de caracteres por defecto configurado a utf8mb4. También asegurarás tu servidor MariaDB mediante la utilidad mariadb-secure-installation.
Ejecuta el siguiente comando mariadb-secure-installation para asegurar la instalación de tu servidor MariaDB.
sudo mariadb-secure-installation
Introduce Y para aplicar cuando se te pregunte con las siguientes configuraciones:
- ¿Cambiar la autenticación local a unix_socket? Introduce n para no.
- ¿Establecer la contraseña raíz de MariaDB? Introduce y, luego escribe la nueva contraseña de root de MariaDB y repite.
- ¿Eliminar el usuario anónimo por defecto? Introduce y para confirmar.
- ¿Desactivar el inicio de sesión remoto para el usuario root? Introduce y para confirmar.
- ¿Eliminar la prueba de base de datos por defecto? Introduce y para confirmar.
- ¿Recargar los privilegios de la tabla y aplicar los cambios? Introduce y para confirmar.
Ahora abre la configuración del Servidor MariaDB /etc/mysql/mariadb.conf.d/50-server.cnf utilizando el siguiente editor nano.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Inserta la siguiente configuración dentro de la sección [mysqld] para activar el formato barracuda y establecer el juego de caracteres por defecto en utf8mb4.
[mysqld] innodb-file-format=barracuda innodb-file-per-table=1 innodb-large-prefix=1 character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, abre el archivo /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf con el editor nano para configurar la conexión del cliente MariaDB.
sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf
Añade la siguiente configuración en la sección [mysql].
[mysql] default-character-set = utf8mb4
Guarda y sal del archivo.
Por último, ejecuta el siguiente comando para reiniciar el servidor MariaDB y aplicar la nueva configuración.
sudo systemctl restart mariadb
Instalación de la herramienta de línea de comandos Bench
Un banco es una línea de comandos también para gestionar Frappe Frameworks, incluyendo aplicaciones y sitios. ERPNext es una aplicación web escrita con Frappe Framework, debes instalarla mediante Bench.
Completa la siguiente sección para crear un nuevo usuario que se utilizará para ERPNext y, a continuación, instala la utilidad Bench en tu sistema Debian.
Primero, ejecuta el siguiente comando para añadir un nuevo usuario frappe, introduce la nueva contraseña y repite.
sudo useradd -m -s /bin/bash frappe sudo passwd frappe
Añade el usuario frappe al grupo sudo para permitirle ejecutar el comando sudo.
sudo usermod -aG sudo frappe
A continuación, inicia sesión como el nuevo usuario frappe e instala el paquete frappe-bench o bench mediante el gestor de paquetes pip Python.
su - frappe sudo pip3 install frappe-bench --break-system-packages
Una vez instalado el frappe-bench, verifícalo utilizando el siguiente comando. En este ejemplo, bench 5.17 está instalado en /usr/local/bin/bench.
which bench bench --version
Instalación de ERPNext mediante Bench
En esta sección, instalarás ERPNext a través de la línea de comandos Bench. Inicializarás el proyecto Frappe Framework, crearás un nuevo sitio y, a continuación, descargarás e instalarás la aplicación ERPNext en el proyecto Frapper.
En primer lugar, ejecuta el comando bench que aparece a continuación para inicializar Frappe Framework 14 en el directorio frappe-bench.
bench init --python python3.11 --frappe-branch version-14 frappe-bench
A continuación deberías ver cómo comienza la instalación de Frappe Framework.
Una vez inicializado, deberías obtener la siguiente salida:
Ahora ejecuta el siguiente comando para permitir a los usuarios ejecutar Frappe Framework. Esto permitirá a grupos como www-data ejecutar el Frappe Framework.
sudo chmod -R o+rx /home/frappe/frappe-bench
A continuación, ve al directorio de instalación de Frappe Framework ~/frappe-bench y crea un nuevo sitio erp.hwdomain.io.
cd ~/frappe-bench bench new-site erp.hwdomain.io --admin-password 'erpadmin' --mariadb-root-username root --mariadb-root-password 'password'
A continuación se muestra la salida que obtendrás una vez creado el nuevo sitio.
Cambia al nuevo sitio erp .hwdomain.io ejecutando el comando bench que aparece a continuación.
bench use erp.hwdomain.io
Una vez cambiado, deberías ver la salida Sitio actual establecido en erp.hwdomain.io.
Ahora ejecuta el comando bench que aparece a continuación para descargar los pagos y las aplicaciones siguientes.
bench get-app payments bench get-app --branch version-14 erpnext
Una vez descargada erpnext, ejecuta el siguiente comando para instalarla en el sitio erp.hwdomain.io. Esto también instalará automáticamente la aplicación de pagos.
bench --site erp.hwdomain.io install-app erpnext
Una vez finalizada la instalación, ejecuta el siguiente comando para activar el programador y desactivar el mantenimiento en el sitio erp.hwdomain.io.
bench --site erp.hwdomain.io enable-scheduler bench --site erp.hwdomain.io set-maintenance-mode off
En este punto, ERPNext está instalado, configurarás ERPNext añadiendo Nginx como proxy inverso y Supervisor como gestor de procesos para tu instalación de ERPNext.
Preparar ERPNext para la producción
En este paso, configurarás ERPNext para producción configurando Nginx como proxy inverso y Supervisor como gestor de procesos, lo que se puede hacer automáticamente a través de Bench.
Ejecuta el siguiente comando para configurar la instalación de ERPNext. Esto descargará e instalará Ansible, y luego configurará Nginx como proxy inverso y el gestor de procesos Supervisor automáticamente.
sudo pip3 install ansible --break-system-packages sudo bench setup production frappe
A continuación se muestra una configuración automática de Nginx y Supervisor para tu instalación de ERPNext.
Si se produce un error, también puedes configurar tanto Nginx como Supervisor utilizando el comando que aparece a continuación.
sudo bench setup supervisor sudo bench setup nginx sudo bench setup production frappe
A continuación, reinicia los servicios Nginx y Supervisor para asegurarte de que se aplican los nuevos cambios.
sudo systemctl restart nginx supervisor
Ahora ejecuta el siguiente comando para verificar el servicio Nginx y asegurarte de que se está ejecutando.
sudo systemctl status nginx
La siguiente salida indica que Nginx se está ejecutando.
Por último, ejecuta el siguiente comando supervisorctl para verificar el proceso list ERPNext con el Supervisor.
sudo supervisorctl status
Si todo va bien, deberías ver cada proceso con el estado RUNNING.
Con Nginx y el Supervisor configurados, estás listo para iniciar la instalación de ERPNext desde tu navegador web.
Instalación de ERPNext a través del Instalador Web
Inicia tu navegador web y visita el nombre de dominio de tu instalación de ERPNext, como http://erp.hwdomain.io/. Si tu instalación de ERPNext se ha realizado correctamente, deberías ver la página de inicio de sesión de ERPNext.
Introduce el usuario predeterminado Administrador y la contraseña que hayas configurado y, a continuación, haz clic en Iniciar sesión.
Selecciona el idioma, la zona horaria, el país y la moneda predeterminados. A continuación, haz clic en Siguiente para continuar.
Ahora introduce los datos de tu primer usuario de ERPNext y haz clic en Siguiente.
Por último, introduce los datos de tu organización y haz clic en el botón Finalizar instalación para completar la instalación de ERPNExt.
Si la instalación se ha realizado correctamente, deberías obtener el panel de control de ERPNext como el siguiente:
Ahora la instalación de ERPNext ha finalizado.
Conclusión
¡Enhorabuena! Has finalizado la instalación de ERPNext en Debian 12 con el servidor MariaDB y el servidor web Nginx. Has instalado ERPNext mediante la línea de comandos Bench en tu servidor Debian, y ahora puedes utilizar ERPNext como planificación de recursos empresariales para tu organización.