Informática

Plex desde la consola Bash

Disponer de una FreeBSD como punto de partida para instalar un servidor multimedia parece ser un must en la mayoría de tutoriales que uno encuentra cuando busca cómo instalar Emby, Kodi o Plex en un servidor casero. Nada más lejos de la realidad, aunque sí es cierto que se percibe como más asequible, especialmente para quien no esté familiarizado con Linux. Cuando, hace ya dos años, me decidí a montar mi propio servidor multimedia, lo hice sobre FreeNAS y más tarde sobre OpenMediaVault. A mí, que no conocía más mundos que el ventanero, me resultó muy sencillo instalar servicios como Plex desde estos sistemas, ya que prácticamente vienen preconfigurados y lo único que uno debe hacer es marcar los que desee para habilitarlos. Hoy vamos a ver cómo instalar un servidor Plex desde la terminal shell de cualquier distro de Linux, ya que esto nos permitirá un mayor control de nuestra plataforma, una mayor amplitud de configuraciones y una gestión más eficiente de los recursos frente a las FreeBSD, mucho más encorsetadas en estos sentidos.

El punto de partida será la obtención del paquete a instalar. Plex Media Server es gratuito (únicamente es de pago la app para sistemas Android e iOS) y se puede descargar aquí. Únicamente debemos prestar atención a nuestra distribución, su versión y la arquitectura de nuestro procesador.

Una vez descargado, lo subiremos a nuestro servidor, ya sea directamente o a través de FTP/SCP, y lo instalamos mediante el comando dpkg -i plexmediaserver_(la version que hayamos descargado).deb. Si usamos una distro que no esté basada en Debian o Cent OS (como RHEL o SUSE) teclearíamos el nombre del paquete precedido de rpm -ivh. La instalación se realizará automáticamente y, si termina correctamente, podremos ver que el servicio se encuentra activo haciendo uso de los comandos systemctl status plexmediaserver o service plexmediaserver status.

Esta imagen tiene un atributo alt vacío; su nombre de archivo es instalasio-plex-1.png

Hecho esto, creamos los directorios de los discos o particiones que vayamos a usar como repositorios de contenido multimedia, ya que la partición o el disco del sistema (si no lo hemos particionado) no pueden albergar a la vez el sistema operativo y el contenido multimedia que sirvamos. Conviene recordar que cualquier directorio, con los permisos adecuados, puede ser usado como punto de montaje.

Montamos los discos en el directorio que hayamos creado para tal fin con el comando mount. En mi caso los discos ya contienen datos, de modo que ya hay un sistema de ficheros creado. De no haberlo deberíamos crearlo con mkfs (por ejemplo: mkfs -t codigofs /ruta/dispositivo). La estructura de mount, sin argumentos, es mount /disco /puntodemontaje. En caso de que nos equivocásemos al hacerlo simplemente desmontaríamos con umount seguido del disco o del punto de montaje (sólo hace falta especificar uno).

Hecho esto sólo queda dar  permisos al usuario plex, que se creó durante la instalación del paquete Plex Media Server, sobre estos directorios, lo cuál podemos hacer ejecutando chown -R plex /ruta. A mayores, si queremos que los discos que hemos montado queden fijos en el sistema y no se desmonten ante eventualidades como el reinicio del servidor debemos añadirlos al fichero fstab, que podemos encontrar en el directorio /etc. Este archivo consta de seis columnas en las que debemos indicar: dispositivo, punto de montaje, formato del sistema de ficheros, opciones de montaje (por defecto defaults), copia de seguridad (1 la hace 0 no) y pass para decidir el orden en el que fsck comprobará el fs.

A partir de aquí ya podemos seguir con la instalación a través de la interfaz web, que no es otra que https://ip del servidor:32400/web/index.html. Puede que algún día Plex cambie su puerto por defecto, 32400, por otro. Si eso ocurriera (lo notaríamos al darnos timeout la url) nos valdríamos de las herramientas lsof o netstat para saber en qué puerto se está ejecutando el Plex. Si, tras un par de anuncios, nos aparece la siguiente pantalla significará que la instalación ha ido bien.

Esta imagen tiene un atributo alt vacío; su nombre de archivo es instalasio-plex-2.png

A través de la interfaz web nos guiará por una sencilla instalación en la que básicamente nos ofrecerá la opción premium Plex Pass (para poder usar la aplicación en móviles y tablets, además de poder crear y gestionar usuarios) y nos reconocerá el servidor al que está adscrito la instalación. Será entonces cuando, desde el mismo menú principal, podremos añadir nuestra biblioteca multimedia.

Tras definir el tipo de vídeo que queremos subir se nos pedirá una ruta de la que obtenerlo. Es en este apartado donde se nos listan los directorios a los que tiene acceso el usuario plex, al que ya vimos antes cómo enlazar con los directorios, y únicamente debemos seleccionar la ruta en la que está contenido el archivo o archivos que queremos que se muestren disponibles para reproducir en Plex.

La gracia del Plex radica en que sea accesible desde fuera de nuestra red. Para usarlo sólo en casa compensa usar un disco duro externo e ir moviéndolo por las estancias en las que queramos reproducir algo. Para poder reproducir desde fuera del hogar (gracias al Plex se podría hacer sin seguir los siguientes pasos pero no de manera directa) debemos habilitar el acceso remoto en las opciones de red y redirigir el tráfico desde nuestro router hacia la máquina.

Para redirigir el tráfico desde fuera de nuestra red hacia la máquina debemos configurar el router para que encamine toda conexión entrante por el puerto 32400 hacia la ip local de la máquina. Esto podemos hacerlo desde la configuración del router (generalmente 192.168.1.1 o, si eres usuario de Movistar, desde el Portal Alejandra) de manera muy intuitiva.

A mayores, tendríamos que configurar el iptables (firewall estándar de Linux) de nuestra máquina para permitir las conexiones entrantes contra este puerto, con lo que simplemente ejecutaríamos la siguiente sentencia en la consola:

iptables -A INPUT -p tcp –destination-port 32400 -j ACCEPT

Aunque con esto ya bastaría para acceder al servidor multimedia desde fuera de nuestra red  de manera directa, simplemente introduciendo nuestra IP pública seguida de «:32400», es mucho más cómodo hacerlo desde un dominio, ya que (por razones evidentes) es más fácil de recordar una palabra que una sucesión de números. De modo que compraremos un dominio en cualquier proveedor por dos o tres euros y crearemos la entrada DNS. Es en este momento cuando se abre un árbol de decisión que determinará qué tipo de persona eres:

Chapuzas

Una persona triste y ridícula lo que haría sería asociar directamente el dominio a la IP mediante un registro A, cuando a no ser que contratemos una pública (lo cuál sería absurdo para este propósito) esto nos obligará a estar modificando la entrada DNS en el proveedor de dominio cada vez que reiniciemos el router.

Para nota

En cambio, una persona expeditiva y eficaz instalaría un servicio DDNS, esto es, un servicio que actualiza el registro DNS en el proveedor de dominio cada vez que la IP sufre cambios. El proceso de instalación de este servicio consta de dos partes: una primera en la que creamos el usuario con el que enlazaremos el servidor en el apartado de DynHost del proveedor de dominio y otra en la que instalamos el cliente en el propio servidor y lo configuramos haciendo valer las credenciales del primer paso.

Desde el propio panel (de OVH en este caso) de administración en el proveedor de dominio se nos ha de presentar un apartado de DynHost en el que simplemente añadimos una entrada DNS directa y crearemos un usuario.

En la máquina instalaremos el cliente ddns con apt-get install ddclient. Acto seguido se nos abrirá una interfaz gráfica a través de la cual podremos loguearnos en el servidor DynHost usando las credenciales creadas en el anterior paso. Entre los proveedores de DNS dinámico que se nos ofrecerán durante la instalación pulsamos «Otro» si no figura el nuestro y lo introducimos manualmente.

Los únicos pasos en los que se nos puede atragantar la instalación son en los que definimos el protocolo de actualización de la entrada DNS y el adaptador de red, pues podemos no saberlo de memoria. Para el primer caso, en OVH habrá que seleccionar el dyndns2. En lo relativo al nombre del adaptador de red, lo podemos encontrar en el archivo de configuración de la interfaz, que en el caso de distribuciones basadas en Debian es /etc/network/interfaces. En cualquier caso, si nos equivocamos podremos modificar la configuración más tarde editando el archivo /etc/ddclient.conf o mediante el comando dpkg-reconfigure ddclient.

 

Para terminar, simplemente habilitamos el servicio para que se inicie con el sistema y lo reiniciamos. Para comprobar la efectividad de la instalación, veremos en OVH cómo si reiniciamos el router se actualiza el registro DNS.

systemctl enable ddclient && systemctl restart ddclient

Llegados a este punto ya tendremos configurado nuestro servidor multimedia, completamente accesible desde fuera de nuestra red, tanto por haber establecido una ruta directa como por lo cómodo de no tener que recordar nada más que un link que será tan corto como nosotros queramos; en mi caso, de tres caracteres 🙂