El autor seleccionó a Software in the Public Interest para recibir una donación como parte del programa Write for DOnations.
ERPNext es un conjunto de programas de Planeación de recursos empresariales (ERP) que aprovecha la potencia y la flexibilidad de las tecnologías de código abierto. Se destaca en la gestión de los principales procesos empresariales, como los de finanzas, ventas, recursos humanos, fabricación, compras, servicios, necesidades de asistencia y más. Estos son algunos de los beneficios de implementar un sistema como ERPNext:
ERPNext está basado en Frappe, un marco de aplicaciones web de pila completa escrito en Python que aprovecha al máximo el entorno de ejecución de Node/JavaScript y utiliza MariaDB como su backend de base de datos. Una de las diversas ventajas de las aplicaciones basadas en Frappe, como ERPNext, es la utilidad de línea de comandos bench. La CLI de banco les ahorra tiempo a los administradores mediante la automatización de tareas como la instalación, la actualización, la configuración y la administración de varios sitios de Frappe/ERPNext.
En este tutorial, instalará y configurará una pila ERPNext en un servidor con Ubuntu 20.04. Esto le permitirá configurar su pila para diversos entornos de desarrollo o producción de acuerdo con sus necesidades y lo preparará para crear una arquitectura más compleja y tolerante a errores.
sudo
no root. Puede configurar su servidor y su usuario siguiendo nuestra Guía de configuración inicial de servidores para Ubuntu 20.04.Nota: Al seleccionar las especificaciones de su servidor, tenga en cuenta que los sistemas ERP realizan un uso intensivo de recursos. Esta guía indica que se requiere un servidor con 4 GB de RAM, lo suficiente para casos de uso básico, pero los requisitos de hardware específicos pueden variar dependiendo de la cantidad de usuarios y el tamaño de su empresa.
your_domain
en todo momento.Si bien la configuración del firewall para entornos de desarrollo es opcional, es una práctica de seguridad obligatoria para los entornos de producción.
Deberá abrir los siguientes puertos en su servidor ERPNext:
80/tcp
y 443/tcp
para HTTP y HTTPS respectivamente3306/tcp
para la conexión con MariaDB (se recomienda solo si necesita acceso remoto a la base de datos)143/tcp
y 25/tcp
para IMAP y STMP respectivamente22/tcp
para SSH (si todavía no ha habilitado OpenSSH
en los ajustes de UFW)8000/tcp
para probar su plataforma antes de implementarla en producciónPara abrir varios puertos de vez, puede usar el siguiente comando:
- sudo ufw allow 22,25,143,80,443,3306,8000/tcp
De forma alternativa, puede permitir conexiones de direcciones IP específicas en puertos determinados utilizando este comando:
- sudo ufw allow from server_IP to any port port_number
Después de abrir todos los puertos necesarios, habilite el firewall:
- sudo ufw enable
Ahora, confirme el estado de su firewall:
- sudo ufw status
UFW mostrará una lista de sus reglas habilitadas. Asegúrese de que los puertos necesarios de ERPNext estén abiertos:
OutputStatus: active
To Action From
-- ------ ----
22,25,80,143,443,3306,8000/tcp ALLOW Anywhere
22,25,80,143,443,3306,8000/tcp (v6) ALLOW Anywhere (v6)
Para obtener más información sobre la configuración de UFW, consulte nuestra guía sobre cómo configurar un firewall con UFW en Ubuntu 20.04.
La configuración de un firewall adecuado es el primero de dos pasos preliminares. Ahora, configurará la asignación de teclado y la codificación de caracteres en su servidor.
Es sumamente recomendable configurar la asignación de teclado para la consola, así como el idioma y la codificación de caracteres de su host. Esto es necesario para evitar posibles problemas durante el proceso de instalación de ERPNext 12. Tenga en cuenta que estos ajustes afectan únicamente la configuración regional del sistema y no están relacionados con el idioma de la IU de su plataforma de ERPNext.
Primero, actualice su servidor:
- sudo apt update
Ahora, configure la asignación de teclado, el idioma y la codificación de caracteres:
- sudo localectl set-keymap us && sudo localectl set-locale LANG=en_US.utf8
Ubuntu 20.04 y otras distribuciones Linux usan la utilidad localectl
para controlar y modificar los ajustes de configuración regional y distribución del teclado de todo el sistema antes de que el usuario inicie sesión, que es exactamente lo que requiere ERPNext 12.
También deberá agregar las siguientes líneas a su archivo /etc/environment
. Utilice nano
o su editor de texto preferido para abrir el archivo:
- sudo nano /etc/environment
Ahora, agregue el siguiente contenido:
LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LANG=en_US.UTF-8
Guarde y cierre el archivo.
Reinicie su servidor para aplicar todos los cambios:
- sudo reboot
Espere unos minutos hasta que el servidor se reinicie y, luego, utilice ssh
para volver a ingresar su instancia. Ya está listo para instalar su base de datos.
Ahora, añadirá MariaDB a su pila de servidores. ERPNext 12 requiere MariaDB 10.2, o una versión posterior, para funcionar correctamente. Como Ubuntu 20.04 incluye MariaDB 10.3 en sus repositorios oficiales, puede instalar esta versión usando el comando apt
:
- sudo apt install mariadb-server
De forma alternativa, si prefiere instalar una versión de MariaDB más reciente, puede seguir el paso 3 de nuestra guía sobre cómo instalar una pila ERPNext en Ubuntu 18.04. Este paso lo guiará a través del asistente del repositorio en línea de MariaDB, lo que lo ayudará a instalar la versión más reciente: MariaDB 10.5.
Después de instalar mariadb-server
, instale los siguientes paquetes:
- sudo apt install python3-mysqldb libmysqlclient-dev
ERPNext 12 es una aplicación de Python y, por lo tanto, requiere la biblioteca python3-mysqldb
para la administración de la base de datos. Se requiere libmysqlclient-dev
para acceder a ciertas características de desarrollo de MariaDB.
A continuación, añada una capa de seguridad adicional al servidor de MariaDB ejecutando la secuencia de comandos mysql_secure_installation
:
- sudo mysql_secure_installation
La secuencia de comandos mysql_secure_installation
le realizará varias preguntas:
ENTER
.N
. Se recomienda usar la contraseña predeterminada junto con la autenticación de Unix en los sistemas basados en Ubuntu, dado que la cuenta root está estrechamente relacionada con tareas automatizadas de mantenimiento del sistema.Y
a todas estas preguntas.Después de completar la secuencia de comandos mysql_secure_installation
, MariaDB comenzará a ejecutarse utilizando su configuración predeterminada. En la instalación estándar de ERPNext, se utiliza el usuario root de MariaDB para todas las operaciones de la base de datos. Si bien este enfoque puede ser conveniente en las configuraciones de servidores individuales, no se considera una buena práctica de seguridad. Por tanto, en la siguiente sección, aprenderá a evitar este problema al crear un nuevo usuario con privilegios especiales.
ERPNext espera utilizar el usuario root de MariaDB, para administrar las conexiones con la base de datos, pero esto no siempre es ideal. Para solucionar esta limitación y permitir administrar MariaDB a un usuario non-root, ahora, creará una base de datos con el nombre del usuario de forma manual. Luego, podrá asignarle privilegios especiales al usuario nuevo para que pueda realizar operaciones en la base de datos de ERPNext.
Abra la línea de comandos de MariaDB:
- sudo mysql
Ahora, cree una nueva base de datos nueva con el nombre del usuario al que desea asignar las conexiones de MariaDB. En este tutorial, se utilizará sammy
, pero puede seleccionar un nombre diferente:
- CREATE DATABASE sammy;
Confirme que la base de datos se haya creado utilizando esta instrucción SQL:
- SHOW DATABASES;
Verá un resultado similar a este:
Output+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sammy |
+--------------------+
Ahora, cree el usuario de MariaDB, sammy
, con privilegios similares al del usuario root y asígnele la contraseña segura que desee. Conserve la contraseña en un lugar seguro; la necesitará más adelante:
- GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'%' IDENTIFIED BY 'mariadb_password' WITH GRANT OPTION;
Ahora, confirme tanto la creación del usuario como los privilegios del usuario nuevo:
- SELECT host, user, Super_priv FROM mysql.user;
Verá un resultado similar a este:
Output+-----------+-------+------------+
| Host | User | Super_priv |
+-----------+-------+------------+
| localhost | root | Y |
| localhost | mysql | Y |
| % | sammy| Y |
+-----------+-------+------------+
3 rows in set (0.001 sec)
A continuación, ejecute la operación flush privileges para aplicar todos los cambios:
- FLUSH PRIVILEGES;
Cuando termine, salga de la sesión:
- exit
Ahora que ha creado un usuario de la base de datos, solo deberá ajustar MariaDB para garantizar el funcionamiento correcto de ERPNext 12. Afortunadamente, el equipo de ERPNext proporciona una excelente plantilla de configuración que utilizará como punto de partida para su implementación. En la siguiente sección, aprenderá a configurar correctamente la base de datos de MariaDB utilizando esa plantilla.
Ahora que instaló y aseguró MariaDB, es momento de configurarlo para las conexiones con ERPNext.
Primero, detenga mariadb.service
:
- sudo systemctl stop mariadb
Ahora, utilice nano
o el editor de texto que prefiera para crear un archivo de configuración de MariaDB, denominado mariadb.cnf
:
- sudo nano /etc/mysql/mariadb.conf.d/mariadb.cnf
A continuación, añada la plantilla de configuración oficial de ERPNext:
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysql/mysql.pid
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 256M
max-connect-errors = 1000000
innodb = FORCE
# DATA STORAGE #
datadir = /var/lib/mysql/
# BINARY LOGGING #
log-bin = /var/lib/mysql/mysql-bin
expire-logs-days = 14
sync-binlog = 1
# REPLICATION #
server-id = 1
# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 50
open-files-limit = 65535
table-definition-cache = 4096
table-open-cache = 10240
# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 5462M
innodb-file-format = barracuda
innodb-large-prefix = 1
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
character-set-client-handshake = FALSE
max_allowed_packet = 256M
# LOGGING #
log-error = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes = 0
slow-query-log = 1
slow-query-log-file = /var/lib/mysql/mysql-slow.log
# CONNECTIONS #
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
bind-address = 0.0.0.0
[mysql]
default-character-set = utf8mb4
[mysqldump]
max_allowed_packet=256M
Guarde y cierre el archivo. Para obtener información más detallada sobre estas configuraciones, consulte este archivo de plantilla en el repositorio de Github de ERPNext. Es un punto de partida útil para explorar estas opciones.
El archivo de configuración, /etc/mysql/mariadb.conf.d/mariadb.cnf
, complementa y también anula algunos de los valores incluidos en la configuración predeterminada de MariaDB, ubicada en /etc/mysql/my.cnf
. Este archivo le proporciona una plantilla específica que mejora en gran medida el desempeño de la base de datos de ERPNext. Sin embargo, tenga en cuenta que, si bien esta plantilla es un excelente punto de partida, puede mejorar aún más el desempeño de MariaDB al ajustar estos parámetros para adaptarlos a sus necesidades.
Como ERPNext utiliza la conexión con la base de datos prácticamente para todas sus operaciones internas, es conveniente probar la conexión antes de continuar.
Inicie mariadb.service
:
- sudo systemctl start mariadb
Para probar la conexión, puede usar el siguiente comando. Recuerde sustituir sammy
y mariadb_password
con sus credenciales:
- mysql --user sammy --password mariadb_password --host=localhost --protocol=tcp --port=3306 test
Verá un resultado que muestra el contenido de ayuda básico de MariaDB y varios parámetros. Esto significa que su conexión se estableció correctamente:
Outputmysql Ver 15.1 Distrib 10.4.13-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Usage: mysql [OPTIONS] [database]
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
...
--ssl-verify-server-cert
Verify server's "Common Name" in its cert against
hostname used when connecting. This option is disabled by
default.
-t, --table Output in table format.
--tee=name Append everything into outfile. See interactive help (\h)
also. Does not work in batch mode. Disable with
--disable-tee. This option is disabled by default.
-u, --user=name User for login if not current user.
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
-v, --verbose Write more. (-v -v -v gives the table output format).
...
max-join-size 1000000
secure-auth FALSE
show-warnings FALSE
plugin-dir (No default value)
default-auth (No default value)
binary-mode FALSE
connect-expired-password FALSE
Si necesita modificar los ajustes de MariaDB o corregir errores, recuerde volver a cargar el servicio utilizando el siguiente comando:
- sudo systemctl restart mariadb
Cuando haya terminado, habilite MariaDB:
- sudo systemctl enable mariadb
Ahora que ha probado la conexión con la base de datos, puede proceder con la instalación de su aplicación ERPNext.
Ahora que el backend de su base de datos está listo, puede seguir configurando su aplicación web ERPNext. En esta sección, aprenderá a instalar y configurar todos los componentes que requiere ERPNext 12 e instalará la aplicación.
Comience por preparar el servidor con todos los paquetes del sistema que requiere ERPNext 12. Instale las dependencias de todo el sistema utilizando el siguiente comando:
- sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential python3-testresources python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libdate-manip-perl logwatch
La variable DEBIAN_FRONTEND=noninteractive
se ha trasladado al comando de instalación para evitar los mensajes de Postfix. Para obtener información detallada sobre la configuración de Postfix, consulte nuestra guía Cómo instalar y configurar Postfix en Ubuntu 20.04.
A continuación, actualice pip3
, el administrador de paquetes estándar de Python, e instale las versiones más recientes de tres módulos de Python adicionales:
- sudo -H python3 -m pip install --upgrade setuptools cryptography psutil
setuptools
facilita la instalación y la actualización de los paquetes de Python, cryptography
añade capacidades de cifrado a su pila y psutil
ayuda a supervisar el sistema. Ahora que ha instalado todas las dependencias globales necesarias, instalará todos los servicios y las bibliotecas que requiere ERPNext 12.
ERPNext 12 funciona con la versión 8, o una más reciente, del entorno de servidor de Node.js. De hecho, a la fecha de redacción de este artículo, la secuencia de comandos oficial de ERPNext easy_install
utiliza Node 8. Sin embargo, desde una perspectiva de seguridad, es conveniente instalar una versión más reciente, dado que Node 8 llegó al final de su vida útil (EOL) en 2020 y, por lo tanto, no se lanzarán más parches de seguridad. A la fecha de redacción de este artículo, Ubuntu 20.04 contiene la versión 10.19 de Node.js. Si bien esta versión se sigue manteniendo, por motivos similares (su vida útil finaliza en menos de un año) es sumamente recomendable evitar usarla. En esta guía, se instalará la versión 12 LTS de Node.js junto con los administradores de paquetes correspondientes npm
y yarn
. Tenga en cuenta que el marco de trabajo de Frappe utiliza yarn
para la instalación de dependencias. Si decide utilizar un método de instalación alternativo, asegúrese de que la versión 1.12+ de yarn
quede instalada en su sistema.
Añada el repositorio de NodeSource a su sistema:
- curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
Ahora, puede revisar el contenido de la secuencia de comandos descargada:
- sudo nano nodesurce_setup.sh
Cuando esté satisfecho con el contenido de la secuencia de comandos, proceda a ejecutarla:
- sudo bash nodesource_setup.sh
Esta secuencia de comandos actualizará automáticamente la lista apt
. Ahora, puede instalar nodejs
en su servidor:
- sudo apt install nodejs
A continuación, instale yarn
de forma global utilizando el administrador de paquetes npm
:
- sudo npm install -g yarn
Ahora que tiene Node instalado, puede proceder con la configuración de wkhtmltopdf
para su plataforma.
ERPNext utiliza la herramienta de código abierto wkhtmltopdf
para convertir contenido de HTML a PDF utilizando el motor de representación Qt WebKit. Esta característica se utiliza principalmente para imprimir facturas, cotizaciones y otros informes. ERPNext 12 requiere una versión específica de wkhtmltopdf
: 0.12.5
con Qt corregido.
Para instalar wkhtmltopdf
, comience por cambiar a un directorio adecuado para descargar el paquete, en este caso /tmp
:
- cd /tmp
Descargue la versión adecuada de wkhtmltopdf
y el paquete correspondiente para Ubuntu 20.04 de la página del proyecto:
- wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
Ahora, instale el paquete utilizando la herramienta dpkg
:
- sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
A continuación, copie todos los ejecutables pertinentes a su directorio /usr/bin/
:
- sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
Cuando los archivos estén en su lugar, cambie sus permisos para que se puedan ejecutar:
- sudo chmod a+x /usr/bin/wk*
Ahora que wkhtmltopdf
está instalado correctamente, añada Redis a la pila de su base de datos.
ERPNext 12 utiliza Redis para mejorar el desempeño de MariaDB. Específicamente, Redis ayuda con el almacenamiento en caché.
Primero, instale Redis desde el repositorio oficial de Ubuntu 20.04:
- sudo apt install redis-server
A continuación, habilite Redis en el inicio:
- sudo systemctl enable redis-server
Ahora que ha añadido Redis a su pila, vamos a tomarnos un momento para resumir lo que ha logrado hasta ahora. Hasta este punto, ha instalado todos los componentes principales que requiere ERPNext 12, que son los siguientes:
wkhtmltopdf
Ya sea que esté instalando el sistema ERP para un entorno de desarrollo o de producción, está listo para continuar con el siguiente paso: instalar el marco de pila completa de Frappe y la aplicación web ERPNext 12.
Ahora que ha instalado todos los requisitos de pila de ERPNext, puede aprovechar la flexibilidad de la utilidad de línea de comandos bench
de Frappe. La CLI bench
se diseñó con el objetivo de ayudar a los usuarios en el proceso de instalación, configuración y administración de aplicaciones basadas en el marco de trabajo Frappe, como ERPNext. En las siguientes secciones, instalará la CLI bench
y, luego, la utilizará para completar el proceso de configuración de ERPNext 12.
Asegúrese de que el usuario de Frappe (en este caso, sammy
) tenga los derechos apropiados en su directorio home
:
- sudo chown sammy -R /home/sammy
Ahora, clone el repositorio frappe/bench
y colóquelo su directorio de inicio. Recuerde sustituir sammy
con su nombre de usuario del sistema:
- git clone https://github.com/frappe/bench /home/sammy/.bench --depth 1 --branch master
Instale la CLI bench
:
- sudo pip3 install -e /home/sammy/.bench
En esta guía, se asume que está instalando ERPNext 12 para escenarios de prueba o producción y, por lo tanto, está utilizando la rama master
. Pero si tiene la intención de desarrollar aplicaciones o módulos de ERPNext personalizados, la rama develop
podría ser una mejor opción. En cualquier caso, está listo para instalar el marco de trabajo Frappe. Este será su último paso antes de instalar ERPNext.
En esta sección, creará un entorno de Frappe utilizando la CLI bench
.
Durante la instalación de Frappe, puede exceder el límite del monitor de archivos de Ubuntu, que está establecido en 8192 por defecto. Para evitar este problema, establezca un límite superior utilizando el siguiente comando:
- echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
El comando tee
adjuntará el contenido de su comando echo
al archivo invocado y también imprimirá el resultado en su consola.
A continuación, inicie Frappe Framework 12. Sustituya a Sammy por su nombre de usuario del sistema:
- bench init /home/sammy/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3
Durante la ejecución, puede ver un error sobre su ruta y varias advertencias. Deje que el proceso continúe hasta el final. Cuando haya terminado, verá un resultado similar al siguiente, lo que indica que su entorno se creó correctamente:
Output...
Done in 82.23s.
INFO:bench.utils:setting up backups
no crontab for sammy
SUCCESS: Bench /home/sammy/frappe-bench initialized
Nota: el proceso bench init
puede detenerse si se encuentra un error spawn ENOMEM
. Este error se provoca cuando su sistema se queda sin memoria. Para continuar, debe solucionarlo instalando más memoria física o asignando espacio SWAP.
Analicemos con mayor detalle el comando utilizado para crear el entorno:
/home/sammy/frappe-bench
es la ruta donde se instalarán Frappe Framework, los sitios web y las aplicaciones relacionadas. En este ejemplo, se creará un nuevo directorio, denominado frappe-bench
, para alojar todos los archivos necesarios.-frappe-path
apunta al repositorio de Frappe, que, en este caso, es el repositorio oficial de Github.--frappe-branch
es la versión de Frappe que se instalará. Como desea instalar ERPNext 12, la versión seleccionada es Frappe 12.--python
es la versión de Python que se utilizará. ERPNext 12 requiere Python 3.6 o superior. Sin embargo, las versiones anteriores siguen utilizando Python 2.7.Para obtener más información sobre los comandos de la CLI bench
, consulte la Hoja de trucos de comandos de Bench.
La flexibilidad que ofrece el marco de trabajo de Frappe va mucho más allá del uso de entornos aislados. También puede crear distintos sitios web e instalar aplicaciones en ellos.
En esta sección, configurará un sitio basado en Frappe e instalará la aplicación ERPNext 12 en él.
Posiciónese en el directorio donde se inició Frappe.
- cd /home/sammy/frappe-bench
Antes de continuar, deberá instalar versiones específicas de las bibliotecas de Python numpy
y pandas
en el entorno virtual de Frappe. Instalar estos paquetes utilizando el siguiente comando:
- ./env/bin/pip install numpy==1.18.5 && ./env/bin/pip install pandas==0.24.2
En este punto, es posible que la instalación se detenga por unos 10 a 20 minutos y vea este mensaje:
Output...
Building wheel for pandas (setup.py) ... -
Esto tiene que ver con un error relacionado con pandas
y Ubuntu 20.04, que, a la fecha de redacción de este artículo, es bastante nuevo. De todos modos, los paquetes se crearán y, una vez que se completen, verá un resultado similar a este:
Output...
Successfully built pandas
Installing collected packages: pandas
Successfully installed pandas-0.24.2
Ahora, puede continuar con la instalación. Descargue ERPNext 12 desde su repositorio utilizando la CLI bench
:
- bench get-app erpnext https://github.com/frappe/erpnext --branch version-12
A continuación, cree el sitio nuevo, sustituyendo your_domain
por el dominio que haya asociado con la IP de este servidor:
- bench new-site your_domain --admin-password 'erpnext_admin_password' --mariadb-root-username sammy --mariadb-root-password 'mariadb_password'
Tomémonos un momento para revisar las opciones utilizadas en el comando anterior:
bench new-site
crea un sitio nuevo basado en Frappe Framework.your_domain
es el nombre del sitio nuevo. Asegúrese de que el DNS de su dominio tenga un registro A apuntado a la IP de su servidor.<^>erpnext_admin_password<^>** es la contraseña deseada para el usuario **administrador
de ERPNext. Conserve esta contraseña en un lugar seguro; la necesitará en breve.mariadb_password
es la contraseña que creó al principio de la guía para el usuario de MariaDB sammy
.A continuación, instale la aplicación ERPNext en el sitio:
- bench --site your_domain install-app erpnext
Cuando la instalación se haya completado, tendrá una aplicación ERPNext 12 en funcionamiento. Ahora, vamos a probarla utilizando un comando bench
:
- bench start
El comando anterior iniciará una consola de monitoreo en tiempo real que le mostrará varios mensajes relacionados con el servidor web y otros servicios. Abra un navegador web y diríjase a localhost:8000
(para instalaciones locales) o your_domain:8000
(si está utilizando un servidor remoto). Verá la pantalla de inicio de sesión de ERPNext (procederemos con el inicio de sesión y la configuración en un paso posterior, una vez que el sitio esté listo para producción).
Después de consultar su implementación de prueba, regrese a su terminal y presione CTRL+C
. De esta manera, detendrá ERPNext y saldrá de la consola de monitoreo.
Si su objetivo principal es crear módulos o modificar ERPNext 12, puede detenerse en este punto. No se requieren más componentes para fines de desarrollo. Sin embargo, si necesita un sistema listo para producción que no requiera inicialización manual, deberá instalar y configurar algunos componentes adicionales. Este será su siguiente paso.
Si bien su aplicación ERPNext 12 está lista, el sistema en su conjunto todavía no está preparado para producción. Para garantizar la fiabilidad y la seguridad de ERPNext, deberá habilitar algunos servicios adicionales:
8000
al puerto 80
(HTTP) o 443
(HTTPS).Hasta este punto, ha instalado y configurado ERPNext 12 de forma manual, lo que le ha permitido personalizar el proceso para adaptarlo cualquier caso de uso en particular. Sin embargo, durante el resto de la configuración de producción, puede aprovechar la conveniencia de la CLI bench
y dejar que automatice la instalación y la configuración de estos servicios restantes.
Asegúrese de estar posicionado en el directorio de trabajo de Frappe:
- cd /home/sammy/frappe-bench
Ahora, utilice el siguiente comando para finalizar la configuración de ERPNext 12 para producción:
- sudo bench setup production sammy --yes
El comando anterior instala y configura Nginx, Supervisor y Fail2Ban y establece a sammy
como propietario del entorno de producción.
Estos son los archivos de configuración que crea el comando bench
:
/etc/nginx/nginx.conf
y /etc/nginx/conf.d/frappe-bench.conf
/etc/fail2ban/jail.d/nginx-proxy.conf
y un filtro situado en /etc/fail2ban/filter.d/nginx-proxy.conf
Estas configuraciones predeterminadas bastarán para este tutorial, pero siéntase en libertad de explorar y ajustar estos archivos para adaptarlos a sus requisitos. Puede detener todos los servicios con el siguiente comando:
- sudo supervisorctl stop all
Y, luego, cuando esté listo, puede reiniciar sus servicios:
- sudo supervisorctl start all
Ahora, está listo para probar su instalación.
Primero, verifique que se estén ejecutando los servicios de producción esenciales. Utilice el siguiente comando systemctl
y, luego, canalícelo a grep
:
- systemctl list-unit-files | grep 'fail2ban\|nginx\|supervisor'
Verá un resultado similar a este:
Outputfail2ban.service enabled
nginx.service enabled
supervisor.service enabled
Una vez que haya confirmado que todo funciona adecuadamente, puede probar ERPNext 12 en su servidor activo. Abra el navegador que prefiera y navegue a your_domain o a la ubicación en la que esté alojada su aplicación ERPNext 12.
Después de unos segundos, debería ver la pantalla de inicio de sesión de ERPNext 12. Utilice el nombre de usuario (correo electrónico) Administrator y la contraseña erpnext_admin_password
que creó anteriormente.
En la siguiente pantalla, verá un menú desplegable en el que puede seleccionar el idioma de la IU para la aplicación:
Tras la selección de idiomas, ERPNext le solicitará que indique su país, zona horaria y moneda:
Una vez que haya completado la información de su región, podrá crear su primer usuario de ERPNext. La información que proporcione se utilizará en las credenciales de inicio de sesión del usuario.
En la siguiente pantalla, se le preguntará sobre lo que ERPNext denomina Dominios. Si no está seguro de cuál es su dominio, seleccione Distribution y haga clic en el botón Next.
A continuación, deberá proporcionar el nombre de la empresa y una abreviatura.
En la última pantalla, ERPNext le pedirá que indique la actividad de su empresa, el nombre de su banco, el tipo de plan de cuentas y el período del año fiscal. Podrá ingresar a bancos adicionales más adelante. Por ahora, complete todos los campos que desee y, luego, haga clic en el botón Complete Setup.
A continuación, verá una barra de progreso.
Una vez que se haya completado el proceso de configuración, verá el panel de control principal de ERPNext 12.
Ha instalado y configurado por completo una aplicación ERPNext 12.
Ahora que ha instalado correctamente su aplicación ERPNext 12, es posible que desee comenzar a implementar el sistema para las necesidades de su empresa. Una buena manera de comenzar a hacerlo es hacer clic en el botón Getting Started del panel de control de ERPNext. ERPNext lo ayudará a configurar la plataforma para todas sus necesidades empresariales y de comercio electrónico.
Es posible que también desee aumentar la velocidad de ERPNext. Si es así, puede consultar información sobre los ajustes de desempeño de ERPNext, que lo orientará sobre las mejores prácticas y cómo depurar problemas relacionados con el desempeño.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.