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.

MartinServer

De cómo el enojo con mi proveedor de hosting me llevó a montar mi propio servidor doméstico: MartinServer

HP-Compaq-dc7800p

HP dc7800p Convertible Minitower

Desde que tengo actividad en internet he pasado por varios proveedores de hosting: al principio, en 1996, contraté con arrakis, la empresa sevillana que finalmente fue absorbida por BT; posteriormente pasé por EspaHost, Nominalia y no sé si alguna más, hasta que finalmente, en diciembre de 2005, contraté el servicio de una empresa californiana, DreamHost.

La oferta era realmente buena, me ofrecían un hosting linux con almacenamiento ilimitado (bueno, esto no era del todo cierto, había que leerse la letra pequeña) por 120 dólares al año. Esto me permitió alojar decenas de webs.

En la fase de desarrollo, yo montaba las webs en una instalación local de LAMP que posteriormente subía al servidor de Dreamhost por FTP, y así quedaban finalmente publicadas. Era un sistema que funcionaba bien, no me daba problemas y tenía un precio relativamente económico, 10 dólares mensuales.

Como ven, he sido un cliente fiel. Diez años he permanecido con ellos. Pero nada es perfecto, y hace unos meses comenzaron las desavenencias. Quiero aclarar que el culpable soy yo, por no leerme la letra pequeña de los contratos. Dicho esto, resumo lo que pasó: aprovechando que según mi contrato tenía “almacenamiento ilimitado” en Dreamhost, decidí crearme mi propia nube privada.

Letra pequeña

Instalé una instancia de Owncloud, que es una magnífica alternativa Open Source a servicios como Dropbox o Google Drive, y sincronicé todos mis equipos con el servidor. Era maravilloso. Ya no tenía que preocuparme de la pérdida, robo o malfuncionamiento de mis laptops. Podía tener sincronizado todo mis documentos entre los distintos equipos (personal, de trabajo…).

Sólo había una pequeña pega: en la letra pequeña del contrato de Dreamhost excluía explícitamente el uso del servidor como almacenamiento en la nube. Maldición. Yo me enteré porque deshabilitaron la instancia de Owncloud. Mala suerte, pero ya me buscaría una alternativa.

Lo peor, y lo que me enojó, es que comenzaron a llegarme requerimientos de pago por uso del servicio de almacenamiento. No, Dreamhost, no. Tendrás toda la razón legal que quieras, pero a un cliente con diez año de fidelidad no se le hace eso: está bien que cortes un servicio que dices no estar permitido, pero no intentes abultar la factura con esto. Ya me llamaste la atención. Déjalo estar…

Reclamé la factura, pataleé, pero fue para nada. Lo cierto es que contractualmente tenían razón, pero como cliente me sentí maltratado y los mandé a la chingada. Aprovechando que acababa de contratar un servicio de internet en casa que me ofrecía 200MB simétricos (tanto de subida como de bajada), decidí experimentar por primera vez con mi propio servidor doméstico.

Plaza de la Tecnología

 

Plaza de la Tecnologia

Plaza de la Tecnología

Como no tenía ninguna computadora que pudiera ejercer de servidor (utilizar laptops para ese fin es una mala idea), me dirigí a la Plaza de la Tecnología, muy cerquita del centro histórico de la Ciudad de México.
La Plaza de la Tecnología no es una plaza. Bueno, aquí en México se le llama “Plaza” a un centro comercial, pero es que ni siquiera eso. Es más bien un zoco desperdigado a lo largo de cuatro cuadras, lleno de puestos y tenderetes en el interior de vetustos edificios. Marea la sobreabundancia de oferta de cualquier producto tecnológico que puedas soñar. Lo que no encuentras en ningún otro lado, aquí está.
Yo tenía muy claro que lo que buscaba era un PC de escritorio de lo más barato. Así lo dije, y lo más barato que encontré fue un HP dc7800p Convertible Minitower, junto con un monitor y teclado, por el que me cobraron $2,000 pesos. Unos 100 euros. La verdad que el equipo, para 2015, ya era una porquería: un Intel Core 2 Duo, con 2.83GHz y 2GB de RAM. De disco duro, 250GB.

Ubuntu Server

Pero para mi propósito estaba bien. Le quité el Windows XP en chino con el que venía y le instalé la versión 12.04.5 LTS de Ubuntu Server. Esta distribución linux ya viene con casi todo lo necesario para mis necesidades. En concreto, el servidor Apache, PHP y MySql. Con esto podía poner en marcha, desde mi propia casa, todas mis webs. Bueno, todas todas no. Avisé a varios amigos a los que les alojaba las webs para que migrasen a otros servidores. No quería hacerme responsable del posible malfuncionamiento, eso lo dejaba exclusivamente para mis webs.

Algunos migraron, a otros pareció no importarles y se quedaron alojados en MartinServer. Así que configuré los VirtualHost para cada uno de los websites, los habilité en Apache. Finalmente, al no tener contratada IP estática con mi proveedor de internet, configuré los dominios en FreeDNS para gestionar la resolución de nombres de dominio. O sea, para que mis webs fueran localizables en internet con independencia de los cambios de IP que se pudieran producir en mi Servidor.

Y listo. Ahora, por primera vez en mi vida, tengo mi propio servidor en casa. A partir de ahora, a aprovechar todas las ventajas que esto ofrece. Y no sólo como servidor de páginas web: como media center, servidor de FTP, archivos en la nube doméstica, etc.