sábado, 18 de octubre de 2014

Instalando ERPNext en Centos 6.5


ERPNext es un ERP con interfaz web desarrollado en la India por Web Notes Technologies, es una herramienta muy completa para llevar el control contable, financiero y operativo de empresas pequeñas y medianas.

Este post es un combinación de las instrucciones oficiales de instalación y mi experiencia personal, estoy trabajando sobre una instalación limpia de CentOS 6.5, un droplet de Digital Ocean, es importante que selección un sistema operativo a 64 bits como base.

Si te manejas bien con Linux no deberías tener problemas con la instalación, pero si no te manejas bien con Linux podrías considerar contratar una instancia directamente a los desarrolladores de este software y dejarles la configuración y mantenimiento a ellos.

1- Iniciamos sesión vía SSH con el IP y Contraseña facilitada por el proveedor del VPS.

# ssh@ip

2-  Actualizamos el sistema y nos aseguramos de tener instalado wget y git

# yum -y update && yum install -y wget git

3- Creamos un usuario para ERPNext y le asignamos una contraseña

# useradd erpnext
# passwd erpnext

4- Iniciamos sesión con el nuevo usuario

# su - erpnext

5- Clonamos el script de instalación que proporcionan el desarrollador:

$ wget https://raw.githubusercontent.com/frappe/bench/master/install_scripts/setup_frappe.sh

6- Ejecutamos como root el script


$ su -c "/bin/bash /home/erpnext/setup_frappe.sh"

Si el script no presenta errores ya deberiamos tener todo instalado.

7- Iniciamos MariaDB

$ su -c "service mysql start"

8- Ejecutamos el script de configuración segura de MariaDB

$ su -c mysql_secure_installation

El paso fundamental aca es configurar la contraseña de root de MariaDB

9- Iniciamos la bench

$ cd ~ && bench init frappe-bench

Si les aparece este error lo pueden obviar:

File "/home/erpnext/frappe-bench/env/build/gunicorn/gunicorn/workers/_gaiohttp.py", line 64
    yield from self.wsgi.close()
             ^
SyntaxError: invalid syntax

Lo importante al final es recibir el mensaje:

Bench frappe-bench initialized
 
10- Descargamos vía bench ERPNext (no voy a bajar la aplicación de e-comerce)

$ cd frappe-bench && bench get-app erpnext https://github.com/frappe/erpnext

11- Creamos nuestro nuevo sitio

$ bench new-site nombre-sitio

12- Instalamos vía bench ERPNext en nuestro sitio

$ bench frappe --install_app erpnext nombre-sitio

13- Abrimos el puerto 8000

$ su -c "iptables -A INPUT -p tcp -m tcp --sport 8000 -j ACCEPT"

14- Comprobamos si podes iniciar ERPNext

$ cd /home/erpnext/frappe-bench/ && bench start

15- Comprobamos poder acceder vía el navegador en el puerto 8000


El usuario es Administrator la contraseña se nos solicito en el paso 11

Hasta aca ya tenemos ERPNExt funcionando en nuestro Centos, pero si cerramos la terminal desde la que arrancamos el proceso, o matamos el proceso con "Ctrl + C" el sitio web dejara de estar disponible.

Para configurar nuestre ERPNext para, por ejemplo, autoiniciar con el sistema necesitamos pasos adicionales.

16- Volvemos nuestra terminal y matamos el proceso con "Ctrl + C"

17 - Cerramos la sesión de erpnext para volver a ser root

$ exit

18 - MariaDB ya esta corriendo pero necesitamos que inicie al inicio

# chkconfig mysql on

19 - Configuramos el autoinicio de redis

# chkconfig redis on

20- Configuramos el autoinicio de memcached

# chkconfig memcached on

21- Configuramos memcached para escuchar en el localhost

# vi /etc/sysconfig/memcached

Tiene que quedar con el siguiente contenido

# Running on Port 11211  
PORT="11211"

# Start as memcached daemon  
USER="memcached"

# Set max simultaneous connections to 1024  
MAXCONN="1024"

 # Set Memory size to 2048 - 4GB(4096)  
CACHESIZE="2048"

#Set server IP address  
OPTIONS="-l 127.0.0.1"

Si vas a usar ERPNext de forma local puedes llegar hasta aca, si vas a configurar ERPNext para servir de forma remota es recomendable configurar supervisor y nginx.

22- Configuramos el autoinicio de nginx

# chkconfig nginx on

23- Instalamos supervisor

# easy_install supervisor
24- Creamos un script de autoinicio de ERPNext

# touch /etc/erpnext.sh

25-  Editamos el archivo

# vi /etc/erpnext.sh

y agregamos

#! /bin/bash

cd /home/erpnext/frappe-bench/
bench star

 25- Hacemos ejecutable el archivo

# chmod +x /etc/erpnext.sh

26- Creamos el archivo /etc/supervisord.conf

# touch /etc/supervisord.conf 

27- Editamos el archivo 

# vi  /etc/supervisord.conf

y agregamos lo siguiente:

[supervisord]
nodaemon = false

[program:erpnex]
command=/etc/erpnext.sh
28- Editamos el  archivo /etc/rc.local

# vi /etc/rc.local

y agregamos la siguiente linea

supervisord -c /etc/supervisord.conf
Ahora deberiamos ser capaces de apagar el servidor reiniciarlo y verificar que ERPNext se inicia de forma automatica gracias a supervisor.

init─┬─auditd───{auditd}
     ├─crond
     ├─master─┬─pickup
     │        └─qmgr
     ├─memcached───5*[{memcached}]
     ├─6*[mingetty]
     ├─mysqld_safe───mysqld───18*[{mysqld}]
     ├─nginx───nginx
     ├─redis-server───2*[{redis-server}]
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd───sshd───bash───pstree
     ├─supervisord───erpnext.sh───honcho─┬─frappe───python2.7───{python2.7}
     │                                   ├─python───python
     │                                   ├─python
     │                                   └─3*[{honcho}]
     └─udevd───udevd

El siguiente paso es configurar Nginx

 29- Abrimos el puerto y verificamos poder ver la página de inicio de Nginx

# iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
 
 30- Iniciamos sesión con el usuario erpnext

# su - erpnext

31- Generamos un archivo de configuración

$ cd frappe-bench && bench setup nginx

32- Creamos un link a la carpera de nginx

$ su -c "ln -s /home/erpnext/frappe-bench/config/nginx.conf /etc/nginx/conf.d/frappe.conf"

33- Eliminamos el archivo por defecto de nginx

$ su -c "rm /etc/nginx/conf.d/default.conf"

34- Podemos verificar que nginx esta funcionando como proxy inverso en la página de prueba y cerrar el puerto 80

Listo

Al reiniciar el servidor supervisor ERPNext se iniciara automaticamente.

miércoles, 15 de octubre de 2014

Inscripciones para Fudcon Latam abiertas


Estamos a poco mas de una semana para la Fudcon Managua, ya pueden inscribirse e ir votando por su charla favorita en http://fudconlatam.org/

lunes, 25 de agosto de 2014

Convocatoria a charlas en Fudcon Managua 2014

El próximo mes de Octubre se llevara a cabo la conferencia de usuarios y colaboradores del Proyecto Fedora en America Latina (FUDCon Latam), este año el evento se llevara a cabo en Managua, capital de la República de Nicaragua y el periodo de inscripción de charlas no se ha finalizado.

Aun hay tiempo para proponer charlas al evento para expositores internacionales o para expositores locales, puede leer los anuncios acá:


  1. Expositores Locales
  2. Expositores Internacionales

jueves, 14 de agosto de 2014

Termino la Escuela Fedora de Masaya



El pasado martes 12 de Agosto terminamos la Escuela Fedora en Masaya , al final fueron 19 personas las que terminaron el curso, un grupo muy heterogéneo con Estudiantes de Primero a Cuarto año de la Uhispam e incluso algunos profesores.

Había dos temas que aun no se habían tratado y que se abordaron rápidamente:


  1. Edición de Wiki
  2. GIT

Al final cada usuario vio las opciones básicas de edición de wiki para darle forma a su perfil de usuario en el Proyecto Fedora, también todos crearon cuentas en Github y sincronizaron un repo git entre su computadora local y el repositorio remoto, hicimos unos cambios remotos y sincronizamos localmente estos cambios para tener ambos proyectos actualizados.

Luego pasamos al examen final, el cual fue 100% practico, para ello partimos de una serie de paquetes previamente descargados para realizar una instalación local de Gnome ya que los equipos estaban funcionando con XFCE, procedimos a editar con Systemd las opciones de arranque para que se inhabilitara Lightdm y en su lugar habilitamos GDM, luego de hacer estos cambios localmente  procedimos vía SSH a iniciar sesión en 10 servidores remotos creados previamente en los que se habilito un Lamp con Apache, MariaDB y PHP, sobre este Lamp iniciamos la instalación de un Wordpress el quedo a un 98% listo debido a que el tiempo no permitió termina el proceso de instalación.

El resultado final de la Escuela Fedora en la Uhispam Masaya fue compartir con estas 19 personas (originalmente 30) el proceso de instalación de Fedora, la administración de Software con Yum, la administración de servicios con Systemd y l los valores que diferencian al Proyecto Fedora de otros proyectos similares, esperamos que estas personas puedan conseguir su proceso de aprendizaje partiendo de la base que obtuvieron en la Escuela Fedora.