Closed theggs closed 4 months ago
Seems to be working fine on mine and the demo instance. Does this happen with other movies? What about shows/video games?
Please share your docker compose file.
here is the docker compose file
services:
ryot-db:
image: postgres:16-alpine # at-least version 15 is required
restart: unless-stopped
volumes:
- /volume1/docker/ryot/data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
- POSTGRES_USER=postgres
- POSTGRES_DB=postgres
container_name: ryot-db
ryot:
image: ignisda/ryot:v6.2.0 # or ignisda/ryot:latest for the community version
environment:
- DATABASE_URL=postgres://postgres:postgres@ryot-db:5432/postgres
# - SERVER_PRO_KEY=<pro_key_issued_to_you> # if using the pro version
- FRONTEND_INSECURE_COOKIES=true # if running on HTTP
- RUST_BACKTRACE=full
- TZ="Asia/Shanghai"
ports:
- "8000:8000"
pull_policy: always
container_name: ryot
Are you running behind a firewall or have something that prevents Ryot to make requests to external APIs? Ryot uses external APIs (TMDb, Openlibrary, IGDb etc) to get data about media.
You can test this by docker exec -u root -it ryot bash
and then doing curl https://api.themoviedb.org/3
. You will get an API response like so:
# curl https://api.themoviedb.org/3 -vvv
* Trying 128.121.243.77:443...
* Trying [2a03:2880:f130:83:face:b00c:0:25de]:443...
* Immediate connect fail for 2a03:2880:f130:83:face:b00c:0:25de: Cannot assign requested address
It seems like a network issue of container in Synology NAS. Let me dig it farther.
I have disabled ipv6 now. -- though I think it is worth to test it because other softwares work fine with it.
The problem still exists. I think yes it is related to something like firewall. Searching for anim works fine.
I try to use a web proxy but it seems it doesn't work.
Here is the way I add proxy configuration: add environment variables, 192.168.3.205:7890 and 7891 is the proxy server:
- HTTPS_PROXY=http://192.168.3.205:7890
- HTTP_PROXY=http://192.168.3.205:7890
- ALL_PROXY=socks5://192.168.3.205:7891
It works on every other software like Jellyfin, Plex etc. But seems doesn't effect anything in ryot.
curl in container env after adding proxy:
curl https://api.themoviedb.org/3 -vvv
* Uses proxy env variable HTTPS_PROXY == 'http://192.168.3.205:7890'
* Trying 192.168.3.205:7890...
* Connected to 192.168.3.205 (192.168.3.205) port 7890 (#0)
* allocate connect buffer
* Establish HTTP proxy tunnel to api.themoviedb.org:443
> CONNECT api.themoviedb.org:443 HTTP/1.1
> Host: api.themoviedb.org:443
> User-Agent: curl/7.88.1
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
* CONNECT phase completed
* CONNECT tunnel established, response 200
* ALPN: offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN: server accepted h2
* Server certificate:
* subject: CN=*.themoviedb.org
* start date: Aug 20 00:00:00 2023 GMT
* expire date: Sep 17 23:59:59 2024 GMT
* subjectAltName: host "api.themoviedb.org" matched cert's "*.themoviedb.org"
* issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M03
* SSL certificate verify ok.
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /3]
* h2h3 [:scheme: https]
* h2h3 [:authority: api.themoviedb.org]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x555fa1762c80)
> GET /3 HTTP/2
> Host: api.themoviedb.org
> user-agent: curl/7.88.1
> accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/2 204
< date: Mon, 17 Jun 2024 06:01:56 GMT
< server: openresty
< x-cache: Miss from cloudfront
< via: 1.1 1a14b40ef6c4ba4b405703e2217e79c6.cloudfront.net (CloudFront)
< x-amz-cf-pop: NRT20-P1
< alt-svc: h3=":443"; ma=86400
< x-amz-cf-id: 3RRjMXlGHtaTgzlEl2zPRiZOnB6AAEym17Jx319kzwxIQYI2DNUDaQ==
< vary: Origin
<
* Connection #0 to host 192.168.3.205 left intact
Honestly I have no idea how to fix this issue. I do not use proxies on my network.
Are you aware of any Rust softwares that work fine on your server?
No, I don't have other Rust softwares running in a container. Let me see if I can find out something when I have time.
It seems surf is used as the http client of providers. surf don't support to use *_proxy for http proxy https://github.com/http-rs/surf/issues/114 and it stopped activing 2 years ago..
Hmm that's fair. I will swap out surf for reqwuest. Thanks for debugging.
@theggs Released with v6.2.3
. Please test and LMK if the issue is fixed.
@IgnisDa It works
Awesome!
Seaching for a movie (in fact searching for everything) fails after a long time waiting.
step to reproduce:
wind
and pressreturn
keyfull logs: