MainKronos / Sonarr-AnimeDownloader

It is a Docker Container that uses Sonarr to download anime from AnimeWorld site (ITALY).
https://mainkronos.github.io/Sonarr-AnimeDownloader/
MIT License
43 stars 10 forks source link

[QUESTION] Problema Docker su UNRAID #144

Closed geenopippo closed 2 weeks ago

geenopippo commented 2 weeks ago

Descrizione

Salve, sto provando ad utilizzare questo plugin, installandolo su Unraid. Ho modificato il file yml come segue:

services:
  mainkronos:
    container_name: AnimeDownloader
    volumes:
      - '/mnt/user/appdata/animedownloader:/src/database'
      - '/mnt/user/media/Anime:/tv'
      - '/mnt/user/download:/downloads'
      - '/path/to/connections:/src/script'
    ports:
      - 'port:5000'
    environment:
      - 'SONARR_URL=192.168.1.113:8989'
      - 'API_KEY=11d44cc3628f4828bede907f1d26c6e8'
      - 'TZ=Europe/Rome'
      - 'PUID=1000'
      - 'PGID=1000'
    image: 'ghcr.io/mainkronos/anime_downloader:latest'

Nel momento in cui avvio il deploy dello stack mi da il seguente errore:

invalid host Port: port

Come posso risolvere? Grazie mille per la disponibilità!

Conferma di presa visione

MainKronos commented 2 weeks ago

Non hai definito la porta da aprire all'esterno del container, doc qui

prova così:

services:
  mainkronos:
    container_name: AnimeDownloader
    volumes:
      - '/mnt/user/appdata/animedownloader:/src/database'
      - '/mnt/user/media/Anime:/tv'
      - '/mnt/user/download:/downloads'
      - '/path/to/connections:/src/script'
    ports:
      - '5555:5000'
    environment:
      - 'SONARR_URL=192.168.1.113:8989'
      - 'API_KEY=11d44cc3628f4828bede907f1d26c6e8'
      - 'TZ=Europe/Rome'
      - 'PUID=1000'
      - 'PGID=1000'
    image: 'ghcr.io/mainkronos/anime_downloader:latest'

In questo modo puoi raggiungere il servizio collegandoti alla pagina http://localhost:5555

geenopippo commented 2 weeks ago

Ho provato, ma ora restituisce il seguente errore:

usermod: no changes
Traceback (most recent call last):
  File "/src/main.py", line 29, in <module>
    main()
  File "/src/main.py", line 10, in main
    core = Core()
  File "/src/components/backend/core/Core.py", line 50, in __init__
    self.tags = tags if tags else Tags(ctx.DATABASE_FOLDER.joinpath('tags.json'))
  File "/src/components/backend/database/Database.py", line 15, in __init__
    if not db.is_file(): raise FileNotFoundError()
FileNotFoundError
ERROR: Successusermod: no changes
Traceback (most recent call last):
  File "/src/main.py", line 29, in <module>
    main()
  File "/src/main.py", line 10, in main
    core = Core()
  File "/src/components/backend/core/Core.py", line 50, in __init__
    self.tags = tags if tags else Tags(ctx.DATABASE_FOLDER.joinpath('tags.json'))
  File "/src/components/backend/database/Database.py", line 15, in __init__
    if not db.is_file(): raise FileNotFoundError()
FileNotFoundError
ERROR: Successusermod: no changes
Traceback (most recent call last):
  File "/src/main.py", line 29, in <module>
    main()
  File "/src/main.py", line 10, in main
    core = Core()
  File "/src/components/backend/core/Core.py", line 50, in __init__
    self.tags = tags if tags else Tags(ctx.DATABASE_FOLDER.joinpath('tags.json'))
  File "/src/components/backend/database/Database.py", line 15, in __init__
    if not db.is_file(): raise FileNotFoundError()
FileNotFoundError
ERROR: Success

-------------------------------------
GID/UID
-------------------------------------
User uid:       1000
User gid:       1000
-------------------------------------
MainKronos commented 2 weeks ago

all'interno della cartella /mnt/user/appdata/animedownloader copiaci questi file: https://github.com/MainKronos/Sonarr-AnimeDownloader/tree/main/src/database

geenopippo commented 2 weeks ago

Purtroppo non è cambiato nulla, questi sono i log:

AnimeDownloader | usermod: no changes AnimeDownloader | Traceback (most recent call last): AnimeDownloader | File "/src/main.py", line 29, in AnimeDownloader | main() AnimeDownloader | File "/src/main.py", line 10, in main AnimeDownloader | core = Core() AnimeDownloader | File "/src/components/backend/core/Core.py", line 50, in init AnimeDownloader | self.tags = tags if tags else Tags(ctx.DATABASE_FOLDER.joinpath('tags.json')) AnimeDownloader | File "/src/components/backend/database/Database.py", line 18, in init AnimeDownloader | self._data = self.read() AnimeDownloader | File "/src/components/backend/database/Database.py", line 23, in read AnimeDownloader | return json.load(f) AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 293, in load AnimeDownloader | return loads(fp.read(), AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 346, in loads AnimeDownloader | return _default_decoder.decode(s) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode AnimeDownloader | obj, end = self.raw_decode(s, idx=_w(s, 0).end()) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode AnimeDownloader | raise JSONDecodeError("Expecting value", s, err.value) from None AnimeDownloader | json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6) AnimeDownloader | AnimeDownloader | AnimeDownloader | ------------------------------------- AnimeDownloader | GID/UID AnimeDownloader | ------------------------------------- AnimeDownloader | User uid: 1000 AnimeDownloader | User gid: 1000 AnimeDownloader | ------------------------------------- AnimeDownloader | AnimeDownloader | AnimeDownloader | ERROR: Successusermod: no changes AnimeDownloader | Traceback (most recent call last): AnimeDownloader | File "/src/main.py", line 29, in AnimeDownloader | main() AnimeDownloader | File "/src/main.py", line 10, in main AnimeDownloader | core = Core() AnimeDownloader | File "/src/components/backend/core/Core.py", line 50, in init AnimeDownloader | self.tags = tags if tags else Tags(ctx.DATABASE_FOLDER.joinpath('tags.json')) AnimeDownloader | File "/src/components/backend/database/Database.py", line 18, in init AnimeDownloader | self._data = self.read() AnimeDownloader | File "/src/components/backend/database/Database.py", line 23, in read AnimeDownloader | return json.load(f) AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 293, in load AnimeDownloader | return loads(fp.read(), AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 346, in loads AnimeDownloader | return _default_decoder.decode(s) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode AnimeDownloader | obj, end = self.raw_decode(s, idx=_w(s, 0).end()) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode AnimeDownloader | raise JSONDecodeError("Expecting value", s, err.value) from None AnimeDownloader | json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6) AnimeDownloader | AnimeDownloader | AnimeDownloader | ------------------------------------- AnimeDownloader | GID/UID AnimeDownloader | ------------------------------------- AnimeDownloader | User uid: 1000 AnimeDownloader | User gid: 1000 AnimeDownloader | ------------------------------------- AnimeDownloader | AnimeDownloader | AnimeDownloader | ERROR: Successusermod: no changes AnimeDownloader | Traceback (most recent call last): AnimeDownloader | File "/src/main.py", line 29, in AnimeDownloader | main() AnimeDownloader | File "/src/main.py", line 10, in main AnimeDownloader | core = Core() AnimeDownloader | File "/src/components/backend/core/Core.py", line 50, in init AnimeDownloader | self.tags = tags if tags else Tags(ctx.DATABASE_FOLDER.joinpath('tags.json')) AnimeDownloader | File "/src/components/backend/database/Database.py", line 18, in init AnimeDownloader | self._data = self.read() AnimeDownloader | File "/src/components/backend/database/Database.py", line 23, in read AnimeDownloader | return json.load(f) AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 293, in load AnimeDownloader | return loads(fp.read(), AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 346, in loads AnimeDownloader | return _default_decoder.decode(s) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode AnimeDownloader | obj, end = self.raw_decode(s, idx=_w(s, 0).end()) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode AnimeDownloader | raise JSONDecodeError("Expecting value", s, err.value) from None AnimeDownloader | json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6) AnimeDownloader | AnimeDownloader | AnimeDownloader | ------------------------------------- AnimeDownloader | GID/UID AnimeDownloader | ------------------------------------- AnimeDownloader | User uid: 1000 AnimeDownloader | User gid: 1000 AnimeDownloader | ------------------------------------- AnimeDownloader | AnimeDownloader | AnimeDownloader | ERROR: Successusermod: no changes AnimeDownloader | Traceback (most recent call last): AnimeDownloader | File "/src/main.py", line 29, in AnimeDownloader | main() AnimeDownloader | File "/src/main.py", line 10, in main AnimeDownloader | core = Core() AnimeDownloader | File "/src/components/backend/core/Core.py", line 49, in init AnimeDownloader | self.settings = settings if settings else Settings(ctx.DATABASE_FOLDER.joinpath('settings.json')) AnimeDownloader | File "/src/components/backend/database/Database.py", line 18, in init AnimeDownloader | self._data = self.read() AnimeDownloader | File "/src/components/backend/database/Database.py", line 23, in read AnimeDownloader | return json.load(f) AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 293, in load AnimeDownloader | return loads(fp.read(), AnimeDownloader | File "/usr/local/lib/python3.9/json/init.py", line 346, in loads AnimeDownloader | return _default_decoder.decode(s) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode AnimeDownloader | obj, end = self.raw_decode(s, idx=_w(s, 0).end()) AnimeDownloader | File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode AnimeDownloader | raise JSONDecodeError("Expecting value", s, err.value) from None AnimeDownloader | json.decoder.JSONDecodeError: Expecting value: line 7 column 1 (char 6) AnimeDownloader | AnimeDownloader | AnimeDownloader | ------------------------------------- AnimeDownloader | GID/UID AnimeDownloader | ------------------------------------- AnimeDownloader | User uid: 1000 AnimeDownloader | User gid: 1000 AnimeDownloader | ------------------------------------- AnimeDownloader | AnimeDownloader |

MainKronos commented 2 weeks ago

sembrerebbe che il file settings.json sia vuoto

geenopippo commented 2 weeks ago

Quindi non ho modo di risolvere?

MainKronos commented 2 weeks ago

No no, un modo si trova 😅. Sei sicuro di aver copiato i questi file ed il loro contenuto nella cartella /mnt/user/appdata/animedownloader?

Prova ad aprire il file setting.json e inviami il contenuto

geenopippo commented 2 weeks ago

Si, sono sicuro! Non posso incollare il contenuto perchè troppo lungo, ma è presente del codice.

image

geenopippo commented 2 weeks ago

Anteprima file json

image

MainKronos commented 2 weeks ago

Direi che c'è un problema, il contenuto dei file dovrebbero essere questi:

connections.json

[]

settings.json

{
    "LogLevel": "DEBUG",
    "MoveEp": true,
    "RenameEp": true,
    "AutoBind": false,
    "ScanDelay": 30,
    "TagsMode": "BLACKLIST"
}

table.json

[]

tags.json

[]
geenopippo commented 2 weeks ago

Come posso risolvere? Sarebbe la soluzione migliore per vedere gli anime sul mio server

MainKronos commented 2 weeks ago

basta che sovrascrivi i file che ti ho elencato con il rispettivo contenuto, altrimenti usa la versione dev:

services:
  mainkronos:
    container_name: AnimeDownloader
    volumes:
      - '/mnt/user/appdata/animedownloader:/src/database'
      - '/mnt/user/media/Anime:/tv'
      - '/mnt/user/download:/downloads'
      - '/path/to/connections:/src/script'
    ports:
      - '5555:5000'
    environment:
      - 'SONARR_URL=192.168.1.113:8989'
      - 'API_KEY=11d44cc3628f4828bede907f1d26c6e8'
      - 'TZ=Europe/Rome'
      - 'PUID=1000'
      - 'PGID=1000'
    image: 'ghcr.io/mainkronos/anime_downloader:dev'

related #140

geenopippo commented 2 weeks ago

Proverò con la versione dev. Ma al posto di path to connections posso mettere una generica cartella?

MainKronos commented 2 weeks ago

si si, certo

geenopippo commented 2 weeks ago

Ho provato la versione dev e questo è ciò che mi danno i log.

AnimeDownloader | usermod: no changes AnimeDownloader | Traceback (most recent call last): AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 69, in map_httpcore_exceptions AnimeDownloader | yield AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 233, in handle_request AnimeDownloader | resp = self._pool.handle_request(req) AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py", line 167, in handle_request AnimeDownloader | raise UnsupportedProtocol( AnimeDownloader | httpcore.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol. AnimeDownloader | AnimeDownloader | The above exception was the direct cause of the following exception: AnimeDownloader | AnimeDownloader | Traceback (most recent call last): AnimeDownloader | File "/src/main.py", line 29, in AnimeDownloader | main() AnimeDownloader | File "/src/main.py", line 10, in main AnimeDownloader | core = Core() AnimeDownloader | File "/src/components/backend/core/Core.py", line 59, in init AnimeDownloader | self.sonarr = sonarr if sonarr else Sonarr(ctx.SONARR_URL, ctx.API_KEY) AnimeDownloader | File "/src/components/backend/connection/Sonarr.py", line 23, in init AnimeDownloader | self.systemStatus().raise_for_status() AnimeDownloader | File "/src/components/backend/connection/Sonarr.py", line 32, in systemStatus AnimeDownloader | return self.client.get("/system/status") AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1054, in get AnimeDownloader | return self.request( AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 827, in request AnimeDownloader | return self.send(request, auth=auth, follow_redirects=follow_redirects) AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 914, in send AnimeDownloader | response = self._send_handling_auth( AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 942, in _send_handling_auth AnimeDownloader | response = self._send_handling_redirects( AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 979, in _send_handling_redirects AnimeDownloader | response = self._send_single_request(request) AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_client.py", line 1015, in _send_single_request AnimeDownloader | response = transport.handle_request(request) AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 233, in handle_request AnimeDownloader | resp = self._pool.handle_request(req) AnimeDownloader | File "/usr/local/lib/python3.9/contextlib.py", line 135, in exit AnimeDownloader | self.gen.throw(type, value, traceback) AnimeDownloader | File "/usr/local/lib/python3.9/site-packages/httpx/_transports/default.py", line 86, in map_httpcore_exceptions AnimeDownloader | raise mapped_exc(message) from exc AnimeDownloader | httpx.UnsupportedProtocol: Request URL is missing an 'http://' or 'https://' protocol. AnimeDownloader | AnimeDownloader | AnimeDownloader | ------------------------------------- AnimeDownloader | GID/UID AnimeDownloader | ------------------------------------- AnimeDownloader | User uid: 1000 AnimeDownloader | User gid: 1000 AnimeDownloader | ------------------------------------- AnimeDownloader | AnimeDownloader |

Per caso hai intenzione di pubblicare questo lavoro su dockerhub?

berta24 commented 2 weeks ago

Ciao, anche io ho UNRAID ma l'ho installato come docker non come plugin, ti risulta molto più facile... questo è il mio comando, docker run -d --name='AnimeDL' --net='bridge' --privileged=true -e TZ="Europe/Berlin" -e HOST_OS="Unraid" -e HOST_HOSTNAME="Tower" -e HOST_CONTAINERNAME="AnimeDL" -e 'SONARR_URL'='http://192.168.178.116:8989' -e 'API_KEY'='XXXX' -e 'TZ'='Europe/Rome' -e 'PGID'='0' -e 'PUID'='0' -l net.unraid.docker.managed=dockerman -l net.unraid.docker.webui='http://192.168.178.116:5000' -p '5000:5000/tcp' -v '/mnt/user/Plex/Serie':'/tv':'rw' -v '/mnt/user/Plex/Download/':'/downloads':'rw' -v '/mnt/user/appdata/animeDL/json/':'/src/database':'rw' -v '/mnt/user/appdata/animeDL/connections/':'/src/script/':'rw' -v '/mnt/remotes/192.168.178.182_Anime':'/tvNAS':'rw,slave' puoi impostare anche i campi manualmente image

geenopippo commented 2 weeks ago

@berta24 come hai fatto ad aprire la sezione di creazione di un docker container? Basta far partire il comando iniziale da console?

berta24 commented 2 weeks ago

se tu vai in docker, in fondo alla pagina c'è Add container image

il default è questo, e lo completi con tutti i dati image

geenopippo commented 2 weeks ago

@berta24 per far uscire le sezioni come nella tua foto, do il comando docker run dalla console? Oppure devo manualmente scrivere tutto?

berta24 commented 2 weeks ago

devi aggiungere ogni singola componente a mano, andando su docker -> add container -> e poi image

qui devi aggiungere manualmente tutti i path, variabili, porte, ecc come ho fatto io

image

geenopippo commented 2 weeks ago

Con il metodo di @berta24 il docker parte. Ma poi i log mi danno questo messaggio:

❌ Serie 'Mirai Nikki' scartata perchè non ha nessuno dei tag [].

Non ho impostato nessun tag però

image

berta24 commented 2 weeks ago

Ottimo, questo è un problema di Sonarr però. devi impostare obbligatoriamente il tag anime image

geenopippo commented 2 weeks ago

image

geenopippo commented 2 weeks ago

Ok, sono riuscito a risolvere, Chiudo il post e ringrazio per il supporto!