Jellyfin android app ne fonctionne qu'en réseau local

What app is this about, and its version: 10.11.11~ynh1
What YunoHost version are you running: 12.1.40.1
What type of hardware are you using: Virtual machine

Describe your issue

Bonjour,
Sur le réseau local, le serveur Jellyfin est bien accessible à partir de la page web et de l’application Jellyfin Android.
En dehors de mon réseau local, l’application Android Jellyfin ne fonctionne plus alors que la page web permet toujours d’accéder au contenu de Jellyfin.

L’application est associée à un sous-domaine. Le sous domaine a un certificat Let’s Encrypt.
Les ports par défaut de Jellyfin : 8096 (HTTP) et 8920 (HTTPS) sont ouverts sur le firewall de mon routeur.
La compatibilité de Yunohost est configuré sur “intermediate”.
Les ports sont ouverts dans le firewall de Yunohost.

La configuration de Jellyfin de pointe pas vers le certificat SSL du sous-domaine, aussi, il n’est pas possible d’activer le HTTPS.

Si j’ai bien compris :

L’interface web de Jellyfin n’utilise que HTTPS(443) pour accéder au contenu et l’afficher. Ce qui ne pose pas de problème Yunohost est prévu pour.
L’application Android Jellyfin utilise des websockets avec les ports dédiés 8096 ou 8920.
J’ai bien ouvert les ports, mais il semble que le lien ne se fasse pas.

Si Jellyfin nécessite l’activation du HTTPS, il faudrait indiquer le “Chemin vers le certificat SSL personnalisé” dans la configuration de Jellyfin.

Ou alors, il pourrait y avoir un souci de configuration du reverse-proxy Nginx puisque la documentation indique une configuration spécifique pour les websocket avec Nginx :

que je ne retrouve pas lorsque je regarde la configuration de nginx avec :

sudo /usr/sbin/nginx -T > nginx-config.txt
cat nginx-config.txt
#configuration file /etc/nginx/conf.d/xxxx.fr.d/jellyfin.conf:
#sub_path_only rewrite ^/$ / permanent;
location / {

  proxy_pass http://127.0.0.1:8096/;

  include proxy_params_with_auth;
  proxy_pass_request_headers on;

  #Disable a specific header for compatability with LG TV app
  #Fixes https://github.com/YunoHost-Apps/jellyfin_ynh/issues/125
  if ($http_user_agent ~ Web0S) {
    more_set_headers "X-Frame-Options : ";
  }

  #Disable buffering when the nginx proxy gets very resource heavy upon streaming
  proxy_buffering off;
}
location /socket {
  proxy_pass http://127.0.0.1:8096/socket;
  include proxy_params_with_auth;
 proxy_set_header X-Forwarded-Protocol $scheme;
}

Dans les deux cas, je suis coincé.
Je ne suis pas sûr du fichier à indiquer à Jellyfin pour le certificat SSL du sous-Domaine
J’ai testé avec “/var/www/.well-known/acme-challenge-private/xxx.fr.csr”, mais j’ai une erreur 404 dans la configuration de Jellyfin.
J’ai tenté d’ajouter les “proxy_set_header” indiqués dans la doc de Jellyfin dans le fichier de configuration Nginx de Jellyfin : /etc/nginx/conf.d/xxxx.fr.d/jellyfin.conf, mais j’ai des messages d’erreur que je n’arrive pas à résoudre.

De plus, peut-être que je suis une mauvaise piste.

Des idées, des suggestions ?

Merci ,
Cyril

Share relevant logs or error messages

Message d’erreur de l’application android Jellyfin :

Connection cannot be established.
Please check the hostname and your network connection.

Je ne vois pas trop d’où peut venir ce problème, chez moi ça fonctionne parfaitement…

Pour confirmer, tu essayes avec la version officielle de Jellyfin ? Est-ce que ça fonctionne avec un client tiers ?

idem pour moi tout fonctionne bien dans l’appli android Jellyfin sans avoir à customiser les paramètres. A mon sens il n’y a pas lieu d’ouvrir les ports sur ton routeur car nginx route la socket vers le bon port (cf location /socket {...).
As-tu bien renseigner le serveur comme ceci dans l’appli android : https://jellyfin.domain.tld ?

Merci pour vos réponses !

Oui, oui, c’est bien la version officielle de Jellyfin et je mets bien l’URL complète comme pour le navigateur.

Si ça fonctionne bien pour vous, alors c’est ma configuration qui a un souci, je vais tester un backup de la bibliothèque, des métadonnées … et réinstaller.

C’est peut-être une mise à jour qui s’est mal placé.

C’est assez relou, mais si tu utilises ADB pour suivre le log de ton device ?

Ok, je vais me renseigner sur l’utilisation d’ADB. Dommage qu’il n’y ait pas de journaux sur l’appli Android.

J’ai réinstallé JellyFin et restauré ma sauvegarde et le problème reste identique.
Le blocage vient donc d’avant l’application.

J’ai vérifié les log nginx de Yunohost et il ne se passe pas grand-chose quand l’appli cherche à communiquer avec le serveur de l’extérieur. Je vais comparer avec le fonctionnement en local !

@Tho Est-ce que tu peux m’indiquer des clients tiers ?

Ceux qui me viennent en tête sont Findroid (dispo sur F-Droid) et Streamyfin

Ca me fait pareil avec Findroid !
" Le mystère reste entier ! " :laughing:

Et en passant par le naviguateur internet sur ton android avec l’adresse https://sousdomain sur le reseau local et hors du reseau local ca dit quoi ?

Oui, là ça fonctionne bien !
on dirait que l’application Android nécessite un accès supplémentaire.