Mautic: la revolución Open Source en Email Marketing

Uno de los campos en los que decididamente la presencia de soluciones Open Source era casi inexistente es el de la automatización del marketing. En un sector dominado por gigantes como Marketo, Pardot (de SalesForce), Eloqua (de Oracle) y que HubSpot vino a revolucionar allá por 2006, cuando prácticamente introdujo el concepto de Inbound Marketing, se echaba decididamente en falta una alternativa Open Source.

Y no sólo por los costes. Es cierto que soluciones como las arriba citadas son extremadamente caras, dificultando así su adopción por pequeñas y medianas empresas y organizaciones sociales. Pero lo peor es que estas plataformas de marketing automatizado obligaban a las empresas a adaptar sus procesos internos al propio funcionamiento de las herramientas.

Fundador

David Hurley supo ver esto con claridad cuando fundó Mautic en 2013.  Como él mismo dice, “como empresario y emprendedor me quedé profundamente impactado al comprobar que no existían herramientas Open Source de relevancia en los campos del marketing y de la automatización del marketing”. Esta impresión fue la que le movió a fundar una comunidad Open Source en torno al concepto de la automatización del marketing que hoy es, sin duda, la base de toda una revolución en el sector.

Mautic es una plataforma de código abierto que sorprende por su madurez y completitud. Hasta ahora, en el mercado existían herramientas que destacaban por ser intuitivas y fáciles de usar, pero con funcionalidad limitada. Otras herramientas ofrecían una funcionalidad avanzada, pero con la desventaja de ser extremadamente difíciles de implementar. Mautic ha venido a revolucionar este panorama.

Moderna arquitectura

Está desarrollada con una moderna arquitectura, con APIs abiertas que permiten su facilísima integración con cualquier otro tipo de herramientas (CRMs, gestores de contenido, etc). La combinación de facilidad de uso con la más sofisticada tecnología es lo que lo diferencia. Y, al ser Open Source, permite que cada organización pueda adaptarlo y/o extenderlo exactamente de acuerdo a sus necesidades.

Funcionalidades

Resumiendo mucho, algunas de las funcionalidades de Mautic son:

  1. Captación de oportunidades (leads)
  2. Creación y gestión de campañas
  3. Creación, gestión y seguimiento de correos electrónicos
  4.  Formularios
  5.  Cualificación de oportunidades (Lead Scoring)
  6.  Landig pages
  7.  Integraciones. Con todo tipo de herramientas: Facebook, Twitter, Word Press, MS Dynamics, Salesforce… La lista completa está aquí: https://www.mautic.org/integrations/
  8.  Informes

Instalación en Ubuntu 16.04

Quien quiera usar Mautic como servicio, puede hacerlo en https://mautic.com/, que es gratuita hasta cierta cantidad de oportunidades y usuarios. Si queremos instalarla en nuestro propio servidor, teniendo por tanto pleno control de la plataforma, podemos hacerlo de la siguiente forma (instrucciones para Ubuntu Server 16.04):

    1. Descargamos la última versión de Mautic (a día de hoy, la 2.9.2). En nuestro ejemplo la descargaremos en el directorio /var/www:
      cd /var/www
      wget --level=0 https://www.mautic.org/download/latest
    2. Descomprimimos el fichero y, para nuestro ejemplo, creamos un directorio llamado “mautic”:
      unzip latest -d mautic
    3. Cambiamos los permisos de la carpeta recién creada y de su contenido:
      sudo chown -R www-data:www-data /var/www/mautic
    4. Creamos una base de datos para Mautic (en nuestro ejemplo se llama “mautic”)
      mysql -u root -p
      CREATE DATABASE mautic DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
      GRANT ALL ON mautic.* TO ‘mauticuser’@’localhost’ IDENTIFIED BY ‘password’;
      FLUSH PRIVILEGES;
      EXIT
    5. Creamos un Virtual Host (en nuestro caso, en Apache):
      sudo gedit /etc/apache2/sites-available/mautic.conf
    6. Ponemos el siguiente contenido en el fichero creado (cambiando rutas y parámetros por los nuestros propios):
      <VirtualHost *:80>
      ServerAdmin mi@correo.com
      ServerName mi.sitio.mautic
      DocumentRoot /var/www/mautic
      <Directory />
      Options FollowSymLinks
      AllowOverride All
      </Directory>
      <Directory /var/www/mautic>
      Options FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
      </Directory>
      php_value date.timezone “America/Mexico_City”
      </VirtualHost>
    7. Lo habilitamos:
      sudo a2ensite mautic.conf
    8. Instalamos php5-intl
      sudo apt-get install php5-intl
    9. Reiniciamos Apache:
      sudo systemctl restart apache2.service
    10. Configuramos las tareas programadas necesarias (Cron Jobs):
      crontab -e

      De las siguientes líneas, la 1, 2 y 3 son necesarias. La 4 sólo si quieres programar el envío de emails. La 5 si quieres procesar los emails rebotados. La 6 se necesita si quieres enviar webhooks en lotes y la 7 es para automatizar la descarga de la base de datos de geolocalizacón:

      * * * * * /ruta/al/ejecutable/php /var/www/mautic/app/console mautic:segments:update >/dev/null 2>&1
      * * * * * /ruta/al/ejecutable/php /var/www/mautic/app/console mautic:campaigns:update >/dev/null 2>&1
      * * * * * /ruta/al/ejecutable/php /var/www/mautic/app/console mautic:campaigns:trigger >/dev/null 2>&1
      * * * * * /ruta/al/ejecutable/php /var/www/mautic/app/console mautic:email:process  >/dev/null 2>&1
      * * * * * /ruta/al/ejecutable/php /var/www/mautic/app/console mautic:fetch:email >/dev/null 2>&1
      * * * * * /path/to/php-binary/php /var/www/mautic/app/console mautic:webhooks:process >/dev/null 2>&1
      * 2 10 * * /ruta/al/ejecutable/php /var/www/mautic/app/console mautic:iplookup:download >/dev/null 2>&1
    11. Ya lo único que nos queda es acceder a nuestra instancia de Mautic (en la url definida en el Virtual Host, en el ejemplo “mi.sitio.mautic”) a través de cualquier navegador y completar el proceso de instalación guiado.

Mosaico: Editor de plantillas responsive para Email Marketing

Hoy en día no es nada complicado encontrar buenas herramientas para crear magníficas plantillas de email marketing que funcionan sin problema en cualquier cliente de correo electrónico. A mi particularmente me gusta mucho Litmus (de pago), y casi todas las grandes plataformas de email marketing, como MailChimp o Mailjet, tienen herramientas de creación de emails bastante potentes e intuitivas. Si buscamos alternativas Open Source, Odoo ofrece, entre sus múltiples aplicaciones, una de composición y envío de emails, con un completo sistema de gestión de campañas.

Pero, por el motivo que sea, igual no estamos interesados en utilizar ningún servicio “freemium” o de pago, ni mucho menos instalarnos todo un ERP sólo para una tarea tan concreta como la creación de una plantilla de email responsive. Si este es el caso, Mosaico es una magnífica alternativa, totalmente Open Source y con características de lo más interesantes.

Edición intuitiva

Desarrollado por Stefano Bagnara, uno de los cofundadores de la plataforma italiana de email marketing VOXmail, Mosaico es una librería JavaScript que permite de forma visual e intuitiva la edición de plantillas de correo electrónico. Lo bueno es que Mosaico, el programa en sí mismo, no define lo que se puede editar o qué estilos se pueden cambiar: esto lo controla directamente la plantilla, lo que hace que Mosaico tenga una enorme flexibilidad.

Instalación en Ubuntu

En su página web, https://mosaico.io, se puede ver en ejecución. Si queremos instalarlo en nuestro propio equipo, los pasos son (en Ubuntu 16.04):

  1. Es necesario tener instalada una versión de NodeJS igual o superior a la V6.0. No nos sirve por tanto la de los repositorios de Ubuntu, que actualmente van por la versión 4.6. Lo instalaremos via package manager:
    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash --
    sudo apt-get install -y nodejs
  2. Instalamos ImageMagick:
    sudo apt-get install imagemagick
  3. Instalamos grunt-cli:
    npm install -g grunt-cli
  4. Instalamos git:
    sudo apt-get install git
  5. Descargamos el código de Mosaico y lo instalamos en la carpeta deseada (en nuestro caso, /var/www/mosaico):
    wget https://github.com/voidlabs/mosaico/archive/master.zip -P /var/www/mosaico
  6. Nos movemos a la carpeta elegida para la instalación de Mosaico
    cd /var/www/mosaico
  7. Descomprimimos el fichero:
    unzip master.zip
  8. Instalamos Mosaico:
    npm install
  9. Compilamos y ejecutamos el servidor local:
    grunt

Y esto es todo. Como lo hemos instalado localmente, se accederá a Mosaico intruduciendo http://127.0.0.1:9006 en el navegador.

Odoo: cómo hacer que un vendedor sólo pueda ver sus propios clientes


Ya vimos anteriormente cómo instalar Odoo 10 en Ubuntu 16.04. Pero, como dijimos, la labor de configuración posterior a la instalación es aún más importante. Nos podemos encontrar con muchísimas particularidades de nuestra empresa que queremos implementar en el ERP. En nuestro caso, una de las necesidades era que cada uno de los miembros del equipo de venta sólo pudiera visualizar sus propios clientes dentro del sistema.

Paso a paso

En el vídeo anterior se puede ver paso a paso el proceso que seguimos para conseguirlo. De forma resumida, son los siguientes:

  1. En Configuración, activar el “Modo Desarrollador”
  2. Crear un nuevo grupo de vendedores, o modificar alguno de los existentes. En nuestro caso, modificamos el grupo “Ventas / Usuario: Solo mostrar documentos propios”
  3. En la pestaña “Reglas”, hacer clic en “Añadir un elemento” y una vez aquí, hacer clic en el botón “Crear”.
  4. Ponerle un nombre a la nueva regla. Como objeto, buscar y seleccionar “res.partner”
  5. En el campo “Definición de regla (filtro de dominio)”, pegar el siguiente código:
    [‘|’,(‘user_id’,’=’,user.id),(‘user_id’,’=’,False)]
  6. Guardar

Con estos pasos, ya podemos comprobar cómo cada uno de los miembros de los equipos de venta sólo puede ver exclusivamente los clientes que se le han asignado.

Instalar Odoo en Ubuntu 16.04

Toda empresa necesita apoyarse en herramientas que den cobertura a sus necesidades de negocio. Existen en el mercado multitud de sistemas de información que cubren esta necesidad. Los llamados ERP ayudan a la gestión de las actividades de ventas, entregas, pagos, producción, administración de inventarios, contabilidad, recursos humanos , etc.

En nuestro caso, necesitábamos una herramienta para gestionar ventas, selección, contabilidad y facturación. Entre las muchas opciones existentes, nos decantamos por Odoo (aquí su página oficial), que es quizá el software para negocios más instalado en el mundo, con más de 2 millones de usuarios. Nació en el 2004 como Tiny ERP, posteriormente OpenERP y desde 2013 se presenta con su actual nombre.

Odoo tiene tres versiones distintas: Enterprise, Online SaaS y Community version. Esta última es la que nos resulta especialmente interesante, se trata de una aplicación plenamente OpenSource. Es una suite que consta de 34 aplicaciones principales creadas por Odoo, pero que además tiene más de 5,500 aplicaciones desarrolladas por su muy activa comunidad y que dan cobertura a la mayor parte de las necesidades de cualquier negocio. Y con la ventaja de que, al ser modular, puedes instalarte sólo aquello que necesites.

A continuación detallo los pasos que seguimos para su instalación en un servidor con Ubuntu 16.04.

Prerrequisitos

Antes de instalar Odoo realizamos los siguientes pasos:

  1. Actualizar el sistema
    sudo apt update && sudo apt upgrade
  2. Si no tenemos instalado ninguno, instalaremos un servidor web. En nuestro caso, Apache:
    sudo apt-get install apache2
  3. Hay que configurar el firewall para dejar abierto, tanto para acceso ssh como tcp, el puerto utilizado por defecto por Odoo (8069). Este puerto puede personalizarse (aunque no es recomendable configurarlo en el puerto 80, el utilizado por Apache), pero en nuestro caso será el que utilicemos. Lo habilitamos en UFW:
    sudo ufw allow ssh
    sudo ufw allow 8069/tcp
    sudo ufw enable
  4. Odoo está desarrollado en Python. Instalamos sus dependencias:
    sudo apt-get install python-dateutil python-docutils python-feedparser python-jinja2 python-ldap python-libxslt1 python-lxml python-mako python-mock python-openid python-psycopg2 python-psutil python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-unittest2 python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi poppler-utils python-pip python-pypdf python-passlib python-decorator gcc python-dev mc bzr python-setuptools python-markupsafe python-reportlab-accel python-zsi python-yaml python-argparse python-openssl python-egenix-mxdatetime python-usb python-serial lptools make python-pydot python-psutil python-paramiko poppler-utils python-pdftools antiword python-requests python-xlsxwriter python-suds python-psycogreen python-ofxparse python-gevent
  5. La base de datos que utiliza Odoo es PostgreSql. La instalamos y creamos un usuario (en nuestro ejemplo, ‘odoo’):
    sudo apt-get install postgresql
    su -- postgres
    createuser odoo
  6. Ahora creamos el directorio donde vamos a instalar Odoo (en nuestro caso, /opt/odoo):
    sudo mkdir /opt/odoo
  7. Creamos el usuario y grupo ‘odoo’ en nuestro sistema:
    sudo adduser --system --home=/opt/odoo --group odoo

Instalación de Odoo

  1. Clonamos los ficheros de Odoo en la ubicación elegida (en nuestro caso, /opt/odoo/):
    sudo git clone https://www.github.com/odoo/odoo --depth 1 --branch 10.0 --single-branch /opt/odoo
  2. Instalamos las dependencias necesarias para las App de Odoo. Wkhtmltopdf, necesario para la generación de informes en PDF, así como NPM y su paquete less:
    wget http://download.gna.org/wkhtmltopdf/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
    sudo dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
    sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
    sudo cp /usr/local/bin/wkhtmltoimage /usr/bin
    sudo apt-get -yq install npm
    sudo ln -s /usr/bin/nodejs /usr/bin/node
    sudo npm install -g less less-plugin-clean-css
  3. Instalar las dependencias de Python (si la ruta donde instalaste Odoo es diferente, tienes que cambiar /opt/odoo/odoo-10.0 por tu ruta personalizada):
    sudo pip install -r /opt/odoo/odoo-10.0/doc/requirements.txt
    sudo pip install -r /opt/odoo/odoo-10.0/requirements.txt

Configuración

  1. Copiar el fichero de configuración que viene de ejemplo a una ubicación más conveniente. Si utilizaste una ruta personalizada, tienes que sustituir ‘/opt/odoo/odoo-10.0’ por la tuya propia:
    sudo cp /opt/odoo/odoo-10.0/debian/odoo.conf /etc/odoo.conf
  2. Modificar el fichero de configuración con tus propios datos:
    [options]
    admin_passwd = tupasswordpersonalizadoyfuerte
    db_host = False
    db_port = False
    db_user = odoo
    db_password = False
    addons_path = /opt/odoo/odoo-10.0/addons (modificar si instalaste en otra ruta)
    xmlrpc_port = 8069
    logfile = /var/log/odoo/odoo.log
    log_level = error
    SECURITY_EMAIL_SENDER = ‘tu@mail.com’

Configurar Odoo como servicio

  1. Creamos un fichero llamado odoo.service en /etc/systemd/system, con un contenido como este (de nuevo, si utilizaste rutas diferentes en la instalación, tendrás que personalizarlas aquí):
    [Unit]
    Description=Odoo
    Documentation=http://www.odoo.com/
    [Service]
    # Ubuntu/Debian convention:
    Type=simple
    User=odoo
    ExecStart=/opt/odoo/odoo-10.0/odoo-bin -c /etc/odoo.conf[Install]
    WantedBy=default.target
  2. Cambia propietario y permisos del fichero de configuración para que lo lance el usuario que hemos creado (‘odoo’) :
    sudo chown odoo: /etc/odoo.conf
    sudo chmod 640 /etc/odoo.conf
  3. Arrancamos el servicio:
    sudo systemctl start odoo.service
  4. Comprobamos que funciona:
    sudo systemctl status odoo.service
  5. Si todo está bien, habilitamos el servicio, con lo que se iniciará cada vez que arranque el sistema:
    sudo systemctl enable odoo.service

Configuración de Apache

  1. Para poder acceder a Odoo desde tu propio dominio y sin necesidad de añadir el puerto 8069 en la URL, configuramos un Proxy Reverso en Apache. Primero, habilitamos los siguientes módulos:
    sudo a2enmod proxy
    sudo a2enmod proxy_http
  2. Creamos un archivo de configuración para tu dominio:
    sudo gedit /etc/apache2/sites-available/tu-dominio.com.conf
  3. Añadimos el siguiente contenido:
    <VirtualHost *:80>
    ServerName tu-dominio.com
    ServerAlias www.tu-dominio.com
    ProxyRequests Off
    <Proxy *>
    Order deny,allow
    Allow from all
    </Proxy>
    ProxyPass / http://tu-dominio.com:8069/
    ProxyPassReverse / http://tu-dominio.com:8069/
    <Location />
    Order allow,deny
    Allow from all
    </Location>
    </VirtualHost>
  4. Una vez guardado el contenido del fichero de configuración, lo habilitamos:
    sudo a2ensite tu-dominio.com.conf
  5. Reiniciamos Apache:
    sudo service apache2 restart

Iniciando Odoo

  1. Si todo ha ido bien hasta ahora, ya podemos acceder a Odoo simplemente introduciendo en un navegador la direccón de nuestro dominio:
    http://tu-dominio.com
  2. Debe aparecer una pantalla como la siguiente:
  3. Sólo debemos proporcionar el nombre de la base de datos que creamos en un paso anterior, nuestro e-mail y el password. Con esto ya está Odoo completamente instalado y funcional… ahora sólo queda (pero eso ya no es objeto de este post) instalar los módulos deseados, así como configurar e implementar los procesos de nuestra empresa.

Adiós, Joselito

Me envía mi hermana el artículo que ha publicado Enrique Sánchez en La Voz de Alcalá, en memoria de mi padre:

“Cuando uno supera cierta edad, la memoria se va perdiendo pero a cambio se hace más selectiva, más concreta. Por eso tengo recuerdos concretos y seguidos de mi amigo José Antonio Moreno Martín, recientemente fallecido después de una difícil enfermedad.

Nos conocíamos desde la infancia, nacimos en el mismo barrio, en El Derribo. Estuvimos juntos en la clase segunda del colegio salesiano. Jugamos en el colegio y en la calle.

Cuando estuvo en la tienda de Juan Alarcón, en La Cruz del Inglés, todavía tenía pantalones cortos. Su afición al motor y a todo aquello que tenía ruedas le cautivaba. Después entró en la fábrica de cementos de Alcalá. Nuestra amistad se retomó. Hicimos viajes juntos con su mujer, Águila, y con la mía. Nos reíamos, José Antonio,  Pepe o Joselito como me gustaba llamarle tenía sentido del humor a pesar de su aparente seriedad. Será muy difícil olvidarlo en sus salidas acompañado por Águila por la calle La Mina. Con su amistad, la de su mujer, su hijo Martín y la de su hija Lorena, siempre lo tendré en mi recuerdo como amigo y como persona”.

Ahora que no estás

Papá

José Antonio Moreno Martín. Papá: te echo rabiosa y dolorosamente de menos. Y no es que no haya tenido tiempo para prepararme para tu ausencia, es simplemente que soy incapaz de rehacer los mapas con los que he guiado mi vida y en los que tú, siempre, has sido ese puerto en el que tarde o temprano acababa recalando, y el único lugar de mi universo al que podía llamar casa, hogar, patria.
Ahora ya no puedo regresar a ti, no de una forma material y concreta y palpable, porque ahora vives en mi memoria. Ahora, que ya no estás, igual ha llegado el momento de decirte algunas cosas.

Forma de ser

Tú ya sabes, cómo no vas a saber, de esa forma mía de ser. Sabes que me guardo los sentimientos bajo siete candados cuya llave perdí mucho antes de que algún día tuviera la necesidad de ir a buscarla. A pesar de eso, a pesar de que durante gran parte de nuestra vida el afecto se comunicaba disimulado bajo pequeños gestos, hace ya algún tiempo que conseguí decirte abiertamente que te amaba. “Te quiero, papá”, te he dicho muchas veces, y cada vez más claro en los últimos años. Pero quizá no te dije exactamente lo que quería decir. No todos los “te quiero” son iguales.
Hemos compartido juntos casi medio siglo de vida. Cuando llegué a la tuya tú eras un joven pletórico, exultante de vida. Habías nacido 26 años atrás en una Alcalá de Guadaira que aún aguantaba la respiración, con miedo, tras la Guerra Civil. Pero tú no sabías nada de eso. La tuya fue una infancia libre y rebelde, feliz. Tu madre, mi abuela, trabajaba en uno de tantos almacenes de aceitunas, y eso te daba vía libre para campar a tus anchas por las calles de nuestro pueblo. Casi te cuesta la vida cuando te arreguinchaste a uno de los pocos coches que había en Alcalá en aquella época (el del notario, creo) y, pasado el puente con dirección a Utrera, te caíste hacia atrás. Casi mueres aquella vez, pero tú lo único que contabas era que se te había quedado el cráneo blando como una breva. Y te reías.

Guadaira

También te colabas el el tren de los panaderos en dirección a Mairena, para visitar a tu abuelo el picapedrero, que trabajaba en una cantera por allá. O te escapabas al río para bañarte con tus amigos… aunque esto último no te salió tan bien. Avisada un día tu madre por unas vecinas, te sorprendió en las riberas del Guadaira y te dio tal cantidad de alpargatazos que no volviste a aparecer por allí. Ni aprendiste a nadar. Nunca aprendiste a nadar.
A mediados de la década de los 50 tú ya eras un hombrecito alto, desgarbado y encantador. A ti te hubiera gustado estudiar medicina, era tu gran sueño, pero la realidad material de nuestra familia te impuso otro destino. Abandonaste los Salesianos antes de comenzar el Bachiller, y comenzaste a trabajar con apenas 14 años.
Previamente habías seguido un curso de contabilidad por correspondencia en CEAC. Eso te permitió entrar como aprendiz en el taller de Juan Alarcón.
Trabajabas incansablemente porque tenías que sustentar a tu familia. La abuela ganaba poco en el almacén de aceitunas, y el abuelo, devastado por el alcohol, aún menos en los trabajos ocasionales que le iban saliendo. Así que, con dos hermanos pequeños (Consuelo, nueve años menor, y Javier, un recién nacido en la época, catorce años más joven que tú), te echaste a la espalda la responsabilidad de sacar esa casa adelante.
Para ti era un orgullo entregar el salario a tu madre. Para ti era la pura felicidad poder comprarles la primera televisión que tuvieron. Y para ti el trabajo era también, además de una responsabilidad, un espacio donde crecer, donde seguir aprendiendo y también donde divertirte.

Trastadas

Aún sigues sin explicarte cómo no te despidió Juan Alarcón de tantas trastadas como hiciste. Como aquella vez que, intentando aprender a conducir, empotraste un seiscientos contra una columna y, de los nervios, acelerabas aún más, al punto de casi derribar por completo la nave. O esa otra que, trasteando con unos cables y una navaja (ni te acuerdas para qué) casi te matas electrocutado, y provocaste un apagón en el taller.
Pero bueno, me dejo de historias porque, al final, la gran historia de tu vida ha sido, hasta el final, tu mujer, mi madre. “Mi Águila”, como decías con todo el amor del mundo rebosando de tus palabras. Con ella has estado hasta el final, en una historia de amor tan enorme que muchas veces en mi vida me ha resultado difícil de comprender. De tan hermosa.

Amor

Y vuelvo por donde empecé. A mi me gustaría quererte sólo la mitad de bien que nos amaste. Bien que sé de las noches sin dormir por mi culpa, pero nunca hubo una mala palabra por tu parte. Me quisiste libre y me apoyaste, sin niguna queja, aunque te hiciera daño. Tan buena persona, que siempre me he sentido indigno a tu lado (seguro que me hubieras regañado al oír esto). Por eso, ahora que no estás, te digo más fuerte que nunca: “te quiero, papá”. Siempre.

Miedo

Miedo
La vida pasa como pasa, no como uno quisiera. Yo había planeado con tanto cariño la llegada de mi hija a México… Sí, está aquí conmigo, por fin después de tanto tiempo.
Soy muy feliz por eso, y también estoy ilusionado por el comienzo de un nuevo trabajo. En breve nos cambiaremos de departamento, en la misma colonia de Ciudad de México, pero mucho más cerca tanto del trabajo como de la escuela de Sara.
Todo va bien, todo debería ir bien, yo debería estar tranquilo y relajado.
Pero siento miedo.

La enfermedad de mi padre absorbe todos mis pensamientos y no hay nada que haga o que diga que lo pueda evitar. Me gustaría soñar, pero solo tengo miedo.

No me canso de decir “te quiero”

Mi primer cumpleañosNo hay nada peor que estar lejos cuando te necesitan. No hay nada peor que estar lejos cuando me necesitas, papá. Hace más de un año que supimos que estabas muy enfermo. Más de un año en el que te he visto cada vez que he podido, que siempre ha sido demasiado poco.

Mamá y hermana han estado ahí, a tu lado, cuidándote, haciendo lo posible y lo imposible para que el devastador efecto de la quimioterapia te fuera lo más llevadero posible. Vigilando tu dieta, tu medicación, pero, sobre todo, estando a tu lado.

Yo, a 10.000 kilómetros, siento que te he fallado. El mes pasado todo empeoró. Quién sabe si por el tratamiento, por tu enfermedad o porque sí, se quebró una de tus caderas. Yo volé en cuanto lo supe hasta Sevilla, fui directo al hospital de Valme, donde mamá llevaba ni se sabe cuánto tiempo a tu lado, sin dormir.

Las noches

Pedí las noches para mi. Todas las noches en el hospital las pasé contigo, obligué a mamá a retirarse a casa, aunque sé que ella no tiene otro lugar que no sea a tu lado. Casi te nos vas. La operación de la cadera salió aparentemente “bien”, pero no se dieron cuenta de que te habían dejado perforada una arteria. Te estabas desangrado por dentro, y pese a nuestras reiteradas llamadas de ayuda al equipo médico, no te hicieron caso durante todo el fin de semana. Solo el lunes repararon en su “error”.

Pero bueno, la pasamos. Eres fuerte. Poco a poco recuperaste la consciencia. No sabes qué hermoso es oír tu voz. Pero también lo es velar tu sueño, en silencio. Fueron horas en que la memoria, mientras mi vista reposaba en tu cuerpo debilitado, se disparaba frenética hacia recuerdos que ni sospechaba que aún estaban ahí. Recordé esos domingos, todos los domingos durante años en nuestras vidas, que íbamos en familia a la Dehesa de Bulnes. Dejábamos el auto a la sombra de alguna buena encina, el abuelo preparaba el fuego y demás nos dispersábamos por los cerros de la Dehesa a la busca de espárragos. Al principio yo iba contigo, me enseñabas con tu mirada a saber dónde tenía que mirar.

Recuerdos

Recordé un viaje a Galicia que, en aquella época, yo tenía 9 años, fue toda una aventura para mi. Tres maravillosos días en el R6. Recordé la primera vez que fuimos a la que después fue tu segunda casa, Conil. Recordé cosas mucho más antiguas, como los paseos por el parque de Maria Luisa, y sí, recordé, aunque creo que era demasiado pequeño para recordar, mis primeros años en la calle Nueva. Sí, como en la foto. Tú tenías 27 años en mi primer cumpleaños, y aunque no puedo recordar tan lejos, sí que tengo en la memoria a ese joven de mirada bondadosa y sonrisa de felicidad. Mi papá.

Pero bueno, el mes pasó. Finalmente te dieron el alta. Tu vuelta a casa ya no fue como antes. Tuvimos que colocar una cama adaptada en la sala. Contratamos a una enfermera para que te ayudara a volver a ponerte en pie. Lo hiciste, conseguiste incorporarte sobre tu propio peso. Pero siempre por poco tiempo. Estás muy enfermo, muy débil, y yo siento de nuevo que te he vuelto a fallar. Me tuve que regresar. 10.000 kilómetros nos separan de nuevo.

Pero en todo este tiempo sí hubo una cosa que no me cansé de decir: “te quiero”. Te lo dije todos los días a todas horas, porque sé que a lo largo de mi vida no te lo había dicho lo suficiente. Pero ya no. Ya no juego a los sobreentendidos. Ya no me canso de decir “te quiero”.

 

 

Cómo instalar Plexpy en Ubuntu

Una eficaz y potente herramienta para monitorizar la actividad de tu Plex Media Server

PlexPy
Cuando tu servidor Plex alcanza una cantidad de contenido multimedia considerable y cuando, además, compartes tus contenidos con decenas de usuarios, es una buena idea tener algún tipo de sistema de monitorización. Puede que te interese saber quién está viendo, y cuándo, tu biblioteca multimedia, saber cuáles son los contenidos más demandados, desde qué dispositivos se consumen, etcétera.
Para ello, y de entre las varias opciones que existen, PlexPy es posiblemente una de las más completas y potentes. Se trata de un sistema de monitorización escrito en python y que ha sido diseñado específicamente para Plex. Incluye una increíble cantidad de características que permiten monitorizar la actividad en tiempo real del servidor Plex, acceder a registros históricos, configurar todo tipo de alertas personalizadas, estadísticas, actividad por usuario, y muchas más.

Instalación de Plexpy

El proceso de instalación en Ubuntu es bien simple, lo resumo a continuación:

  1. Si no tenemos aún instalado git, lo instalamos:
    sudo apt-get install git-core
  2. Instalamos PlexPy:
    cd /opt
    sudo git clone https://github.com/drzoidberg33/plexpy.git
    cd plexpy
    sudo python PlexPy.py
  3. Para salir de la pantalla que se nos muestra a continuación, tecleamos:
    :q
  4. En un navegador, introducimos la IP del servidor donde hayamos instalado PlexPy seguido del puerto 8181. Por ejemplo, 192.168.0.1:8181
  5. Esto nos muestra la pantalla de configuración de PlexPy. Introducimos nuestro usuario y contraseña de Plex y ya está. Sólo tenemos que configurarlo a nuestro gusto.
  6. Finalmente, para arrancar automáticamente Plexpy como servicio, tecleamos lo siguiente:
    sudo adduser –system –no-create-home plexpy
    sudo chown plexpy:nogroup -R /opt/plexpy
    sudo ln -s /opt/plexpy/init-scripts/init.ubuntu /etc/init.d/plexpy
    sudo update-rc.d plexpy defaults
  7. Ya hemos terminado. Para arrancar el servicio:
    sudo service plexpy start

La página del proyecto en GitHub, donde se puede obtener el código fuente (y donde se pueden consultar instrucciones para su instalación en otros sistemas operativos), es la siguiente: https://github.com/drzoidberg33/plexpy

HTTPS con LetsEncrypt

Y algunos ajustes adicionales para sitios construidos con WordPress

LetsEncrypt

Cuando nació, allá por la década de los 60 del siglo pasado, Internet servía casi exclusivamente para el envío y recepción de mensajes, y el modelo se parecía mucho al del correo tradicional: el emisor envía algo a un receptor, pero siempre origen, destino y contenido eran conocidos previamente.
Este modelo del Internet primitivo cambió para siempre en 1989. Tim Berners-Lee ideó el lenguaje HTML con el objetivo de organizar los documentos del CERN.

Poco después, en 1991, este sistema se extendió para el envío de todo tipo de documentos a través de Internet, dando origen a la World Wide Web, que es lo mismo que decir Internet tal y como lo conocemos hoy día. Y todo estaba fundamentado en el protocolo de transferencia para hipertextos (HTTP). Exactamente igual que hoy.

HTTP es el protocolo que utiliza cualquier navegador para comunicarse con los servidores web, y que permiten que puedas ver, por ejemplo, esta página. Funciona bien, pero hay que tener en cuenta que con él todos los datos se transmite en texto plano, sin cifrar.

Cualquier persona dentro de tu red o que pueda interponerse entre tu computadora y el servidor será capaz de ver tus contraseñas, datos bancarios, etc. Por eso desde hace años prácticamente todas las webs transaccionales (aquellas en las que puedes realizar operaciones de cualquier índole, pero especialmente compras, transferencias, etc) utilizan HTTPS.

HTTPS

Hyper Text Transfer Protocol Secure (HTTPS) es la versión segura de HTTP. Todas las comunicaciones entre tu navegador y el servidor son encriptadas utilizando SSL/TLS (Secure Sockets Layer/Transmission Layer Security), que son dos protocolos para enviar paquetes cifrados a través de Internet. Su uso como dijimos, está ampliamente difundido entre comercios electrónicos y banca online, aunque desde hace unos años crece la presión para generalizar su uso en detrimento de HTTP. Google, por ejemplo, concede mayor relevancia en sus resultados a los sitios con HTTPS, lo que hace que cualquier experto en posicionamiento se decante por su uso.

El problema, hasta hace poco, es que los certificados que se usan para el cifrado HTTPS eran de pago. Pero todo eso cambió desde el finales del año pasado, cuando la Electronic Frontier Foundation se propuso la puesta en marcha de una “autoridad certificadora” con la intención de ayudar a cifrar el tráfico de toda la web.

LetsEncrypt

Con el nacimiento de LetsEncrypt, cualquiera puede asegurar su sitio web con HTTPS en cuestión de minutos y de forma absolutamente gratuita. Veamos cómo hacerlo en un servidor con Ubuntu Server y Apache:

  1. Comprobar que todos los paquetes del sistema están actualizados, e instalar git:
    apt-get update
    apt-get upgrade
    apt-get install git
  2. Instalar Let’s Encrypt:
    git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
  3. Generar los certificados de Let’s Encrypt:
    cd /opt/letsencrypt
    ./letsencrypt-auto --apache -d ejemplo.com

    También puedes utilizar un único certificado para múltiples dominios o subdominios, para lo que tienes que añadir algunos parámetros al comando:
    ./letsencrypt-auto --apache -d ejemplo.com -d www.ejemplo.com

Con esto ya tenemos el certificado para nuestro sitio web, podemos asegurar razonablemente (https no es invulnerable) que la comunicación entre nuestro servidor y los navegadores de los visitantes del mismo ha sido cifrada y es inviolable. Cuando visiten nuestro sitio, verán algo así:

Candado verde https

Un candado verde, seguido de “https”, que indica que la conexión es segura.

Aspectos adicionales

Ya casi todo el trabajo está hecho. Pero veamos algunos aspectos a revisar.

  1. Para evitar que se pueda acceder a tu sitio web por http, y obligar a que la conexión sea siempre segura, https y por el puerto 443, teclea lo siguiente en la terminal:
    cd /etc/apache2/sites-available
    gedit tusitio.com.conf
  2. Sustituye el contenido del fichero de configuración por lo siguiente:
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =tusitio.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

    Guarda el fichero y reinicia apache
    sudo service apache2 reload

    Con esto, cualquier visitante a tu sitio web será redireccionado a la versión segura.
  3. Si tu sitio está construido con WordPress, tendrás que cambiar la configuración para evitar que el navegador te alerte de que estás ofreciendo contenido inseguro (el candado se verá tachado y/o de color naranja, según el navegador). Ve a la administración de WordPress y en “Ajustes”, cambia la URL del sitio añadiendo “https”.
  4. En función del “Theme” que estés utilizando, es posible que te salga el mismo mensaje de alerta. Revisa que todas las imágenes y URL’s introducidas en las opciones de personalización del Theme comienzan por “https”.
  5. Como apunta Manuti en su comentario, aún pueden quedar elementos que realicen llamadas hacia fuera sin usar https (puede ser el caso de algunos plugins). Estas llamadas se realizan o bien desde el código fuente del sitio web, bien desde su base de datos. Para solucionar los enlaces incorrectos en el código fuente hacemos lo siguiente:
    cd /var/www/tusitio.com
    grep -lir “http://tusitio.com”

    Este comando nos listará los ficheros que contengan un enlace con HTTP. Modificamos estos enlaces por HTTPS.
    Para corregir los enlaces incorrectos que puedan quedar en la base de datos, hacemos lo siguiente:
    mysql -u root -p nombre_de_tu_base_de_datos

    UPDATE wp_options SET option_value = replace(option_value, ‘http://tusitio.com’, ‘https://tusitio.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;

    UPDATE wp_posts SET guid = replace(guid, ‘http://tusitio.com’,’https://tusitio.com’);

    UPDATE wp_posts SET post_content = replace(post_content, ‘http://tusitio.com’, ‘https://tusitio.com’);

    UPDATE wp_postmeta SET meta_value = replace(meta_value,’http://tusitio.com’,’https://tusitio.com’);

Y esto es todo. Ya tienes tu sitio web securizado con HTTPS.