Tutoriales, noticias y soluciones informáticas

PiServer con docker – Parte 7: Despliegue de Plex

Antes de empezar, vamos a ver un resumen de lo que hemos visto en anteriores artículos que hemos hecho para aprender a usar Docker sobre una Raspberry Pi.

  • Parte 1: Hemos instalado el sistema operativo a una Raspberry
  • Parte 2: Hemos explicado qué es Docker y sus componentes, y hemos instalado en nuestro equipo Docker y Docker compose.
  • Parte 3: Hemos instalado nuestro primer Docker: Pi-hole
  • Parte 4: Hemos explicado unos cuantos comandos útiles para resolver problemas y gestionar nuestros Dockers.
  • Parte 5: Le hemos instalado un VPN a nuestra Raspberry (Wireguard) con un gestor web de usuarios incluído
  • Parte 6: Hemos aprendido a desplegar Dockers descargados de internet por nuestra cuenta, y con la excusa hemos desplegado aMule y Transmission.
Carátulas de películas

Con el objetivo de homogeneizar esta serie de tutoriales con los anteriores tutoriales que habíamos hecho hace tiempo, en este artículo vamos a ver cómo podemos instalar Plex Server mediante Docker. Se trata de un servicio muy interesante que podréis correr dockerizado desde vuestra Raspberry o desde cualquier equipo con Linux.

Plex nos va a servir para organizar y transmitir todo nuestro contenido multimedia. Nos permitirá acceder a películas, series, música y fotos desde diferentes dispositivos e incluso compartir estos contenidos con otras personas. Me parece una instalación muy útil e interesante, además de ser este artículo un puente perfecto antes de pasar a explicar cómo podemos instalar servicios que generan páginas web y cómo hacer que sean disponibles en internet.

¿Qué dices? ¡Pero si Plex genera una página web! Yo he visto algunas instalaciones de Plex y al final los usuarios tienen una especie de web desde la que pueden ver el contenido de su biblioteca. Mira, mira. 
Página de Plex en un ordenador

Sí, Usuario Anónimo, pero a esa web se accede desde la página oficial de Plex, no desde un dominio nuestro. Aunque la web la genera nuestro ordenador, digamos que para que todo funcione no nos va a hacer falta abrir los puertos que suelen necesitar las páginas web (el 80 y el 443). Los próximos tutoriales se centrarán en la instalación de algunos servicios web a los que podremos acceder desde internet, pero esta instalación es una transición perfecta entre esos servicios y todo lo que hemos visto hasta ahora precisamente por lo que comentas: cuando terminemos de instalar todo, podremos acceder a nuestra biblioteca a través de la web de Plex.

Raspberry generada por IA (1)
Hay que ver qué Raspberrys más raras se monta la peña.

Y por cierto… seguro que hay gente preguntándose si una Raspberry es lo suficientemente potente como para retransmitir contenido a nuestros dispositivos. Hay una funcionalidad en el servidor de Plex que adecúa el formato del archivo que queremos reproducir al dispositivo que lo reproduce, pero para que funcione tiene que hacer una conversión de formato «al vuelo», mientras se reproduce el archivo en el dispositivo final (lo que se llama habitualmente como «transcodificación»). Si activamos esa opción, efectivamente nuestra Raspberry se puede quedar muy corta. El truco es deshabilitar la transcodificación y reproducir siempre todo el contenido de forma directa. De esta forma no habrá nunca problemas para transmitir esos contenidos a nuestros dispositivos y la Raspberry será un dispositivo más que capaz para actuar como servidor de Plex.

Evidentemente si esta instalación la hacemos desde un dispositivo más potente (un ordenador corriente, que tampoco hace falta mucho más), esa opción la podemos dejar activada sin problema.

Sobre el Docker Compose que vamos a usar para realizar la instalación, el oficial para instalar Plex lo podemos encontrar en esta página:

https://github.com/plexinc/pms-docker

Raspberry generada por IA (2)
Esas luces molan. Tengo que conseguirme una Plevex.

Pero esta instalación tiene un problema serio: está enfocada para ser usada en PC’s con procesadores de 64 bits y no nos funcionará directamente en la Raspberry. En estos tutoriales quiero que los Dockers que montemos se generen a partir de imágenes que luego permitan la ejecución del contenedor en cualquier sistema (porque a lo mejor hay gente leyendo que quiera instalar esto en un ordenador en lugar de en una Raspberry), así que vamos a usar una imagen diferente que sí nos permitirá usar Plex en cualquier dispositivo y que sacaremos de esta web:

https://github.com/linuxserver/docker-plex

Raspberry generada por IA (3)
No sé si es más inquietante la película, la Raspberry o la caja.

Recordad que si en algún momento pensáis usar un Docker en algo serio (en vuestra empresa, por ejemplo), no es nada recomendable usar imágenes que no sean las oficiales. Pero bueno… quiero suponer que algo como esto lo usaréis como entretenimiento y para uso particular. Aunque he de reconocer que yo llegue a montar un servidor de Plex para que una empresa pudiera retransmitir fotos y vídeos creados por ellos en varios dispositivos de forma centralizada.

Vamos a lo que nos interesa: echadle un vistazo al archivo docker-compose.yml de la web que os he propuesto y pensad cómo haríais el despliegue. Os voy a explicar cómo lo haría yo, securizando todo de la forma que hemos explicado en los anteriores artículos de esta serie.

1.- Creamos la estructura de carpetas para el almacenaje de datos de Plex

Si habéis seguido todos los tutoriales, deberíais tener una carpeta llamada docker dentro de la carpeta de nuestro usuario, o sea, en la ruta /home/<mi_usuario>/docker . Si no habéis hecho los anteriores tutoriales, creadla con el comando mkdir docker . Luego, ejecutad los siguientes comandos para crear la estructura de carpetas correcta.

mkdir plex
cd plex
mkdir config && mkdir movies && mkdir tv

Con esto hemos creado una carpeta llamada plex dentro de la carpeta docker y dentro de ella tres carpetas más. La carpeta config almacenará todo lo relativo a la configuración del plex (base de datos, carátula de las películas, etc…). La carpeta movies la usaremos para poner en ella películas y en la carpeta tv podremos poner vídeos de series de televisión. Podemos crear más carpetas, pero voy a centrarme sólo en la carpeta «movies» en el artículo (luego os animo a cacharrear, que a esto se le puede sacar mucho jugo)

2.- Creación del archivo docker-compose.yml

Como ya estamos dentro de la carpeta que hemos creado de plex (en /home/<usuario>/docker/plex) vamos a crear el archivo de Docker Compose con este comando:

sudo nano docker-compose.yml

Dentro de ese archivo pegaremos este contenido.

services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=$TZ
      - VERSION=docker
      - PLEX_CLAIM=$PLEX_CLAIM
    volumes:
      - $DOCKERDIR/plex/config:/config
      - $DOCKERDIR/plex/tv:/tv
      - $DOCKERDIR/plex/movies:/movies
    restart: unless-stopped

Como siempre, pulsaremos Control + O para guardar cambios y Control + X para salir del editor «nano».

Creo que ya empiezo a comprender todo el proceso. Veo que hay variables en ese docker porque está el símbolo $ en varios lugares del código. Seguro que ahora vamos a hacer un archivo de variables de entorno y ahí pondremos los datos que nos faltan ¿a que sí?

Ehhmm… pues la verdad es que normalmente es así, pero no en este caso. Hay una variable que nos falta y que no podemos inventarnos. Se trata del «Claim» de Plex. Antes de hacer todo eso que dices vamos a ver cómo conseguirla.

3.- Conseguimos el Claim de Plex.

Antes de nada expliquemos que es ésto que nos falta. El Claim es un código necesario para vincular una instalación de Plex con tu cuenta. Es algo como una medida de seguridad para garantizar que sólo los usuarios autorizados puedan acceder a su contenido y configuración de Plex. Una vez que introduces el «claim» en la instalación de Plex, la instalación queda asociada a tu cuenta y puedes gestionarla desde el panel web de Plex. Por supuesto, antes de hacer nada de lo que indicamos en este punto, debemos ir a la página oficial de Plex (https://www.plex.tv/es/) y crearnos una cuenta pulsando en «Regístrate».

Una vez que tengamos una cuenta y nos hayamos logado en la web de Plex, debemos ir al siguiente enlace.

https://www.plex.tv/claim

Nos encontraremos con algo como esto:

Página para obtener el Claim de Plex

El código que nos da esta web es el que nos va a hacer falta en el siguiente punto, así que tenedlo siempre a mano.

4.- Creamos el archivo de variables de entorno y le damos seguridad.

hora sí que vamos a hacer lo que nos indicaba el Usuario Anónimo. Para crear el archivo de variables de entorno, desde la carpeta /home/<tu_usuario>/docker/plex tecleamos el siguiente comando:

sudo nano .env

Una vez dentro del editor de texto pegamos lo siguiente.

DOCKERDIR=/home/<tu-usuario>/docker
TZ=Europe/Madrid
PLEX_CLAIM=claim-de-plex

Antes de guardar cambios, por supuesto debemos cambiar todas las líneas para adecuarlas a nuestra instalación. Debemos cambiar <tu-usuario> por el usuario de la Raspberry, TZ por la zona mundial en la que estemos y, por supuesto, debemos poner el claim de plex que hemos averiguado en el anterior paso en el campo PLEX_CLAIM. Una vez modificado todo lo necesario, guardaremos cambios con Control + O y saldremos del editor con Control + X .

Una vez hecho todo esto, debemos securizar el archivo para evitar que otros usuarios puedan acceder a él. Lo haremos tecleando este comando:

sudo chmod 600 .env

Con esto ya tendremos todo preparado para poner en marcha nuestra instalación.

5.- Desplegamos la máquina.

Para instalar nuestro Docker de Plex, como siempre, nos debemos situar en la carpeta dónde hemos dejado el archivo docker-compose.yml y desde ahí ejecutar el siguiente comando:

sudo docker-compose -p "plex" up -d

Con esto por fin nuestro Plex estará levantado. Sólo tenemos que ir a la página oficial de plex, pulsar en «Iniciar sesión», logarnos con nuestras credenciales y pulsar en el botón «Abrir plex».

Botón de "Abrir Plex"

Y desde ahí ya podremos acceder al interfaz de Plex en el que aparecerán los contenidos que le vamos a añadir.

Vale, pero ¿Cómo le añado contenidos? Me refiero a los vídeos que le hago a mi gato y todas esas cosas. No te vayas a creer que voy a poner algo subido de tono, que yo no veo nada de eso. Todo lo que tengo de esa temática me lo he bajado por accidente. 
Raspberry generada por IA (4)
Todas esas luces seguro que tienen un sentido. O tal vez no lo tengan. Pero molan.

Uffff… No te he preguntado sobre qué contenidos quieres subir al Plex, Usuario Anónimo… y casi prefiero no saberlo. A ver… para subir cosas al Plex puedes usar algún programa como WinSCP que te va a permitir subir por SSH contenidos a la carpeta que quieras de la Raspberry (movies o tv). Pero seguramente lo mejor sea compartir la carpeta «movies» (y si quieres también la carpeta «tv«) y acceder a ella a través de la red. Vas a poder subir contenidos directamente a la carpeta deseada arrastrándolos desde la carpeta de tu ordenador a la de la Raspberry, por lo que va a ser mucho más sencillo gestionar todo de esta forma. Puedes seguir las instrucciones que hay del punto 4 en adelante en este otro artículo del blog para saber cómo compartir esas carpetas y cómo añadir contenidos al Plex.

Ahora y como siempre en esta serie de artículos, veamos cómo podemos actualizar nuestra instalación de forma sencilla en el caso de que los desarrolladores añadan algún parche o funcionalidad a mayores al sistema.

6.- Creamos un script para actualizar nuestro Plex.

Para automatizar el proceso de actualización de la máquina, nos basta con crear un archivo de texto en la carpeta «home» de nuestro usuario (en /home/<tu_usuario>) con el siguiente comando.

sudo nano actualizar.sh

Si habéis seguido el resto de tutoriales, tendréis ahí ya bastante código que os permitirá actualizar tanto el sistema operativo como el resto de Dockers que hemos hecho. En ese caso deberíamos añadir esto justo antes de la última línea…

cd /home/<tu_usuario>/docker/plex
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f

…de forma que al final, el script debería quedar algo así.

sudo apt-get update -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
cd /home/<tu_usuario>/docker/pihole
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/wireguard
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now
cd /home/<tu_usuario>/docker/amule
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now
cd /home/<tu_usuario>/docker/transmission
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/plex
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now

Recuerda que debes sustituir <tu_usuario> por la carpeta del usuario en la que está alojado el directorio «docker«.

En caso de que sólo queráis actualizar este docker, el script sólo debería contener las primeras y últimas lineas, por lo que debería ser así:

sudo apt-get update -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
cd /home/<tu_usuario>/docker/plex
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now

En este último caso, deberíamos escribir un comando más para hacer el script ejecutable (si hemos seguido el resto de tutoriales, el comando ya será ejecutable y no debemos escribirlo).

chmod +x actualizar.sh

Si lanzamos el comando con un sudo ./actualizar.sh, en caso de haber alguna actualización del sistema operativo o de Plex, se descargará y se instalará de forma automatizada.

Y con esto ya sabríamos realizar en Docker todas las instalaciones que habíamos hecho en los antiguos tutoriales.

Oye... pues veo que esto de Docker puede estar muy interesante. A lo mejor no estaría mal probar a instalar más cosas, porque veo que casi todo se instala de la misma forma. 

Pues sí, pero hay que ir pasito a pasito. Lo primero es saber hacer instalaciones básicas y luego ya nos podemos ir atreviendo a realizar cosas más complicadas. El primer paso ya lo hemos dado. Con estos 7 artículos hemos aprendido a manejar Docker con soltura. Pero hay algo a lo que aún no nos hemos atrevido: a publicar una página en internet.

Bueno... al Plex puedo acceder desde cualquier ordenador conectado a internet. Además algunas de las instalaciones que hemos hecho nos han generado algunas páginas web, como Pi-hole o WG-Easy. 

Efectivamente. Pero recuerda que cuando accedes al Plex estás accediendo al dominio de Plex (plex.tv), no directamente a tu ordenador. Y las páginas que hemos generado sólo son accesibles desde dentro de nuestra red. En los siguientes tutoriales nos centraremos a crear algunas páginas web a las que podrás acceder a través de internet. Es decir, vas a poder hospedar directamente en tu raspberry servicios interesantes y no vas a tener que depender de pagar un hosting ni contratar servicios caros.

Pero eso es ya otra historia. Ahora es vuestro turno ¿Habéis tenido problemas para realizar todo lo que hemos hecho en el artículo? ¿Quieres proponer algún otro método de instalación? Estaré atento a vuestros comentarios.

Share

23 comentarios

  1. M.L

    amigo gran tutorial ya lo instale y va sin problema pero me atasco al pasar al otro tutorial ya que por defecto el tutorial elige un usb o disco duro externo y mi problema es que en la raspberry5 le puse un disco nmve y quisiera usar ese mismo pero ahi tengo instalado el sistema operativo entonces no puedo formatearlo a xt4 y nose como seguir te agradezco si me hechas una mano. esta es mi estructura:
    Device Boot Start End Sectors Size Id Type
    /dev/nvme0n1p1 8192 1056767 1048576 512M c W95 FAT32 (LBA)
    /dev/nvme0n1p2 1056768 488397167 487340400 232,4G 83 Linux
    jmpi@raspberrypi:~ $ ls /dev/nvme*
    /dev/nvme0 /dev/nvme0n1 /dev/nvme0n1p1 /dev/nvme0n1p2
    jmpi@raspberrypi:~ $ df -h
    S.ficheros Tamaño Usados Disp Uso% Montado en
    udev 1,9G 0 1,9G 0% /dev
    tmpfs 405M 7,2M 397M 2% /run
    /dev/nvme0n1p2 228G 7,0G 210G 4% /
    tmpfs 2,0G 17M 2,0G 1% /dev/shm
    tmpfs 5,0M 48K 5,0M 1% /run/lock
    /dev/nvme0n1p1 511M 76M 436M 15% /boot/firmware
    tmpfs 405M 160K 404M 1% /run/user/1000

    • Marcos

      No entiendo muy bien en qué paso es el problema. Deduzco que si es «al pasar al otro tutorial» estás teniendo problemas para mapear la carpeta dónde tienes las películas. Voy un poco a ciegas, por lo que si no es lo que te pasa avísame.

      Me dices que «en la raspberry5 le puse un disco nmve y quisiera usar ese mismo pero ahi tengo instalado el sistema operativo». Entiendo que arrancas la raspberry desde un disco externo NVMe. Si la arrancas desde ahí y tienes el plex en ese disco (no tienes el sistema operativo en un disco y el plex en otro, sinó que Plex, películas y sistema operativo están en el mismo disco) el método es igual que si estuvieras usando plex desde la tarjeta microSD. Básicamente lo que tendrías que hacer es

      1) Antes de nada prueba el plex. Instala en tu ordenador WinSCP y accede a la carpeta «movies» por SSH. Ahí cuelga alguna película y comprueba en la web de plex que la haya identificado y que funcione todo correctamente.
      2) Si quieres mapear la carpeta «movies» para que sea una carpeta accesible a través de la red, desde la carpeta /home/»tu_usuario»/docker/plex teclea los siguientes comandos.

      sudo chmod 777 unidadusb –> Eso te ahorrará problemas a la hora de establecer permisos a la carpeta
      sudo apt install samba samba-common-bin –> Para instalar Samba
      sudo nano /etc/samba/smb.conf –> para editar la configuración de samba
      … y ahí pones al final de todo la siguiente configuración.

      [MOVIES-PLEX]
      comment = Share Directory
      path = /home/»tu_usuario»/docker/plex/movies
      browseable = Yes
      writeable = Yes
      only guest = no
      create mask = 0644
      directory mask = 0755
      public = yes

      y tecleas el siguiente comando para reiniciar samba: sudo service smbd restart

      Ahora en tu windows sólo tendrás que abrir una carpeta cualquiera y en la barra de direcciones poner dos barras («\\») y luego la ip de tu raspberry. Algo así.

      \\192.168.1.15

      Y te aparecerá la carpeta compartida. Ahora puedes arrastrar ahí los archivos y deberían aparecerte en el plex.

      También podrías tener el plex y el sistema operativo instalado en un disco y las carpetas de películas en otro disco distinto. Se puede jugar mucho con estos temas.

      Lo dicho… no tengo claro que esa sea la duda. Revisa y a ver si es eso lo que preguntas.

  2. Manuel L

    Primero que todo muchísimas gracias por tomarte el tiempo de leer y responder.
    Si, me has entendido bien lo que quería era configurarlo en el nvme ya que es la única unidad de almacenamiento que tengo conectada a la raspberry.
    Realice los pasos que me dijiste y con WinSCP puede ver la carpeta y meterle la película que recomendaste en la otra guía, hasta ahí perfecto pero cuando fui a plex a comprobar que estuviera no estaba. Lo raro es que en plex cuando selecciono/home la carpeta me aparece vacía, tuve que pegarle la ruta completa a /home/jmpi/docker/plex/movies pero la biblioteca no detecta ningún archivo. De nuevo muchas gracias

    • Marcos

      Lo que te respondió José Miguel va por la senda correcta. Te explico.

      Un docker es como un tipo diferente de virtualización en la que la máquina virtualizada se utiliza el kernel del sistema operativo principal (en este caso el de raspbian) pero aisla las aplicaciones en contenedores separados. En la máquina principal, la carpeta dónde hemos puesto las películas es ésta

      /home/»tu_usuario»/docker/plex/movies

      Hasta aquí todo claro. Sin embargo en el plex la carpeta no es la misma. La carpeta está directamente en /movies. Esto lo puedes ver fácil en esta línea de los volúmenes del docker-compose.yml

      – $DOCKERDIR/plex/movies:/movies

      Nos dice la equivalencia entre las dos carpetas. Lo que es /movies en el plex, es /home/»tu_usuario»/docker/plex/movies en el host (en el Raspberry Pi OS). Así que en la configuración del plex debes poner que la carpeta dónde están las películas es /movies (que es lo que está por defecto).

      Puedes mapear muchas más carpetas, incluso en otros discos duros. Sólo habría que añadir la línea correspondiente en la zona «Volumes».

  3. Jose Miguel

    Manuel, no se si lo que te voy a explicar ayudará o no, pero vamos a intentarlo.

    Creo que el problema es que pretendes que Plex vea rutas de tu máquina, eso es imposible puesto que se está ejecutando aisladamente en un container. Por eso definimos volúmenes en el el archivo docker-compose.yml . En concreto para la carpeta movies está definido así:

    $DOCKERDIR/plex/movies : /movies

    He separado lo que hay a ambos lados de los dos puntos para que se vea con claridad. Lo que hay a la izquierda de los dos puntos es la ruta en tu máquina. Plex no puede ver esta ruta, sino la que hay a la derecha de los dos puntos, que es la ruta equivalente pero en el container. Lo que hace docker es enlazar la ruta dentro del container con la ruta en tu máquina, pero no puede verla.

    Por tanto intenta lo suguiente después de loguearte en Plex.

    En vez de meterle la ruta /home/jmpi/docker/plex/movies (que Plex no puede ver porque está fuera del container) métele la ruta /movies que es la ruta dentro del container que docker enlaza con la ruta en tu máquina.
    Ahora Plex debería ver lo que hayas metido en /home/jmpi/docker/plex/movies

    Si sigue sin funcionar olvídate de éste comentario porque entonces estoy equivocado y el problema no es ese.

    • Manuel L

      Hola José Miguel, tienes razón ese era mi problema y has dado con la solución ya he podido visualizar los archivos en plex poniendo la ruta /movies, asi que muchas gracias. he querido tambien crear otra biblioteca en plex con la ruta /tv y al hacer click sobre ella puedo ver los archivos de video que he metido en ella pero al darle en añadir a biblioteca los archivos no me cargan en plex nose cual sea el problema ya que en el el docker-compose.yml lo tengo de la misma manera que movies
      » $DOCKERDIR/plex/tv: /tv» creo que sera que le falta algun permiso la verdad no lose. Siento si estoy preguntando obviedades pero soy nuevo en docker y en raspberry pi OS asi que tengo un poco de lio gracias por la ayuda

      • Marcos

        Ten cuidado, porque para que se vean los archivos en la biblioteca debe tener el formato correcto. Si pones un archivo cualquiera con un nombre cualquiera en la carpeta TV, aunque el archivo sea un vídeo que no tiene ningún problema, si el nombre del archivo no coincide con nada de lo que plex tenga en la base de datos de sus series de TV no va a verse. Para que se vea correctamente debería tener un nombre correcto y válido para plex. Algo como «house 3×07». Eso identificará el archivo como que pertenece a una serie llamada «house» y que es el séptimo capítulo de la tercera temporada.
        Si en la carpeta TV pones un archivo que no tenga nada que ver con series de TV, no se va a ver.
        Puedes hacer bibliotecas de lo que quieras en plex. Puedes hacer montones de bibliotecas de películas, por ejemplo, y poner en cada biblioteca una temática (terror, ciencia ficción, acción, etc…), con lo que tendrás un montón de bibliotecas que para plex son de la misma temática (películas). Puedes hacer bibliotecas de vídeos caseros y fotos caseras (cualquier cosa que arrastres ahí se va a ver sí o sí, pero si en esa carpeta arrastras una película no la identificará ni pondrá portada ni nada de eso). El tema es que para cada biblioteca tienes que crear un volumen nuevo. Pero no es complicado.
        Y por cierto… no te sientas mal por preguntar. Nadie ha nacido aprendido y precisamente estos artículos están hechos para aprender. Si este problema que te ha surgido en el plex te ha servido para conocer las diferencias entre el sistema de archivos dentro del contenedor y el que hay fuera, ni tan mal. No sólo has aprendido a resolver el problema puntual, sinó que te has dado cuenta de que las rutas dentro del contenedor no son las mismas que hay fuera. Si surge cualquier otro problema aquí estamos.

        • Manuel L

          entiendo, esta bien saberlo para futuros archivos pero en este caso se trata de una serie que pone su nombre el numero capitulo y temporada pero aunque cuando selecciono la carpeta /tv en plex puedo ver los capitulos adentro cuando le doy a añadir a biblioteca no me cargan en plex

          • Marcos

            Por qué no haces una cosa. Elimina por completo el docker de Plex (en el cuarto tutorial si no me equivoco indico cómo hacerlo) y móntalo de nuevo. Borra el contenedor, la imagen y los volúmenes. Cuando lo montes, si no tocas nada la carpeta de movies y tv están configuradas bien por defecto. Más que nada para descartar algún fallo al andar toqueteando en la configuración (mejor hacer estas cosas ahora que no hay volumen de información en el contenedor que más adelante)

  4. Jose Miguel

    Que Plex reconozca las series tiene su truco. Te recomiendo que leas la ayuda de plex para nombrar archivos. Creo que el formato correcto es utilizando sXXeXX, donde s es la temporada y e el episodio. En el ejemplo que ponía Marcos sería house s03e07

    https://support.plex.tv/articles/#cat-your-media

    • Marcos

      Plex admite los dos formatos. Puedes poner s03e07 (s de season y e de episode) o 3×07 . Es cierto que en la documentación está el que indicas pero el otro lo coge perfectamente.

  5. Manuel L

    Ya he podido chicos, efectivamente el problema era el nombre ya tengo mis carpetas de series y peliculas funcionando perfectamente muchas gracias por la ayuda, seguire atento a las novedades del blog un saludo

  6. antonio

    Hola,
    Hay alguna manera de automatizar la ejecución del archivo actualizar.sh? Es para no estar pendiente de hacerlo manualmente. Por ejemplo una vez a la semana.
    Gracias!

    • José Miguel

      Mételo en el crontab. Instrucciones:
      Escribe crontab -e, te preguntará qué editor quieres usar, dile que nano (1).
      Añade esta línea al final del archivo:

      0 3 * * 1 /home/tu nombre de usuario/actualizar.sh

      Ctrl + x para cerrar, a continuación «s» o «y» para guardar.

      Esa linea le dice a cron que ejecute actualizar.sh todos los lunes a las 3 am.

      El 0 al principio indica los minutos
      El 3 indica la hora
      El asterisco siguiente indica que no importa qué día del mes sea.
      El asterisco siguiente indica que no importa qué mes sea.
      El 1 indica que ha de ser en lunes (el 0 es domingo, 1 lunes, etc.)

      Comprueba que lo has hecho bien con crontab -l, deberías ver la línea al final del archivo.

      Asegúrate con date que tu sistema está bien de fecha y hora.

      Ya está.

    • José Miguel

      Ah! Y acuérdate de sustituir en la línea » tu nombre de usuario» con el usuario real que usas en el sistema, para que la ruta sea correcta.

      • antonio

        muchas gracias!!! algí así encontré, pero me daba miedo tocar crontab, ahora lo he hecho con más tranquilidad.

  7. Leo

    Buenas, queria comentar algo que me ha pasado con los discos mapeados donde tengo todo mi contenido ‘audiovisual’ 🙂
    Resulta que un de un dia para otro, me han aparecido TODOS los archivos de mis discos externos encriptados (comprimidos con una extension 0xxx) y con tu .txt correspondiente del ‘hacker'(por decir algo) de turno pidiendo rescate en Bitcoins. Mi solucion? formatearlos, restaurar la imagen de mi microsd y volver a descargar todo.
    Pero el elemento en cuestion, por lo visto, volvio a meterse en mis discos y encriptar todo.
    Como puedo evitar que se me cuele este ramsonware en mis discos? algun consejo?
    Muchas gracias por atenderme y por todo el currazo.

    • Marcos

      Eso que dices es MUY GRAVE. El primer punto es cambiar absolutamente todas las contraseñas de la instalación. El segundo punto es revisar qué puertos tienes abiertos en el router. Vigila que en el router no tengas el 445 ni el 139. Por supuesto nada de ssh en el router. Resumiendo: ningún puerto mapeado que no sea necesario.
      Otra cosa: no tener nada compartido sin configurar privilegios (nada de carpetas compartidas con permisos 777).
      Que haya dos ataques con éxito seguidos es muy grave. Asume que tienen tus logins. Cámbialos todos y revisa qué le pasaba a lo que te encriptaron. Lo que te encriptaron era únicamente lo que tenías compartido? Ha habido más cosas afectadas que esas carpetas? Pásale un antivirus a absolutamente todo.

      • Leo

        Buenas, muchas gracias por tu respuesta.
        Respecto a los discos duros, me he dado cuenta que me ha encriptado el 99% de los archivos, y resulta que, como bien dices, eran todos los que tenian el 777 en permisos.
        Por tanto, la culpa en principio es mia, dado que tenian estos permisos para poder manejar las carpetas desde el PC y no tener que hacerlo via unix.
        Por lo que he leido, este chiquillo ruso ataca principalmente a NAS que estan configurados con muy poca seguridad y se vale de inexpertos como yo. No afecta a nada que no sean simplemente archivos accesibles y lo hace metiendo un ejecutable dentro del disco (sDfSerfDS.exe, de este tipo)y este es el que se encarga despues de comprimir y dejar con extension 0xxx todos los archivos a los que puede acceder.
        Ahora a ver como puedo hacer para evitar que entre de nuevo(pille a tiempo los exe una vez, pero a la segunda me pillo de lleno), mirare lo de los puertos y la configuracion del router. Te mantengo informado por si pudiera ayudar a algun otro incauto como yo 🙂
        Muchas gracias por la ayuda.

  8. Ricardo

    Hola, gracias por tus tutoriales. Los he seguido todos poco a poco. Yo estaba pensando en instalar Jellyfin y me pregunto cuales son las ventajas de hacerlo con Plex.
    Un saludo

    • Marcos

      Jellyfin explicaremos cómo instalarlo más adelante. Estaba en mis planes. Es un sistema genial, pero enfocado de forma muy distinta a Plex.

      – Con plex no necesitas montarte un servidor Web ni un proxy. Es muy sencillo de instalar y gestionar, tiene apps para todos los dispositivos (TV, smartphones, ordenadores, etc…) y tiene un interfaz muy atractivo. La contra es que no es software libre y como al gobierno de turno se le de por bloquearlo puede dejar tirados a sus usuarios.

      – Jellyfin es a priori más complicado de instalar (Aunque con Docker se simplifican las cosas). Necesita un servidor web, por lo que necesitas tener instalado un proxy si lo instalas con docker. Además las aplicaciones no están tan desarrolladas como Plex (hasta hace bien poco no había aplicación para televisores LG),además de ser más feas. Sin embargo es software libre en su totalidad, y al estar autohospedado nadie os puede tirar abajo el servicio.

      Cada uno tiene sus ventajas y sus inconvenientes. Dependiendo de lo que quieras, es mejor uno u otro. Cuestión de gustos. No creo que nadie pueda decir «Este es el mejor», porque hay puntos fuertes y débiles en ambos sistemas.

  9. Toni

    Lo primero: muy interesante el tutorial, a la par que sencillo y divertido, esto último gracias a los comentarios del «usuario anónimo» con el que más de una vez me identifico.
    Seguí el anterior tutorial hace años con mi Raspberry 4. Después de que murieran dos tarjetas SD, me decidí a seguir los pasos del tutorial en un mini-pc Lenovo que conseguí por «cuatro duros» en eBay y al que puse un disco SSD pequeñito. Al principio me costó un poco de trabajo, pero conseguí que todo funcionase en un Debian 10, sin entorno grafico… Y yo era feliz.
    Hace tres semanas me decidí a «planchar» el mini-pc y empezar el tutorial para hacer la instalación con Docker y ya de paso actualizar a Debian 12. Todo iba perfecto… y yo seguía siendo feliz… hasta que llegué a la Parte 7: Plex. La instalación funciona, y el contenido que pongo en las carpetas tv y movies lo reconoce sin problemas. El problema lo tengo en que yo en casa un equipo con carpetas compartidas en las que tengo mi contenido multimedia (fotos, vídeos, videoclips, conciertos, música…), y quiero acceder a esas carpetas compartidas desde el «Plex docketizado».
    Me dije a mí mismo: «venga Toni, tú eso lo puedes conseguir». Pero me engañaba a mí mismo. Llevo dos semanas peleándome con el tema y no encuentro una forma de acceder a esas carpetas compartidas en otro equipo desde Plex. ¿Existe alguna forma de montar esas carpetas en el volumen del docker? ¿O alguna forma de hacer lo que yo pretendo?
    He montado las carpetas compartidas en /media/fotos, /media/videoclips, etc. y puedo acceder al contenido del equipo remoto. Pero desde el docker de Plex no encuentro la manera.
    ¡¡SOY UN MANTA!! :»'(

    (NOTA: Perdón por lo largo del comentario.)

    • Marcos

      Vale. A ver si me aclaro. Supongo que lo que tienes es un equipo que comparte unas carpetas en la red local (supongo que mediante Samba). Quieres que el servidor de plex tome esas carpetas como las que tiene que compartir en su sistema.

      Si es así, hay varios puntos en los que puede fallar el sistema. Antes de nada sería bueno definir cómo estás compartiendo esas carpetas (si las comparte un servidor Windows, si las comparte un servidor linux…). Voy a suponer que lo estás haciendo desde un equipo con Windows de la forma estandar que lo hace Windows (todo lo que te voy a decir no sirve en otros casos).

      Si es así, lo primero que debes hacer es comprobar bien las credenciales con las que compartes esas carpetas. Es muy necesario saber bien el usuario y contraseña que tiene acceso a esas carpetas (y no recomiendo en absoluto dar acceso libre a todos los usuarios a algo compartido. Si lo haces y te entra un virus en un equipo de la red, puedes despedirte del contenido que estás compartiendo).
      Cuando tengas claro usuario y contraseña, debes instalar el cliente de samba en el host dónde estás instalando el docker.

      sudo apt-get install cifs-utils

      y luego puedes probar montando la carpeta.

      sudo mount -t cifs /// /mnt/peliculas -o username=(usuario),password=(contraseña),vers=3.0

      (por supuesto, hay que modificar cosas en ese comando).

      puedes agregar este comando al crontab para que lo ejecute cada vez que inicie la sesión o si quieres hacerlo más profesional puedes editar el /etc/fstab y añadir algo como esto.

      /// /mnt/peliculas cifs username=(usuario),password=(contraseña),vers=3.0 0 0

      Luego, en el docker, deberías cambiar la línea que pone

      – $DOCKERDIR/plex/movies:/movies

      por algo así.

      – /mnt/peliculas:/movies

      luego, desde dónde tienes el docker-compose.yml escribes estos dos comandos.

      sudo docker-compose down
      sudo docker-compose up -d

      Y si no me he equivocado debería funcionar.

      En todo caso sería recomendable que revisaras cómo compartes esa carpeta y todo lo referente a los permisos. Antes de comprobar el plex, mira que puedas entrar en /mnt/peliculas y que el sistema pueda leer los archivos que hay ahí. Si el sistema no puede leerlos, el plex tampoco va a poder.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© 2024 Flopy.es

Tema por Anders NorenArriba ↑

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies