ERP Software · 17 min read · Oct 24, 2025

Cómo instalar ERPNext 14 en Debian 11

ERPNext es un sistema ERP (Planificación de Recursos Empresariales) de código abierto que se puede implementar en su negocio. ERPNext se puede implementar en múltiples industrias, como manufactura, distribución, comercio minorista, comercio, servicios, educación, organizaciones sin fines de lucro y atención médica. Además, proporciona módulos como contabilidad, CRM, ventas, compras, sitio web, comercio electrónico, punto de venta, manufactura, 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á escrito principalmente en Python y JavaScript, desarrollado por Frappe Technologies Pvt. ERPNext es una aplicación escrita bajo el marco Frappe, un marco web de código abierto en Python y Javascript.

ERPNext es una alternativa a servicios como NetSuite de Oracle, QAD, Tython, OpenBrave y Odoo. En cuanto a funcionalidad, ERPNext es similar a Odoo (anteriormente OpenERP).

En este tutorial, instalará ERPNext en un servidor Debian 11 y luego asegurará ERPNext con certificados SSL/TLS a través de Certbot y Letsencrypt. También aprenderá a instalar dependencias para ERPNext, como Python 3.10, Redis, Nginx, Supervisor, Fail2ban, MariaDB Server, Node.js y Yarn, y el marco web Frappe.

Requisitos previos

Necesitará algunos requisitos para completar este tutorial:

  • Un servidor Debian 11 - Este ejemplo utiliza un servidor Debian con el nombre de host ‘ erpnext-server ‘.
  • Un usuario no root con privilegios de administrador sudo/root. Ejecutará todos los comandos en esta guía como un usuario no root.
  • Un nombre de dominio apuntado a la dirección IP del servidor.

Ahora pasemos a la instalación.

Configurar nuevo usuario

El primer paso en este tutorial es crear un nuevo usuario que se utilizará para ejecutar la aplicación ERPNext. Además, agregará el nuevo usuario al grupo ‘sudo’ y permitirá que este usuario ejecute comandos con privilegios de root.

Ejecute el siguiente comando para crear un nuevo usuario y configurar la contraseña para el nuevo usuario. En este ejemplo, creará un nuevo usuario ‘ frappe ‘ que se utilizará para ejecutar ERPNext.

sudo useradd -m -s /bin/bash frappe  
sudo passwd frappe

Ahora agregue el usuario ‘ frappe ‘ al grupo ‘sudo’ a través del siguiente comando.

sudo usermod -aG sudo frappe

Por último, verifique el nuevo usuario ejecutando el siguiente comando. Iniciará sesión como el usuario ‘ frappe ‘ y obtendrá privilegios de root a través del comando ‘ sudo su ‘.

su - frappe  
sudo su

Su indicador de terminal debería cambiar a algo como ‘root@hostname:/home/frappe..’. Ahora escriba ‘exit’ para cerrar sesión en el shell de root.

setup user

Con esto, ha creado un nuevo usuario para ERPNext. En los siguientes pasos, instalará Python 3.10 manualmente compilándolo desde la fuente.

Instalando Python 3.10

ERPNext es una aplicación web creada con un marco frappe, que se basa en Python. En el momento de escribir esto, la última versión del marco frappe y ERPNext requería al menos Python 3.10.

En este paso, instalará Python 3.10 manualmente desde la fuente. Debido a que el repositorio actual de Debian 11 aún no proporciona los paquetes de Python 3.10.

Antes de comenzar, asegúrese de que ha iniciado sesión en su servidor Debian como el nuevo usuario ‘ frappe ‘.

su - frappe

Para comenzar, ejecute el siguiente comando para actualizar su índice de paquetes de Debian.

sudo apt update

Ahora ejecute el siguiente comando apt para instalar las dependencias para compilar Python.

sudo apt install wget build-essential libncursesw5-dev libssl-dev \  
     libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev

Ingrese y cuando se le solicite y presione ENTER para continuar.

install dependencies

A continuación, descargue el código fuente de Python 3.10 desde la página de descarga de Python a través del comando wget a continuación. En este ejemplo, descargará e instalará Python 3.10.9.

wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

Después de que se descargue el código fuente de Python, extraiga el código fuente de Python a través del comando tar y muévase al directorio de trabajo.

tar xzf Python-3.10.9.tgz  
cd Python-*/

Ahora ejecute el siguiente comando para compilar Python 3.10 e instalarlo.

./configure --enable-optimizations  
nproc  
sudo make -j2  
sudo make altinstall

download compile python

Después de que finalice la instalación de Python, debería encontrar su binario de Python en el directorio ‘ /usr/local/bin/ ‘. Ejecute el siguiente comando para verificar la instalación de Python 3.10.

ls /usr/local/bin

Debería ver el archivo binario de los paquetes de Python 3.10, como ‘ python3.10 ‘ y ‘ pip3.10 ‘.

A continuación, para asegurarse de que puede ejecutar los nuevos comandos de Python, debe agregar el directorio ‘ /usr/local/bin ‘ a la ruta del sistema y al secure_path de visudo.

Cree un nuevo archivo ‘/etc/profile.d/custom-path.sh’ utilizando el siguiente comando del editor nano.

sudo nano /etc/profile.d/custom-path.sh

Agregue la siguiente línea al archivo.

export PATH=$PATH:/usr/local/bin/

Guarde el archivo y salga del editor.

Ahora ejecute el siguiente comando para cargar el nuevo archivo ‘ /etc/profile.d/custom-path.sh ‘ y verificar la ruta del sistema.

source /etc/profile.d/custom-path.sh  
echo $PATH

Debería ver que el directorio ‘ /usr/local/bin ‘ se ha agregado a la variable de entorno PATH del sistema.

A continuación, ejecute el siguiente comando para editar la configuración de sudoers.

sudo visudo

En la línea ‘ Defaults secure_path= ‘, agregue la nueva ruta segura de binarios ‘ /usr/local/bin ‘.

Defaults secure_path=....:/usr/local/bin

Guarde y salga del editor cuando haya terminado.

Con esto, ahora puede ejecutar el nuevo Python 3.10 a través del comando sudo. Ejecute el siguiente comando para verificar Python3.10 y Pip3.10.

sudo python3.10 --version  
sudo pip3.10 --version

A continuación se muestra una salida similar que recibirá en su terminal.

setup python

Ahora que ha instalado Python 3.10, pase a la siguiente instalación de las dependencias de ERPNext, que son el servidor web Nginx y Supervisor.

Instalando Nginx y Supervisor

Para instalar ERPNext, debe instalar Nginx, que se utilizará como el servidor web predeterminado, y el Supervisor como el administrador de procesos. Ambos paquetes, Nginx y Supervisor, están disponibles en el repositorio de Debian y puede instalar fácilmente ambos paquetes a través de APT.

Ejecute el siguiente comando apt para instalar los paquetes Nginx y Supervisor.

sudo apt install git nginx supervisor

Ingrese y cuando se le solicite y presione ENTER para continuar.

install nginx supervisor

A continuación, ejecute el siguiente comando de utilidad systemctl para verificar ambos servicios Nginx y Supervisor. Esto asegurará que ambos servicios, Nginx y Supervisor, estén en ejecución y habilitados, lo que significa que ambos servicios deberían ejecutarse automáticamente al iniciar.

Verifique el servicio Nginx.

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Salida:

verify nginx

Verifique el servicio Supervisor.

sudo systemctl is-enabled supervisor  
sudo systemctl status supervisor

Salida:

verify supervisor

Con Nginx y Supervisor instalados y en ejecución, pase a la siguiente instalación de Redis Server y Fail2ban.

Instalando Redis y Fail2ban

Redis es una base de datos de clave-valor que se puede utilizar para almacenar datos temporales, como sesiones. Fail2ban es una herramienta de seguridad para bloquear ataques de fuerza bruta contra sus aplicaciones ERPNext.

ERPNext requiere Redis, que se utilizará como el administrador de sesiones, y Fail2ban para bloquear ataques de fuerza bruta en la página de inicio de sesión de usuarios de ERPNext.

Ejecute el siguiente comando apt para instalar Redis y Fail2ban en su servidor Debian.

sudo apt install redis-server fail2ban

Ingrese y cuando se le solicite para la confirmación, luego presione ENTER para continuar.

install redis

install fail2ban

Después de que se instalen Redis y Fail2ban, ejecute el siguiente comando systemctl para verificar ambos servicios.

sudo systemctl is-enabled redis-server  
sudo systemctl status redis-server
sudo systemctl is-enabled fail2ban  
sudo systemctl status fail2ban

Para el servicio Redis, debería ver una salida similar a esta: el servicio Redis está habilitado y se ejecutará automáticamente al iniciar. Y el estado actual de Redis está en ejecución.

verify redis

Para el servicio Fail2ban, debería ver una salida similar a esta: el servicio Fail2ban está habilitado y se ejecutará automáticamente al iniciar. Y el estado actual de Fail2ban está en ejecución.

verify fail2ban

Ahora tiene el servidor Redis y Fail2ban instalados y en ejecución. En los siguientes pasos, instalará y configurará el servidor de base de datos MariaDB.

Instalando y configurando el servidor MariaDB

En la instalación predeterminada, ERPNext utilizará MySQL/MariaDB como el servidor de base de datos. ERPNext requiere una versión específica de MySQL/MariaDB para la instalación.

En este paso, instalará el servidor MariaDB 10.6 desde el repositorio oficial de MariaDB. Luego, agregará configuraciones a su servidor MariaDB y asegurará la implementación del servidor MariaDB.

Ejecute el siguiente comando para agregar el repositorio del servidor MariaDB v10.6.

sudo curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.6"

Recibirá una salida similar a esta.

Ahora ejecute el siguiente comando apt para instalar los paquetes de MariaDB.

sudo apt install mariadb-server mariadb-client default-libmysqlclient-dev

Ingrese y cuando se le solicite para la instalación y presione ENTER para continuar.

install mariadb

Después de que se instale el servidor MariaDB, ejecute el siguiente comando systemctl para verificar el servicio de MariaDB y asegurarse de que el servicio esté habilitado y en ejecución.

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

Ahora debería obtener una salida como la siguiente: el servicio MariaDB está habilitado y se ejecutará automáticamente al iniciar. Y el estado actual del servicio MariaDB está en ejecución.

verify mariadb

A continuación, abra el archivo de configuración del servidor MariaDB ‘/etc/alternatives/my.cnf’ utilizando el siguiente comando del editor nano.

sudo nano /etc/alternatives/my.cnf

Agregue las siguientes líneas al archivo. La configuración a continuación habilitará el formato ‘barruca’ en su servidor MariaDB y también configurará el conjunto de caracteres predeterminado para el servidor y el cliente a ‘ 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  
  
[mysql]  
default-character-set = utf8mb4

Guarde el archivo y salga del editor cuando haya terminado.

Ahora ejecute el siguiente comando systemctl para reiniciar el servicio de MariaDB y aplicar los cambios.

sudo systemctl restart mariadb

A continuación, asegurará su implementación de MariaDB.

Ejecute el siguiente comando ‘ mariadb-secure-installation ‘ para asegurar su implementación de MariaDB. Se le pedirá que configure la contraseña de root de MariaDB, así que asegúrese de ingresar y repetir la nueva contraseña. Para el resto de las configuraciones, ingrese Y para confirmar y presione ENTER.

sudo mariadb-secure-installation

Con esto, ha terminado la instalación y configuración del servidor MariaDB. En el siguiente paso, instalará el paquete wkhtmltopdf que ERPNext utilizará para generar informes PDF.

Instalando el paquete Wkhtmltopdf

En este paso, instalará el paquete Wkhtmltopdf que ERPNext utilizará para generar informes PDF. El Wkhtmltopdf se puede descargar e instalar manualmente a través de un archivo .deb o .rpm. Pero para Debian, puede instalarlo desde el repositorio oficial de Debian a través de APT.

Ejecute el siguiente comando para instalar el paquete wkhtmltopdf. Ingrese Y cuando se le solicite y presione ENTER para continuar.

sudo apt install xvfb libfontconfig wkhtmltopdf

install wkhtmltopdf

Después de que se instale Wkhtmltopdf, ejecute el siguiente comando para verificarlo. El comando wkhtmltopdf se utiliza para convertir la página HTML a PDF, mientras que el wkhtmltoimage convierte la página HTML a varios formatos de imagen.

which wkhtmltopdf  
wkhtmltopdf --version
which wkhtmltoimage  
wkhtmltoimage --version

Recibirá una salida similar a esta: El Wkhtmltopdf v0.12 está instalado en su sistema Debian.

verify wkhtmltopdf

En los siguientes pasos, instalará Node.js y el administrador de paquetes Yarn que se utilizarán para generar archivos estáticos para ERPNext.

Instalando Nodejs 16 y Yarn

La última versión de ERPNext es v14, que requiere al menos Node.js 16 y el administrador de paquetes Yarn. En este paso, instalará Node.js 16 a través del repositorio de Nodesource. Luego, instale el administrador de paquetes Yarn.

Para comenzar, ejecute el siguiente comando para agregar el repositorio de Nodesource para Node.js 16.

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash

Luego, recibirá una salida similar a esta.

add nodesource repo

A continuación, ejecute el siguiente comando para agregar el repositorio de Yarn para la distribución Debian-Linux.

sudo curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null  
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

add yarn repo

Después de eso, actualice y refresque su índice de paquetes de Debian a través del comando ‘apt update’. Luego, instale Node.js y el administrador de paquetes Yarn a través del comando ‘apt install’.

sudo apt update  
sudo apt install nodejs yarn

Ahora debería comenzar la instalación de Node.js y el administrador de paquetes Yarn.

install yarn and nodejs

Cuando se instalen Node.js y Yarn, habrá terminado la instalación de las dependencias de paquetes para el marco web Frappe y la aplicación ERPNext.

Instalando el marco frappe y frappe-bench

ERPNext es un software ERP de código abierto que fue creado con el marco frappe, que está escrito en Python y JavaScript. Para instalar ERPNext, debe instalar el marco frappe en su sistema, y se puede instalar a través de ‘frappe-bench’ o ‘bench’.

Primero, debe instalar el bench. Luego, instale el marco frappe a través del bench. Por último, instalará la aplicación ERPNext dentro del marco frappe.

Para instalar el bench, ejecute el siguiente comando pip3.10 a continuación.

sudo pip3.10 install frappe-bench

Recibirá una salida similar a esta durante la instalación del bench.

install bench

Después de que se instale el bench, ejecute el siguiente comando para verificarlo. Recibirá la ruta binaria del comando ‘ bench ‘ y la versión actual del bench que ha instalado.

which bench  
bench --version

Con el bench instalado, luego instalará el marco frappe. Ejecute el siguiente comando ‘bench’ para instalar el marco frappe en su directorio de trabajo actual. Además, especificará la versión de Python que se utilizará para Python 3.10, especificará la versión del marco frappe a v14, y el directorio de instalación de destino es ‘ frappe-bench ‘.

bench init --python python3.10 --frappe-branch version-14 frappe-bench

Recibirá una salida similar a esta durante la instalación del marco frappe.

install frappeframework via bench

Después de que se instale el marco frappe, debería recibir la siguiente salida al final de la instalación.

frappeframework installed

Por último, ejecute el siguiente comando para permitir que otros usuarios lean y ejecuten el directorio de instalación del marco frappe. Esto es necesario para que el servidor web Nginx pueda leer y ejecutar el marco frappe.

sudo chmod -R o+rx /home/frappe/frappe-bench  
or  
sudo chmod -R o+rx /home/frappe

Con el marco frappe instalado, estará listo para instalar y configurar ERPNext.

Configurar nuevo sitio/proyecto en el marco frappe

Antes de instalar ERPNext, debe crear un nuevo sitio/proyecto en el marco frappe. En este paso, creará un nuevo sitio/proyecto y cambiará el entorno al nuevo proyecto a través del bench.

Primero, mueva su directorio de trabajo a ‘ frappe-bench ‘ a través del comando cd.

cd ~/frappe-bench

Ejecute el comando bench a continuación para crear un nuevo sitio/proyecto para ERPNext. En este ejemplo, creará un nuevo sitio ‘ erp.howtoforge.local ‘, que es el nombre de dominio objetivo de la instalación de ERPNext. Además, durante el proceso de configuración, se le pedirá que configure la contraseña de administrador para su proyecto frappe, así que ingrese su contraseña y repítala. Esta contraseña se utilizará para iniciar sesión en su aplicación ERPNext.

bench new-site erp.howtoforge.local

Por último, ejecute el siguiente comando para cambiar al nuevo sitio/proyecto ‘ erp.howtoforge.local ‘.

bench use erp.howtoforge.local

A continuación se muestra la salida durante la creación del sitio/proyecto y después de que cambió al nuevo sitio/proyecto.

create new site project

Instalando ERPNext a través de frappe-bench

Después de que se cree el nuevo sitio/proyecto en el marco frappe, ejecute el siguiente comando para descargar la aplicación ‘ payments ‘ y la ‘ erpnext ‘. En este ejemplo, descargará ERPNext v14.

bench get-app payments  
bench get-app --branch version-14 erpnext

A continuación se muestra una salida similar que recibirá durante el proceso de descarga de ‘ payments ‘.

download app payments

Y a continuación se muestra el proceso de descarga de la aplicación ERPNext.

download app erpnext

A continuación, ejecute el siguiente comando para instalar la aplicación ERPNext en el sitio/proyecto ‘erp.howtoforge.local ‘.

bench --site erp.howtoforge.local install-app erpnext

Recibirá una salida similar a esta: También debería ver que la aplicación ‘ payments ‘ se instala automáticamente como la dependencia de la aplicación ERPNext.

install erpnext

Por último, ejecute el comando bench a continuación para habilitar el programador y deshabilitar el modo de mantenimiento en el sitio/proyecto ‘erp.howtoforge.local’.

bench --site erp.howtoforge.local enable-scheduler  
bench --site erp.howtoforge.local set-maintenance-mode off

En este punto, la instalación de ERPNext está terminada. Pero, si ejecuta ERPNext en producción, debe configurar y configurar el servidor web Nginx y Supervisor, que se pueden configurar a través del comando bench.

Desplegando ERPNext para producción

Primero, ejecute el siguiente comando para comenzar a configurar el marco frappe y ERPNext para el entorno de producción. Esto instalará Ansible y configurará automáticamente la implementación de ERPNext a través de Ansible.

sudo bench setup production frappe

A continuación se muestra la salida durante la instalación de Ansible.

install dependnecies

A continuación se muestra la salida cuando se completa la configuración.

installation finished

A continuación, ejecute el siguiente comando bench para configurar Nginx y Supervisor para ERPNext. Cuando se le pregunte si desea sobrescribir la configuración actual, ingrese y para confirmar y presione ENTER.

sudo bench setup supervisor  
sudo bench setup nginx

Después de eso, ejecute nuevamente el comando bench a continuación para asegurarse de que la configuración de Supervisor y Nginx esté instalada.

sudo bench setup production frappe

Ingrese y para sobrescribir la configuración actual y presione ENTER para continuar.

reinstall to ensure all installed

Por último, ejecute el siguiente comando ‘supervisorctl’ con privilegios sudo. Esto verificará todos los procesos y servicios que utiliza el marco frappe y ERPNext.

sudo supervisorctl status

Si la instalación de ERPNext es exitosa, debería recibir una salida similar a la siguiente: Todos los servicios para el marco frappe y ERPNext están en ejecución.

verify supervisorctl

En este punto, ha terminado la instalación de ERPNext y está en ejecución con Nginx como servidor web y Supervisor como administrador de procesos. Ahora puede acceder a su instalación de ERPNext a través de su nombre de dominio y el navegador web.

Configurando la instalación de ERPNext

Abra su navegador web y visite el nombre de dominio de su instalación de ERPNext (es decir: http://erp.howtoforge.local /). Luego verá la página de inicio de sesión del marco frappe.

Ingrese el usuario predeterminado ‘ Administrator ‘ e ingrese la contraseña que utilizó durante el proceso de creación del sitio/proyecto.

frappeframeowrk login

Ahora seleccione el idioma predeterminado, la zona horaria y la moneda. Luego haga clic en Siguiente.

erpnext basic configuration

Ingrese el nuevo usuario administrador para su instalación de ERPNext. Ingrese su nombre completo, dirección de correo electrónico y contraseña, luego haga clic en Siguiente.

create admin user

Ingrese el nombre de la empresa y cargue el logotipo de su empresa, luego haga clic en Siguiente.

setup organization

Ingrese detalles sobre su organización y haga clic en Completar configuración.

setup organization

Ahora debería ver el panel de administración de su instalación de ERPNext.

ERPNExt dashboard

Asegurando con certificados SSL/TLS a través de Certbot y Letsencrypt

En este paso, asegurará la implementación de ERPNext con certificados SSL/TLS que se pueden generar utilizando la herramienta Certbot de Letsencrypt. Antes de comenzar, asegúrese de que su nombre de dominio esté apuntado a la dirección IP de su servidor y asegúrese de tener una dirección de correo electrónico que se utilizará para registrarse en Letsencrypt.

Ejecute el siguiente comando apt para instalar la herramienta certbot y el complemento certbot para el servidor web Nginx. Cuando se le solicite, ingrese y para confirmar y presione ENTER para continuar.

sudo apt install certbot python3-certbot-nginx

Después de que se instale certbot, ejecute el siguiente comando certbot para generar certificados SSL para su nombre de dominio ERPNext. Asegúrese de cambiar el nombre de dominio y la dirección de correo electrónico en el siguiente comando.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d erp.howtoforge.local

Con esto, la instalación de ERPNext ahora está asegurada con certificados SSL/TLS a través de Certbot y Letsencrypt. También ha configurado la redirección automática de HTTP a HTTPS en su nombre de dominio ERPNext, que Certbot maneja automáticamente.

Conclusión

En este tutorial, ha aprendido cómo instalar ERPNext, un software ERP de código abierto, en un servidor Debian 11. También aprendió cómo instalar algunas dependencias, como Python 3.10, que se instala manualmente compilando e instalando el código fuente. Instaló otras dependencias en su servidor Debian, como MariaDB, Nginx, Supervisor, Redis y Fail2ban.

También aprendió cómo instalar el marco Frappe y construir ERPNext sobre él. Luego aprendió la configuración básica de ERPNext como software ERP.

Finalmente, configuró ERPNext para producción configurando Nginx como servidor web y Supervisor como administrador de procesos. También aseguró el uso de ERPNext con Certbot y Letsencrypt.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.