[Tuto] Installation de Jellyfin + Transcodage matériel (HW) + Acces HTTPS en Docker

Salutation a toute la communauté.
Merci pour ce tuto. Neophyte, j'hesite a franchir le pas.
Actuellement je possède un "vieu" ds216+II avec 8go de ram, avec un server plex sur nvidia shield.
Vous pensez que le nas peux tenir la route via jellyfin ?
 
Bonjour,

Tout d'abord merci pour ce guide. Je souhaite activer le HTTPS sur Jellyfin, j'ai donc suivi toute votre démarche mais j'ai un problème à la fin en tapant dans la barre de recherche https://superjellyfin.blablbla.com j'obtiens une erreur m'annonçant un échec de la connexion sécurisée et je ne vois pas d'ou peut provenir le problème. Auriez-vous une piste ?


EDIT: Une simple faute de frappe à transformer le 443 en 433 dans les règles NAT/PAT dans la box internet... Maintenant cela marche !
 
Dernière édition:
  • J'aime
Réactions: EVO
Bon j'ai installer Jellyfin en suivant le tuto. Parfait.
Par contre je rencontrte un petit soucis. En effet lorsque ma shield lis de gros fichier, pas de transcodage, par contre dès que je lis de vieux manga en 540p h264 mon ds216+II peine a charger la video 'j'ai un message d'erreur pour me dire que le container n'es pas compatible avec le format video) et la shield a du mal a les lire, alors que sur plex aucun soucis. Je ne comprends pas trop le soucis.
 
Bonjour,

Je me tâte pour installer Jellyfin pour comparer avec Plex.

J'ai quand même quelques questions car je trouve bien compliqué votre tuto.

Car sur le site de Jellyfin, aucune ligne de commande en quelques clics c'est fait : https://jellyfin.org/docs/general/installation/synology/
d'après ce que j'ai compris.
Quelle est donc la différence avec votre tuto ?

De plus sur mon Nas dans les paquets, j'ai tapé Jellyfin et il y a un paquet Jellyfin.

Donc au final, quel est la meilleur méthode s'il vous plaît sans se prendre la tête à se connecter en ssh ou je ne sais quoi pour les allergiques de la ligne de commande.

Quels sont du coup les tenants et aboutissant des deux méthodes que j'ai cité et la votre ?

Merci d'avance de vos réponses.
 
Car sur le site de Jellyfin, aucune ligne de commande en quelques clics c'est fait : https://jellyfin.org/docs/general/installation/synology/
d'après ce que j'ai compris.
Quelle est donc la différence avec votre tuto ?
Pas de transcodage hardware, pas de gestion de l'utilisateur pour les permissions des dossiers partagée, la configuration est perdue dans le cas d'une réinstallation du conteneur, pas de configuration HTTPS pour l’accès externe, pas possible par la suite de configurer les mise à jours automatique sur le conteneur, ...

De plus sur mon Nas dans les paquets, j'ai tapé Jellyfin et il y a un paquet Jellyfin.
Peut être maintenu par la communauté ? Je ne le connais pas.
 
Merci de votre réponse.

Il n'y a aucun accès au nas depuis l'extérieur. Si je veux vraiment y accéder j'active mon vpn perso.
Puis j'attaque par l'ip.

Qu'apporte le transcodage sur un nas ds920+ s'il vous plaît et en général ?

Merci pour vos réponses.
 
Qu'apporte le transcodage sur un nas ds920+ s'il vous plaît et en général ?
Permet de modifier le bitrate / codec d'un fichier a la volée.
Par exemple si le fichier n'et pas compatible avec le client, alors Plex va l'adapter.
Si le débit internet du client distant n'est pas suffisant, alors Plex va réduire le débit du fichier ( et la qualité )
 
Je suppose que vous vouliez dire Jellyfin, même si c'est le même usage pour Plex.

Remarque si ça fait comme Plex qui même en local me mets a transcoder tout et n'importe quoi alors que c'est compatible et arrive même à saturer le CPU du nas ça me fait un peu peur cette histoire.

Dernière question, la comptabilité avec le format dolby vision est-elle d'actualité sur Jellyfin ?
 
Donc il faut activer le transcodage matériel pour avoir le dobly vision si je comprends bien et dans ce cas il faut utiliser votre méthode et pas les deux autres, ok va falloir mettre les mains dans le camboui.
 
Bonjour EVOTk

J'essaye de faire le tuto,

J'ai été de suite bloqué car nano n'existe pas sur le syno, donc je sais pas si c'est bien mais j'ai créé le fichier docker-compose.yml directement sur windowspuis je l'ai uploader.

Ensuite, j'ai fait la commande docker compose up -d et j'ai l'erreur :

unknown shorthand flag: 'd' in -d
See 'docker --help'.

Bon voilà je suis bloqué.
Je ne comprends vraiment rien.


Edit : je suis un gros boulet il y a un tuto docker dans la partie synology, je vais m'y référer.
 
Quelqu'un aurait une idée sur le probleme que je rencontre.
Depuis hier j'ai fait des test, et suivant le player que j'utilise dans jellyfin, il y a du transodage sur des vieux media...
 
Alors le client Utilisé est la nvidia Shield Tv Pro, modele 2019, qui est cencer tout lire.
Voici 3 types de fichier differents qui ne fonctionne pas et qui transcode (3 series animé des années 80):

transco jelly.jpg
 
Il y a des sous titres a tes fichiers ? Si oui, et que tu désactive les sous titre, tu transcode toujours ?
 
Non il n'y a pas de sous titre sur ces medias.
Le seul media qui bug avec les sous titre, c'est Saint Seiya, sous titre que l'on ne peux d'ailleurs pas virer lorsqu'on utilise le player "exoplayer" sur l'appli Jellyfin Nvidia shield android. La seul solution est de passer par "libVlc" qui permet d'une part de virer les sous titre et d'autre part de faire fonctionner en "directplay" les medias qui transcodent sous exoplayer. Mais "LibVlc" n'es pas adapté pour des fichiers plus lourd en h265, dolby atmos, remux ect.... Donc pas de solution "stable" a 100% quel que soit le cas de figure.
 
bonjour Evotk,

merci pour tous tes tuto avec lesquel j'ai pu monter mon NAS sous OMV avec tous les services que j'avais sur mon raspberry mais en mieux!

j'ai cependant un petit soucis avec Jellyfin, à chaque reboot du docker ou de ma machine, je perd l'accès web à mon serveur.

Via les application locale, (WebOS/androidTV) j'arrive à accéder au serveur via une nouvelle authentification par contre par la page web ou via l'extérieur impossible, je retombe systématiquement sur la page de création de serveur (http://192.168.2.3:8096/web/index.html#!/wizardstart.html) , aurais tu une idée?

voici les log du dernier reboot où j'ai réussi à me log sous android TV mais pas sur le navigateur web :
Code:
[18:58:19] [INF] [1] Main: Jellyfin version: 10.8.9
[18:58:19] [INF] [1] Main: Environment Variables: ["[JELLYFIN_DATA_DIR, /config]", "[JELLYFIN_LOG_DIR, /config/log]", "[JELLYFIN_CONFIG_DIR, /config/config]", "[JELLYFIN_CACHE_DIR, /cache]", "[JELLYFIN_FFMPEG, /usr/lib/jellyfin-ffmpeg/ffmpeg]", "[DOTNET_SYSTEM_GLOBALIZATION_INVARIANT, 1]", "[JELLYFIN_WEB_DIR, /jellyfin/jellyfin-web]"]
[18:58:19] [INF] [1] Main: Arguments: ["/jellyfin/jellyfin.dll"]
[18:58:19] [INF] [1] Main: Operating system: Linux
[18:58:19] [INF] [1] Main: Architecture: X64
[18:58:19] [INF] [1] Main: 64-Bit Process: True
[18:58:19] [INF] [1] Main: User Interactive: True
[18:58:19] [INF] [1] Main: Processor count: 4
[18:58:19] [INF] [1] Main: Program data path: /config
[18:58:19] [INF] [1] Main: Web resources path: /jellyfin/jellyfin-web
[18:58:19] [INF] [1] Main: Application directory: /jellyfin/
[18:58:19] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
[18:58:19] [INF] [1] Emby.Server.Implementations.ApplicationHost: Loading assemblies
[18:58:19] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN addresses : [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[18:58:19] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Defined LAN exclusions : []
[18:58:19] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Using LAN addresses: [10.0.0.0/8,172.16.0.0/12,192.168.0.0/16]
[18:58:19] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Using bind addresses: []
[18:58:19] [INF] [1] Jellyfin.Networking.Manager.NetworkManager: Using bind exclusions: []
[18:58:24] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: TMDb 10.8.9.0
[18:58:24] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Studio Images 10.8.9.0
[18:58:24] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OMDb 10.8.9.0
[18:58:24] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: MusicBrainz 10.8.9.0
[18:58:24] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: AudioDB 10.8.9.0
[18:58:24] [INF] [1] Main: Kestrel listening on Any IP4 Address
[18:58:25] [INF] [1] Emby.Server.Implementations.ApplicationHost: Running startup tasks
[18:58:25] [INF] [1] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Extraire les images de chapitre set to fire at 2023-04-07 02:00:00.000 +02:00, which is 07:01:34.5509445 from now.
[18:58:25] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 5.1.2
[18:58:25] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "flac", "mp3"]
[18:58:25] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "flac", "libmp3lame", "libopus", "libvorbis", "srt"]
[18:58:25] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["deinterlace_qsv", "deinterlace_vaapi", "hwupload_cuda", "hwupload_vaapi", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"]
[18:58:26] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan"]
[18:58:26] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: VAAPI device /dev/dri/renderD128 is Intel GPU (iHD)
[18:58:26] [INF] [1] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/lib/jellyfin-ffmpeg/ffmpeg
[18:58:26] [INF] [1] Emby.Server.Implementations.ApplicationHost: ServerId: 1e50ea3aeb264ebab50942ac4cddc21a
[18:58:26] [INF] [1] Emby.Server.Implementations.ApplicationHost: Executed all pre-startup entry points in 0:00:00.1817697
[18:58:26] [INF] [1] Emby.Server.Implementations.ApplicationHost: Core startup complete
[18:58:26] [INF] [8] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /config/data/collections
[18:58:26] [INF] [1] Emby.Server.Implementations.ApplicationHost: Executed all post-startup entry points in 0:00:00.2393671
[18:58:26] [INF] [1] Main: Startup complete 0:00:07.854152
[18:58:26] [INF] [11] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /data/Dessin_animes
[18:58:27] [INF] [10] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /data/Films
[18:58:27] [INF] [13] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /data/Serie_enfant
[18:58:28] [INF] [13] Emby.Server.Implementations.ScheduledTasks.TaskManager: StartupTrigger fired for task: Mettre à jour les extensions
[18:58:28] [INF] [13] Emby.Server.Implementations.ScheduledTasks.TaskManager: Queuing task PluginUpdateTask
[18:58:28] [INF] [10] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing Mettre à jour les extensions
[18:58:29] [INF] [8] Emby.Server.Implementations.IO.LibraryMonitor: Watching directory /data/Series
[18:58:29] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Mettre à jour les extensions Completed after 0 minute(s) and 1 seconds
[18:58:29] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[19:02:42] [INF] [40] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[19:02:42] [INF] [40] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[19:02:42] [INF] [40] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
[19:02:56] [INF] [48] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[19:02:56] [INF] [48] Jellyfin.Api.Auth.CustomAuthenticationHandler: CustomAuthentication was not authenticated. Failure message: Invalid token.
[19:02:56] [INF] [48] Jellyfin.Api.Auth.CustomAuthenticationHandler: AuthenticationScheme: CustomAuthentication was challenged.
[19:03:18] [INF] [40] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for rept has succeeded.
[19:03:18] [INF] [40] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user rept: 0/0
[19:03:18] [INF] [40] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user e2f9f491-cdcb-41c6-9f01-790a04f45dc0
[19:03:18] [WRN] [40] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://192.168.2.3:8096/Users/AuthenticateByName to 192.168.2.88 in 0:00:00.9849006 with Status Code 200
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'AccessSchedule' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ActivityLog' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'CustomItemDisplayPreferences' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'DisplayPreferences' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'HomeSection' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ImageInfo' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ItemDisplayPreferences' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'Permission' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'Preference' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'ApiKey' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'Device' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'DeviceOptions' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [WRN] [40] Microsoft.EntityFrameworkCore.Model.Validation: The entity type 'User' is configured to use schema 'jellyfin', but SQLite does not support schemas. This configuration will be ignored by the SQLite provider.
[19:03:19] [INF] [40] Emby.Server.Implementations.HttpServer.WebSocketManager: WS 192.168.2.88 request
[19:03:50] [INF] [3] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for rept. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[19:03:50] [INF] [3] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=AndroidTV-libVLC, Path=/data/Serie_enfant/Batman La Série Animée (Batman The Animated Serie) 1992-1998 Intégral (109EP) TrueFrench 1080p HDLight BluRay AC3 x265-Thebatou8652/001 Le Chat et La Souris (1re partie).mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/f6a29981-bc89-1319-da89-ae8493e3c3f0/stream.mkv?MediaSourceId=f6a29981bc891319da89ae8493e3c3f0&Static=true&VideoCodec=hevc&AudioCodec=ac3&AudioStreamIndex=1&api_key=<token>&Tag=8e10244fc57bdd7a415f4cef1a54d559
[19:03:51] [INF] [47] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for rept. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[19:03:51] [INF] [47] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=AndroidTV-ExoPlayer, Path=/data/Serie_enfant/Batman La Série Animée (Batman The Animated Serie) 1992-1998 Intégral (109EP) TrueFrench 1080p HDLight BluRay AC3 x265-Thebatou8652/001 Le Chat et La Souris (1re partie).mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/f6a29981-bc89-1319-da89-ae8493e3c3f0/stream.mkv?MediaSourceId=f6a29981bc891319da89ae8493e3c3f0&Static=true&VideoCodec=hevc&AudioCodec=ac3&AudioStreamIndex=1&api_key=<token>&Tag=8e10244fc57bdd7a415f4cef1a54d559
[19:18:42] [INF] [34] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
[19:18:42] [INF] [34] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
[19:18:42] [INF] [13] Emby.Server.Implementations.EntryPoints.ExternalPortForwarding: Stopping NAT discovery
[19:18:47] [ERR] [11] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL POST /Startup/User.
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes. See the inner exception for details.
 ---> Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 19: 'UNIQUE constraint failed: Users.Username'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Jellyfin.Server.Implementations.Users.UserManager.UpdateUserAsync(User user)
   at Jellyfin.Server.Implementations.Users.UserManager.UpdateUserAsync(User user)
   at Jellyfin.Api.Controllers.StartupController.UpdateStartupUser(StartupUserDto startupUserDto)
   at lambda_method1199(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)


merci par avance.

cdt,