pablokbs / plex-rpi

212 stars 141 forks source link

Working? #24

Open vicgonva opened 3 years ago

vicgonva commented 3 years ago

Buenos días,

Actualmente este proyecto está funcionando?

He realizado el git clone, modificado el docker-compose.yaml con las configuraciones de red / unidad montada pero los dockers de transmission y flexget no acaban de levantar y no sé el motivo.

image

Muchas gracias!

jotaseme commented 3 years ago

23 Está resuelto aquí. Hay que agregar la carpeta complete en el storage.

EDITO: el issue que enlazo únicamente soluciona el error del contenedor de flex, el de transmission no he sido capaz de hacerlo funcionar tampoco, mismo error. Alguna idea?

bepece1 commented 3 years ago

23 Está resuelto aquí. Hay que agregar la carpeta complete en el storage.

EDITO: el issue que enlazo únicamente soluciona el error del contenedor de flex, el de transmission no he sido capaz de hacerlo funcionar tampoco, mismo error. Alguna idea?

Tengo el mismo problemas con el contenedor transmission, la cosa es que no genera ningun error y tpco genera logs en docker por lo que no sé como solucionarlo.

Alguna idea??? @pablokbs @bibaldo

Adjunto imagen donde puede verse que no se le asigna el puerto 9091 image

image

AlexRiosJ commented 3 years ago

Estoy teniendo el mismo problema con el contenedor de transmission, no he encontrado ninguna manera de echarlo a andar.

bepece1 commented 3 years ago

Estoy teniendo el mismo problema con el contenedor de transmission, no he encontrado ninguna manera de echarlo a andar.

Pues siento decirte que nadie me ha contestado sobre este asunto 😞

Keviinplz commented 3 years ago

Logre correr los contenedores, pero aun no logro que FlexGet descargue los torrents, mañana puedo subir mis configuraciones y setup!

transmission funciona bien (descarga los torrents que le paso) flexget funciona aparentemente bien (hizo el trabajo de mover el video a la libreria de plex) plex funciona bien

solo me falta conseguir que flexget busque y descargue las peliculas y series automaticamente

bepece1 commented 3 years ago

Logre correr los contenedores, pero aun no logro que FlexGet descargue los torrents, mañana puedo subir mis configuraciones y setup!

transmission funciona bien (descarga los torrents que le paso) flexget funciona aparentemente bien (hizo el trabajo de mover el video a la libreria de plex) plex funciona bien

solo me falta conseguir que flexget busque y descargue las peliculas y series automaticamente

Yeahhh, impaciente de ver cómo lo hiciste

Keviinplz commented 3 years ago

Hola!

Estoy trabajando sobre una Raspberry PI 4 de 2GB con Ubuntu 20.04

En el Docker Compose, para PLEX utilice la Imagen de LinuxServer, me pareció mas intuitiva y fácil.

Para Transmission le agregue una configuración nueva, ya que me dio problemas con el uso de Internet, sin embargo, aplique esta configuración a la Raspberry, así que no estoy seguro si esa configuración tiene que correr a nivel de host (es decir, la raspberry) o a nivel del contenedor.

Para FlexGet mantuve los cambios, usando la versión ARM que se encuentra en este mismo repositorio.

PD: Utilice la SD de la raspberry porque soy pobre y no tengo HDD :(

docker.compose.yaml

version: "3"
services:
  plex:
    image: ghcr.io/linuxserver/plex # imagen de linuxserver
    container_name: plex
    network_mode: host
    restart: unless-stopped
    environment:
      - PUID=1001
      - PGID=1001
      - VERSION=docker
      - PLEX_CLAIM= # aqui use un claim, pero es opcional
    volumes:
      - /home/kevin/plex/config:/config
      - /home/kevin/plex/media/movies:/movies
      - /home/kevin/plex/media/series:/tv

  transmission:
    image: jaymoulin/transmission
    command: transmission-daemon -f -g /config
    container_name: transmission
    volumes:
      - /home/kevin/plex/transmission:/config
      - ${STORAGE}:/downloads
      - /home/kevin/plex/transmission/config/sysctl.conf:/etc/sysctl.conf # nuevo 
    ports:
      - "9091:9091"
      - "51413:51413"
    restart: unless-stopped

  flexget:
    build: flexget
    container_name: flexget
    volumes:
      - /home/kevin/plex/flexget:/config
      - ${STORAGE}:/downloads
      - ${MEDIA}:/storage
    ports:
      - "5050:5050"
    environment:
      - TORRENT_PLUGIN=transmission
      - FB_WEBUI_PASSWD=${TRANSMISSION_PASSWORD}
    restart: unless-stopped
    links:
      - transmission

/home/kevin/plex/transmission/config/sysctl.conf

net.core.rmem_max = 4194304
net.core.wmem_max = 1048576

FlexGet Dockerfile:

FROM armhf/alpine
MAINTAINER bren

RUN apk add --update \
  tzdata \
  python \
  py-pip \
  ca-certificates \
  && pip install --no-cache-dir --disable-pip-version-check flexget==2.21.0 transmissionrpc==0.11 \
  && rm -rf /var/cache/apk/*

RUN apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/main tinyxml2 && \
    apk add --update --repository http://dl-cdn.alpinelinux.org/alpine/edge/community mediainfo && \
    apk add --update ffmpeg && \
    rm -rf /var/cache/apk/*

# Copy local files
COPY files/ /

# add default volumes
VOLUME /config /data
WORKDIR /config

# expose port for flexget webui
EXPOSE 3539 3539/tcp

# run init.sh to set uid, gid, permissions and to launch flexget
RUN chmod +x /scripts/init.sh
CMD ["/scripts/init.sh"]

Para la configuracion de FlexGet, use las mismas que @pablokbs

web_server: yes

schedules:
  - tasks: '*'
    interval:
      minutes: 1

templates:
  tv:
    series:
      settings:
        tv:
          exact: yes
          propers: 12 hours
          quality: 720p
      tv:
      - Black Mirror
      - Mr Robot
      - Rick and Morty
      - Silicon Valley
      - The Walking Dead
      - WandaVision

    transmission:
      host: transmission
      port: 9091
      username: keviinplz
      password: # owo

tasks:
  eztvrss:
    rss: https://eztv.re/ezrss.xml
    template: tv
    priority: 2
  showrss:
    rss: # owo
    template: tv
    priority: 2
  sort_tv:
    priority: 2
    no_entries_ok: yes
    parsing:
      series: guessit
    filesystem:
      path: /downloads/complete
      regexp: '.*\.(avi|mkv|mp4)$'
      recursive: yes
    accept_all: yes
    thetvdb_lookup: yes
    require_field: series_name
    all_series:
      parse_only: yes
    exec:
      auto_escape: yes
      on_output:
        for_entries: |
          if mediainfo "{{ location }}" | grep EAC3; then
            mkdir -p "/storage/series/{{ tvdb_series_name }}/Season {{ series_season }}" && ffmpeg -hwaccel auto -y -i "{{ location }}" -map 0 -c:s copy -c:v copy -c:a ac3 -b:a 640k "/storage/series/{{ tvdb_series_name }}/Season {{ series_season }}/{{ tvdb_series_name }} - {{ series_id }}{{ location | pathext }}"
          else
            mkdir -p "/storage/series/{{ tvdb_series_name }}/Season {{ series_season }}" && cp "{{ location }}" "/storage/series/{{ tvdb_series_name }}/Season {{ series_season }}/{{ tvdb_series_name }} - {{ series_id }}{{ location | pathext }}"
          fi
  sort_movies:
    priority: 2
    no_entries_ok: yes
    filesystem:
      path: /downloads/complete
      regexp: '.*\.(avi|mkv|mp4)$'
      recursive: yes
    accept_all: yes
    require_field: movie_name
    imdb_lookup: yes
    exec:
      auto_escape: yes
      on_output:
       for_entries: |
         if mediainfo "{{ location }}" | grep EAC3; then
           mkdir -p "/storage/movies/{{ movie_name }} ({{ movie_year }})" && ffmpeg -hwaccel auto -y -i "{{ location }}" -map 0 -c:s copy -c:v copy -c:a ac3 -b:a 640k "/storage/movies/{{ movie_name }} ({{ movie_year }})/{{ movie_name }} ({{ movie_year }}){{ location | pathext }}"
         else
           mkdir -p "/storage/movies/{{ movie_name }} ({{ movie_year }})" && cp "{{ location }}" "/storage/movies/{{ movie_name }} ({{ movie_year }})/{{ movie_name }} ({{ movie_year }}){{ location | pathext }}"
         fi
  remove_stale_torrents:
    from_transmission:
      host: transmission
      port: 9091
      username: keviinplz
      password: # owo
    disable: [seen, seen_info_hash]
    if:
      - transmission_progress == 100: accept
      - not transmission_seed_ratio_ok: reject
      - not transmission_idle_limit_ok: reject
    transmission:
      host: transmission
      port: 9091
      username: keviinplz
      password: # owo
      action: purge

Finalmente, mi repositorio de trabajo tiene la siguiente estructura

├── config
├── docker-compose.yaml
├── downloads
│   ├── complete
│   ├── incomplete
│   └── uncomplete
├── flexget
│   ├── Dockerfile
│   ├── config.yml
│   ├── files
│   │   └── scripts
│   │       └── init.sh
├── media
│   ├── movies
│   └── series
└── transmission
    ├── config
    │   └── sysctl.conf
    ├── settings.json
Keviinplz commented 3 years ago

Algunas imagenes:

Vista del docker-compose ps

Interfaz web FlexGet

Interfaz web Transmission

Keviinplz commented 3 years ago

Disculpen, olvide subir el settings.json de Transmission

{
    "alt-speed-down": 100,
    "alt-speed-enabled": false,
    "alt-speed-time-begin": 660,
    "alt-speed-time-day": 127,
    "alt-speed-time-enabled": false,
    "alt-speed-time-end": 300,
    "alt-speed-up": 20,
    "bind-address-ipv4": "0.0.0.0",
    "bind-address-ipv6": "::",
    "blocklist-enabled": false,
    "blocklist-url": "http://www.example.com/blocklist",
    "cache-size-mb": 4,
    "dht-enabled": true,
    "download-dir": "/downloads/complete",
    "download-queue-enabled": true,
    "download-queue-size": 5,
    "encryption": 1,
    "idle-seeding-limit": 300,
    "idle-seeding-limit-enabled": true,
    "incomplete-dir": "/downloads/incomplete",
    "incomplete-dir-enabled": true,
    "lpd-enabled": false,
    "message-level": 1,
    "peer-congestion-algorithm": "",
    "peer-id-ttl-hours": 6,
    "peer-limit-global": 200,
    "peer-limit-per-torrent": 50,
    "peer-port": 51413,
    "peer-port-random-high": 65535,
    "peer-port-random-low": 49152,
    "peer-port-random-on-start": false,
    "peer-socket-tos": "default",
    "pex-enabled": true,
    "port-forwarding-enabled": true,
    "preallocation": 1,
    "prefetch-enabled": true,
    "queue-stalled-enabled": true,
    "queue-stalled-minutes": 30,
    "ratio-limit": 1.1000,
    "ratio-limit-enabled": true,
    "rename-partial-files": true,
    "rpc-authentication-required": true,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-host-whitelist": "",
    "rpc-host-whitelist-enabled": true,
    "rpc-password": "#owo",
    "rpc-port": 9091,
    "rpc-url": "/transmission/",
    "rpc-username": "keviinplz",
    "rpc-whitelist": "*.*.*.*",
    "rpc-whitelist-enabled": true,
    "scrape-paused-torrents-enabled": true,
    "script-torrent-done-enabled": false,
    "script-torrent-done-filename": "",
    "seed-queue-enabled": true,
    "seed-queue-size": 5,
    "speed-limit-down": 100,
    "speed-limit-down-enabled": false,
    "speed-limit-up": 200,
    "speed-limit-up-enabled": true,
    "start-added-torrents": true,
    "trash-original-torrent-files": true,
    "umask": 2,
    "upload-slots-per-torrent": 14,
    "utp-enabled": true,
    "watch-dir": "/to_download",
    "watch-dir-enabled": false
}

Saludos, me dicen si les funciono, y ojala me ayuden con lo de descargar torrents automaticamente! :)

pablokbs commented 3 years ago

Buenas @Keviinplz , lo que deberias hacer para probar a ver si te salta algun error, es correr la tarea manualmente desde el contenedor de flexget:

flexget execute --dump --tasks eztvrss

Tirá ese comando y veamos que te dice, creo que el lunes que viene hago un vivo tratando de responder todos estos issues

Keviinplz commented 3 years ago

Holaa!

Tire el comando, al parecer no se decide por descargarlos jaja

$ docker-compose exec flexget flexget execute --dump --task eztvrss

There is a FlexGet process already running for this config, sending execution there.
2021-02-08 15:27 VERBOSE  input_cache   eztvrss         Restored entries from cache
2021-02-08 15:27 VERBOSE  details       eztvrss         Produced 50 entries.
2021-02-08 15:28 VERBOSE  details       eztvrss         Summary - Accepted: 0 (Rejected: 0 Undecided: 50 Failed: 0)

Y luego una lista con los torrents (entre ellos, algunos que puse explicitamente que descargara)

febag commented 3 years ago

Hola!

En mi caso todos los servicios funcionan correctamente, excepto transmission, que no arranca las descargas de los torrent que le pasa FlexGet.

Inicialmente me aparecía este error en el contenedor de transmission:

$ docker logs 21e5dec61d06
[2037-06-03 02:13:20.005] UDP Failed to set receive buffer: requested 4194304, got 360448 (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/tr-udp.c:97)
[2037-06-03 02:13:20.005] UDP Failed to set send buffer: requested 1048576, got 360448 (/home/buildozer/aports/community/transmission/src/transmission-3.00/libtransmission/tr-udp.c:105)

Pero conseguí hacerlo desaparecer añadiendo las siguientes líneas al fichero /etc/sysctl.conf en el host (Mi Raspberry Pi 3).

net.core.rmem_max = 4194304
net.core.wmem_max = 1048576

También probé a pasar ese fichero como un volumen del servicio transmission, tal y como hace @Keviinplz en su docker-compose.yaml, pero no me funcionó.

Si le paso explícitamente el magnet de un torrent a transmission ocurre lo mismo, se queda en la cola al 0% y no arranca.

¿Alguien tiene alguna idea para solucionar esto?

Gracias y saludos!


Edit: Encontré la solución aquí

https://gitlab.alpinelinux.org/alpine/aports/-/issues/12091

Espero que os sirva si os encontrais con este problema

HaroldBrenesH commented 3 years ago

@febag Hola, me pregunto si cuando mencionas que te funciona, fue con clonando el repo actual, con los archivos de @pablokbs o aplicando algo de lo que sale en este foro?. Ya que a me me da algunos de los problemas que mencionan, y no veo pull request con los aportes.

Si tu proyecto si corre, seria genial si publicas tu repo, es que estoy tratando de aprender pero este monton de erroes me supera. Gracias

Keviinplz commented 3 years ago

@febag Cuando le pasaba el torrent a transmission si descargaba, sin embargo flexget no lograba pasarle la info a transmission. Lo que veo es que tu hiciste la configuración de /etc/sysctl.conf en el host. Probaré si haciendo esa modificación me funciona.

(Uso una Raspberry 4 con Ubuntu Server.)

febag commented 3 years ago

Hola @HaroldBrenesH, en mi caso no tuve ningún problema con el repo. Mi problema era que mi host era incompatible con el contenedor de Transmission, basado en Alpine 3.13. Al parecer, esto ocurre con algunas distribuciones y es un bug en libseccomp2, que es una dependencia de Docker. En el siguiente enlace viene explicado:

https://docs.linuxserver.io/faq#libseccomp

La solución a este problema viene explicada en un comentario de la issue que he puesto en mi anterior mensaje, y consiste en ejecutar las siguientes líneas en el host.

wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1~bpo10+1_armhf.deb
sudo dpkg -i libseccomp2_2.4.4-1~bpo10+1_armhf.deb

Una vez hecho esto, reinicié el contenedor de Transmission y las descargas arrancaron correctamente.

@Keviinplz, el cambio que comentas, lo deshice una vez que probé esta solución, y todo seguía funcionando correctamente.

ceiman commented 1 year ago

Muy buenas, alguien tiene publicado algun repo que corra correctamente de Flexget-Plex-Transmission ? O quizas Pablo hizo el live para poder verlo y sacar conclusiones. Gracias mil!