Cómo instalar ERPNext en Ubuntu 18.04 LTS

ERPNext es un software de gestión empresarial gratuito, de código abierto, moderno y fácil de usar, utilizado por miles de empresas de todo el mundo. Es una plataforma ERP muy sencilla que admite los sectores minorista, comercial, de servicios, manufacturero, de recursos humanos, sin ánimo de lucro y otros. Es un sistema ERP potente y con todas las funciones, escrito en Python sobre el framework Frappe. Utiliza Node.js para el front-end y MariaDB para almacenar sus datos. ERPNext proporciona una interfaz basada en web para realizar las tareas cotidianas. ERPNext proporciona un sistema de generación de informes integrado con la suite ofimática.

En este tutorial, aprenderemos a instalar y configurar ERPNext en un servidor Ubuntu 18.04 LTS.

Requisitos

  • Un servidor con Ubuntu 18.04.
  • Un usuario no root con privilegios sudo configurado en tu servidor.

Cómo empezar

En primer lugar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:

sudo apt-get update -y
sudo apt-get upgrade -y

Una vez actualizado tu sistema, tendrás que crear un usuario para ERPNext.

Puedes hacerlo con el siguiente comando:

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

A continuación, otorga privilegios sudo al usuario ERPNext con el siguiente comando:

sudo usermod -aG sudo erpnext

A continuación, inicia sesión con el usuario ERPNext y configura la variable de entorno con el siguiente comando:

su - erpnext
nano .bashrc

Añade la siguiente línea:

PATH=$PATH:~/.local/bin/

Guarda y cierra el archivo cuando hayas terminado. A continuación, reinicia el sistema para aplicar todos los cambios.

Instalar los paquetes necesarios

En primer lugar, inicia sesión en tu sistema con el usuario erpnext e instala en tu sistema algunas dependencias necesarias para ERPNext.

sudo apt-get install libffi-dev python-pip python-dev libssl-dev wkhtmltopdf -y

A continuación, instala Nginx y el servidor MariaDB con el siguiente comando:

sudo apt-get install nginx mariadb-server -y

Una vez finalizada la instalación, deberás realizar algunos cambios en el archivo 50-server.cnf. Puedes hacerlo con el siguiente comando:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Realiza los siguientes cambios:

[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

Guarda y cierra el archivo. A continuación, reinicia el servicio MariaDB para aplicar todos los cambios:

sudo systemctl restart mariadb

Ahora puedes comprobar el estado del servidor MariaDB con el siguiente comando:

sudo systemctl status mariadb

Deberías ver la siguiente salida:

? mariadb.service - MariaDB 10.1.38 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2019-02-16 06:26:48 UTC; 2h 38min ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 4640 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 4636 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
  Process: 4505 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-
  Process: 4503 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 4482 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
 Main PID: 4607 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 1111)
   CGroup: /system.slice/mariadb.service
           ??4607 /usr/sbin/mysqld

Aug 16 06:26:47 ubuntu1804 systemd[1]: Starting MariaDB 10.1.38 database server...
Aug 16 06:26:48 ubuntu1804 mysqld[4607]: 2019-02-16  6:26:48 140715015396480 [Note] /usr/sbin/mysqld (mysqld 10.1.38-MariaDB-0ubuntu0.18.04.1) starting
Aug 16 06:26:48 ubuntu1804 systemd[1]: Started MariaDB 10.1.38 database server.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4642]: Upgrading MySQL tables if necessary.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: Looking for 'mysql' as: /usr/bin/mysql
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4659]: This installation of MySQL is already upgraded to 10.1.38-MariaDB, use --force if you still n
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4677]: Checking for insecure root accounts.
Aug 16 06:26:48 ubuntu1804 /etc/mysql/debian-start[4681]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

Instalar Redis y Node.js

A continuación, tendrás que instalar Redis y Node.js en tu sistema. Puedes instalarlos ejecutando el siguiente comando:

sudo curl --silent --location https://deb.nodesource.com/setup_8.x | sudo bash -
sudo apt-get install gcc g++ make -y
sudo apt-get install nodejs redis-server -y
sudo npm install -g yarn

Configurar MariaDB

Por defecto, la instalación de MariaDB no está protegida, así que primero tendrás que protegerla. Puedes asegurarla con el siguiente comando:

sudo mysql_secure_installation

Responde a todas las preguntas como se muestra a continuación:

    Enter current password for root (enter for none):
    Set root password? [Y/n]: N
    Remove anonymous users? [Y/n]: Y
    Disallow root login remotely? [Y/n]: Y
    Remove test database and access to it? [Y/n]:  Y
    Reload privilege tables now? [Y/n]:  Y

Una vez asegurada MariaDB, accede al shell de MariaDB con el siguiente comando:

sudo mysql -u root -p

Introduce tu contraseña de root cuando se te pida. A continuación, crea una base de datos y un usuario para ERPNext con el siguiente comando:

MariaDB [(none)]> create database erpnextdb;
MariaDB [(none)]> create user erpnextuser@localhost identified by 'password';

A continuación, concede todos los privilegios a ERPNext con el siguiente comando:

MariaDB [(none)]> GRANT ALL ON erpnextdb.* TO 'erpnextuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> GRANT all privileges on *.* to 'root'@'localhost' IDENTIFIED BY 'admin@123' WITH GRANT OPTION;

A continuación, elimina los privilegios y sal del intérprete de comandos MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Instalar ERPNext

En primer lugar, crea un directorio para ERPNext y concédele los permisos adecuados con el siguiente comando

sudo mkdir -p /opt/erpnext
sudo chown -R erpnext /opt/erpnext/

A continuación, cambia el directorio a erpnext e instala erpnext con el siguiente comando:

cd /opt/erpnext
git clone https://github.com/frappe/bench bench-repo

Salida:

Cloning into 'bench-repo'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 6144 (delta 10), reused 13 (delta 5), pack-reused 6125
Receiving objects: 100% (6144/6144), 29.70 MiB | 231.00 KiB/s, done.
Resolving deltas: 100% (3924/3924), done.

A continuación, instala bench con el comando pip:

sudo pip install -e bench-repo

A continuación, inicializa el directorio bench con frappe framework:

bench init erpnext

Salida:

Building frappe assets...

? Built js/print_format_v3.min.js
? Built js/dialog.min.js
? Built js/web_form.min.js
? Built js/social.min.js
? Built js/modules.min.js
? Built js/form.min.js
? Built js/list.min.js
? Built js/frappe-vue.min.js
? Built js/chat.js
? Built js/desk.min.js
? Built js/control.min.js
? Built css/frappe-rtl.css
? Built css/module.min.css
? Built css/report.min.css
? Built css/form.min.css
? Built css/list.min.css
? Built frappe/css/email.css
? Built css/web_form.css
? Built css/frappe-web.css
? Built css/desk.min.css
? Built js/frappe-web.min.js
? Built js/report.min.js
?  Done in 31.313s
Done in 34.43s.
INFO:bench.utils:setting up backups
no crontab for erpnext
INFO:bench.utils:setting up auto update
no crontab for erpnext
Bench erpnext initialized

A continuación, cambia el directorio a erpnext y crea un nuevo sitio para el dominio nodo1.ejemplo.com con el siguiente comando:

bench new-site node1.example.com

Se te pedirá que proporciones tu contraseña raíz de MySQL como se muestra a continuación:

MySQL root password:

Introduce tu contraseña de root y pulsa Intro. Deberías ver la siguiente salida:

Installing frappe...
Updating DocTypes for frappe        : [========================================]
Updating country info               : [========================================]
Set Administrator password: 
Re-enter Administrator password: 
*** Scheduler is disabled ***

A continuación, proporciona los permisos adecuados al erpnext con el siguiente comando:

sudo chown -R erpnext:erpnext /opt/erpnext/erpnext

Por último, inicia el servidor con el siguiente comando:

bench start

Deberías ver la siguiente salida:

06:34:02 web.1            |  * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit)
06:34:02 web.1            |  * Restarting with inotify reloader
06:34:03 watch.1          | yarn run v1.13.0
06:34:03 watch.1          | $ node rollup/watch.js
06:34:03 web.1            |  * Debugger is active!
06:34:04 web.1            |  * Debugger PIN: 159-307-235
06:34:13 watch.1          | 
06:34:13 watch.1          | Rollup Watcher Started
06:34:13 watch.1          | 
06:34:13 watch.1          | Watching...
06:34:15 watch.1          | Rebuilding frappe-web.css

Acceder a ERPNext

ERPNext ya está instalado y escuchando en el puerto 8000. Abre tu navegador web y escribe la URL http://node1.example.come:8000. Se te redirigirá a la siguiente página:

Acceso a ERPNext

Ahora, proporciona un nombre de usuario como Administrador y la contraseña que proporcionaste durante la configuración. A continuación, haz clic en el botón Iniciar sesión. Deberías ver la siguiente página:

Seleccionar idioma

A continuación, elige tu idioma y pulsa el botón Siguiente. Deberías ver la página siguiente:

Establecer el nombre de la empresa

A continuación, elige tu país y pulsa el botón Siguiente. Debes ver la siguiente página:

Añadir un primer usuario

A continuación, indica tu nombre completo y tu dirección de correo electrónico. A continuación, haz clic en el botón Completar configuración. Deberías ver la página siguiente:

Panel ERPNext

Enhorabuena! has instalado y configurado correctamente ERPNext en el servidor Ubuntu 18.04. Ahora puedes configurar fácilmente ERPNext en un entorno de producción.

También te podría gustar...