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 frappeAhora agregue el usuario ‘ frappe ‘ al grupo ‘sudo’ a través del siguiente comando.
sudo usermod -aG sudo frappePor ú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 suSu 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.

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 - frappePara comenzar, ejecute el siguiente comando para actualizar su índice de paquetes de Debian.
sudo apt updateAhora 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-devIngrese y cuando se le solicite y presione ENTER para continuar.

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.tgzDespué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
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/binDeberí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.shAgregue 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 $PATHDeberí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 visudoEn la línea ‘ Defaults secure_path= ‘, agregue la nueva ruta segura de binarios ‘ /usr/local/bin ‘.
Defaults secure_path=....:/usr/local/binGuarde 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 --versionA continuación se muestra una salida similar que recibirá en su terminal.

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 supervisorIngrese y cuando se le solicite y presione ENTER para continuar.

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 nginxSalida:

Verifique el servicio Supervisor.
sudo systemctl is-enabled supervisor
sudo systemctl status supervisorSalida:

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 fail2banIngrese y cuando se le solicite para la confirmación, luego presione ENTER para continuar.


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-serversudo systemctl is-enabled fail2ban
sudo systemctl status fail2banPara 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.

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.

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-devIngrese y cuando se le solicite para la instalación y presione ENTER para continuar.

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 mariadbAhora 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.

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.cnfAgregue 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 = utf8mb4Guarde 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 mariadbA 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-installationCon 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
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 --versionwhich wkhtmltoimage
wkhtmltoimage --versionRecibirá una salida similar a esta: El Wkhtmltopdf v0.12 está instalado en su sistema Debian.

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 bashLuego, recibirá una salida similar a esta.

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
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 yarnAhora debería comenzar la instalación de Node.js y el administrador de paquetes Yarn.

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-benchRecibirá una salida similar a esta durante la instalación del 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 --versionCon 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-benchRecibirá una salida similar a esta durante la instalación del marco frappe.

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

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/frappeCon 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-benchEjecute 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.localPor último, ejecute el siguiente comando para cambiar al nuevo sitio/proyecto ‘ erp.howtoforge.local ‘.
bench use erp.howtoforge.localA continuación se muestra la salida durante la creación del sitio/proyecto y después de que cambió al nuevo sitio/proyecto.

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 erpnextA continuación se muestra una salida similar que recibirá durante el proceso de descarga de ‘ payments ‘.

Y a continuación se muestra el proceso de descarga de la aplicación 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 erpnextRecibirá 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.

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 offEn 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 frappeA continuación se muestra la salida durante la instalación de Ansible.

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

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 nginxDespué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 frappeIngrese y para sobrescribir la configuración actual y presione ENTER para continuar.

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 statusSi 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.

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.

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

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.

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

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

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

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-nginxDespué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.localCon 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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.