jellyfin / jellyfin-packaging

Jellyfin Packaging and Build Workflows
GNU General Public License v3.0
16 stars 16 forks source link

/usr/lib/jellyfin/bin/jellyfin-web not available from install #36

Open Xyz00777 opened 1 month ago

Xyz00777 commented 1 month ago

As already mentioned multiple times in the last months in these issue it looks like there is some issue (propably in packaging) where the /usr/lib/jellyfin/bin/jellyfin-web is not correctly deployed or something like that. at least im getting these error on a freshly installed 10.9.9.0 installation on debian 12. when i type in jellyfin

root@jellyfin:~# jellyfin
[02:31:52] [INF] [1] Main: Jellyfin version: 10.9.9
[02:31:52] [INF] [1] Main: Environment Variables: ["[JELLYFIN_LOG_DIR, /root/.local/share/jellyfin/log]"]
[02:31:52] [INF] [1] Main: Arguments: ["/usr/lib/jellyfin/bin/jellyfin.dll"]
[02:31:52] [INF] [1] Main: Operating system: Debian GNU/Linux 12 (bookworm)
[02:31:52] [INF] [1] Main: Architecture: X64
[02:31:52] [INF] [1] Main: 64-Bit Process: True
[02:31:52] [INF] [1] Main: User Interactive: True
[02:31:52] [INF] [1] Main: Processor count: 10
[02:31:52] [INF] [1] Main: Program data path: /root/.local/share/jellyfin
[02:31:52] [INF] [1] Main: Log directory path: /root/.local/share/jellyfin/log
[02:31:52] [INF] [1] Main: Config directory path: /root/jellyfin
[02:31:52] [INF] [1] Main: Cache path: /root/.cache/jellyfin
[02:31:52] [INF] [1] Main: Web resources path: /usr/lib/jellyfin/bin/jellyfin-web
[02:31:52] [INF] [1] Main: Application directory: /usr/lib/jellyfin/bin/
[02:31:52] [ERR] [1] Main: The server is expected to host the web client, but the provided content directory is either invalid or empty: /usr/lib/jellyfin/bin/jellyfin-web. If you do not want to host the web client with the server, you may set the '--nowebclient' command line flag, or set'hostwebclient=false' in your config settings

I also dont know where jellyfin is getting his data from these screen, but it cant be correct because i didnt changed the default folders for configs, data, chache and so on....

the interesting thing is, that it looks like jellyfin web is at least partly running, because the port 8096 is reachable and i get quested to what server i want to connect to. but when i click than on the localhost server to connect i get "We're unable to connect to the selected server right now. Please ensure it is running and try again"

root@jellyfin:~# ss -ltp | grep 8096
LISTEN 0      512          0.0.0.0:8096        0.0.0.0:*    users:(("jellyfin",pid=2876,fd=469))                    
root@jellyfin:~# ps aux | grep 2876
jellyfin    2876  0.5  2.4 274514888 250704 ?    Ssl  02:30   0:07 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg
root        3295  0.0  0.0   6332  2104 pts/0    S+   02:52   0:00 grep 2876

here are the logs (/var/log/jellyfin/jellyfin20240815.log):

[2024-08-15 02:30:28.876 +02:00] [INF] Jellyfin version: "10.9.9"
[2024-08-15 02:30:28.905 +02:00] [INF] Environment Variables: ["[JELLYFIN_ADDITIONAL_OPTS, ]", "[JELLYFIN_USER, jellyfin]", "[JELLYFIN_DATA_DIR, /var/lib/jellyfin]", "[JELLYFIN_LOG_DIR, /var/log/jellyfin]", "[JELLYFIN_WEB_OPT, --webdir=/usr/share/jellyfin/web]", "[JELLYFIN_CONFIG_DIR, /etc/jellyfin]", "[JELLYFIN_FFMPEG_OPT, --ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg]", "[JELLYF
IN_ARGS, $JELLYFIN_WEB_OPT $JELLYFIN_FFMPEG_OPT $JELLYFIN_SERVICE_OPT $JELLYFIN_NOWEBAPP_OPT $JELLFIN_ADDITIONAL_OPTS --datadir $JELLYFIN_DATA_DIR --configdir $JELLYFIN_CONFIG_DIR --logdir $JELLYFIN_LOG_DIR --cachedir $JELLYFIN_CACHE_DIR]", "[JELLYFIN_CACHE_DIR, /var/cache/jellyfin]"]
[2024-08-15 02:30:28.908 +02:00] [INF] Arguments: ["/usr/lib/jellyfin/bin/jellyfin.dll", "--webdir=/usr/share/jellyfin/web", "--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg"]
[2024-08-15 02:30:28.908 +02:00] [INF] Operating system: "Debian GNU/Linux 12 (bookworm)"
[2024-08-15 02:30:28.908 +02:00] [INF] Architecture: X64
[2024-08-15 02:30:28.909 +02:00] [INF] 64-Bit Process: True
[2024-08-15 02:30:28.909 +02:00] [INF] User Interactive: True
[2024-08-15 02:30:28.909 +02:00] [INF] Processor count: 10
[2024-08-15 02:30:28.909 +02:00] [INF] Program data path: "/var/lib/jellyfin"
[2024-08-15 02:30:28.909 +02:00] [INF] Log directory path: "/var/log/jellyfin"
[2024-08-15 02:30:28.909 +02:00] [INF] Config directory path: "/etc/jellyfin"
[2024-08-15 02:30:28.909 +02:00] [INF] Cache path: "/var/cache/jellyfin"
[2024-08-15 02:30:28.909 +02:00] [INF] Web resources path: "/usr/share/jellyfin/web"
[2024-08-15 02:30:28.909 +02:00] [INF] Application directory: "/usr/lib/jellyfin/bin/"
[2024-08-15 02:30:28.924 +02:00] [INF] Marking following migrations as applied because this is a fresh install: ["CreateNetworkConfiguration", "MigrateMusicBrainzTimeout", "MigrateNetworkConfiguration"]
[2024-08-15 02:30:29.009 +02:00] [INF] Setting cache path: "/var/cache/jellyfin"
[2024-08-15 02:30:29.036 +02:00] [INF] Loading assemblies
[2024-08-15 02:30:29.122 +02:00] [INF] Defined LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[2024-08-15 02:30:29.122 +02:00] [INF] Defined LAN exclusions: []
[2024-08-15 02:30:29.122 +02:00] [INF] Used LAN subnets: ["127.0.0.1/8", "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
[2024-08-15 02:30:29.124 +02:00] [INF] Filtered interface addresses: ["127.0.0.1", "192.168.21.132"]
[2024-08-15 02:30:29.124 +02:00] [INF] Bind Addresses ["0.0.0.0"]
[2024-08-15 02:30:29.124 +02:00] [INF] Remote IP filter is "Allowlist"
[2024-08-15 02:30:29.124 +02:00] [INF] Filtered subnets: []
[2024-08-15 02:30:30.216 +02:00] [INF] There are pending EFCore migrations in the database. Applying... (This may take a while, do not stop Jellyfin)
[2024-08-15 02:30:31.065 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"ImageInfos"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.065 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"ImageInfos"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.067 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"Permissions"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.067 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"Permissions"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.069 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"Preferences"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.069 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"Preferences"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.070 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"Users"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.070 +02:00] [WRN] An operation of type '"SqlOperation"' will be attempted while a rebuild of table '"Users"' is pending. The database may not be in an expected state. Review the SQL generated by this migration to help diagnose any failures. Consider moving these operations to a subsequent migration.
[2024-08-15 02:30:31.745 +02:00] [INF] EFCore migrations applied successfully
[2024-08-15 02:30:32.548 +02:00] [INF] Saving system configuration
[2024-08-15 02:30:32.550 +02:00] [INF] Setting cache path: "/var/cache/jellyfin"
[2024-08-15 02:30:32.555 +02:00] [INF] Loaded plugin: "TMDb" "10.9.9.0"
[2024-08-15 02:30:32.556 +02:00] [INF] Loaded plugin: "Studio Images" "10.9.9.0"
[2024-08-15 02:30:32.557 +02:00] [INF] Loaded plugin: "OMDb" "10.9.9.0"
[2024-08-15 02:30:32.575 +02:00] [INF] Loaded plugin: "MusicBrainz" "10.9.9.0"
[2024-08-15 02:30:32.576 +02:00] [INF] Loaded plugin: "AudioDB" "10.9.9.0"
[2024-08-15 02:30:32.633 +02:00] [INF] Marking following migrations as applied because this is a fresh install: ["DisableTranscodingThrottling", "CreateLoggingConfigHeirarchy", "MigrateActivityLogDatabase", "RemoveDuplicateExtras", "MigrateUserDatabase", "MigrateDisplayPreferencesDatabase", "RemoveDownloadImagesInAdvance", "MigrateAuthenticationDatabase", "FixPlaylistOwner", "MigrateRatingLevels", "FixAudioData"]
[2024-08-15 02:30:32.636 +02:00] [INF] Applying migration '"AddDefaultPluginRepository"'
[2024-08-15 02:30:32.636 +02:00] [INF] Saving system configuration
[2024-08-15 02:30:32.637 +02:00] [INF] Setting cache path: "/var/cache/jellyfin"
[2024-08-15 02:30:32.637 +02:00] [INF] Migration '"AddDefaultPluginRepository"' applied successfully
[2024-08-15 02:30:32.638 +02:00] [INF] Applying migration '"ReaddDefaultPluginRepository"'
[2024-08-15 02:30:32.638 +02:00] [INF] Migration '"ReaddDefaultPluginRepository"' applied successfully
[2024-08-15 02:30:32.638 +02:00] [INF] Applying migration '"AddDefaultCastReceivers"'
[2024-08-15 02:30:32.639 +02:00] [INF] Saving system configuration
[2024-08-15 02:30:32.639 +02:00] [INF] Setting cache path: "/var/cache/jellyfin"
[2024-08-15 02:30:32.639 +02:00] [INF] Migration '"AddDefaultCastReceivers"' applied successfully
[2024-08-15 02:30:32.640 +02:00] [INF] Applying migration '"UpdateDefaultPluginRepository10.9"'
[2024-08-15 02:30:32.640 +02:00] [INF] Saving system configuration
[2024-08-15 02:30:32.641 +02:00] [INF] Setting cache path: "/var/cache/jellyfin"
[2024-08-15 02:30:32.641 +02:00] [INF] Migration '"UpdateDefaultPluginRepository10.9"' applied successfully
[2024-08-15 02:30:32.680 +02:00] [INF] Kestrel is listening on "0.0.0.0"
[2024-08-15 02:30:32.709 +02:00] [WRN] No XML encryptor configured. Key {59c310aa-e351-4ee9-a041-dbeea437e5b3} may be persisted to storage in unencrypted form.
[2024-08-15 02:30:33.404 +02:00] [WRN] The WebRootPath was not found: "/var/lib/jellyfin/wwwroot". Static files may be unavailable.
[2024-08-15 02:30:33.496 +02:00] [INF] Running startup tasks
[2024-08-15 02:30:33.523 +02:00] [INF] Daily trigger for "Generate Trickplay Images" set to fire at 2024-08-15 03:00:00.000 +02:00, which is 00:29:26.4763436 from now.
[2024-08-15 02:30:33.527 +02:00] [INF] Daily trigger for "Extract Chapter Images" set to fire at 2024-08-16 02:00:00.000 +02:00, which is 23:29:26.4722216 from now.
[2024-08-15 02:30:33.573 +02:00] [INF] Found ffmpeg version "6.0.1"
[2024-08-15 02:30:33.655 +02:00] [INF] 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", "dca", "flac", "mp3", "truehd"]
[2024-08-15 02:30:33.681 +02:00] [INF] Available "encoders": ["libsvtav1", "av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi", "libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mjpeg_qsv", "mjpeg_vaapi", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
[2024-08-15 02:30:33.714 +02:00] [INF] Available filters: ["deinterlace_qsv", "deinterlace_vaapi", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "scale_vulkan", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "vpp_qsv", "yadif_cuda", "zscale", "alphasrc"]
[2024-08-15 02:30:33.867 +02:00] [INF] Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan"]
[2024-08-15 02:30:34.794 +02:00] [INF] FFmpeg: "/usr/lib/jellyfin-ffmpeg/ffmpeg"
[2024-08-15 02:30:34.797 +02:00] [INF] ServerId: "dc9e258b25e14a748cbf39e911267a0e"
[2024-08-15 02:30:34.797 +02:00] [INF] Core startup complete
[2024-08-15 02:30:34.798 +02:00] [INF] Startup complete 0:00:06.113556
[2024-08-15 02:30:36.547 +02:00] [INF] "Clean up collections and playlists" Completed after 0 minute(s) and 0 seconds
[2024-08-15 02:30:37.451 +02:00] [INF] "Update Plugins" Completed after 0 minute(s) and 0 seconds

and the journcalctl -xeu jellyfin log looks the same. the jellyfin service is startet and shows no error.

reidsanders commented 1 month ago

Same problem on Manjaro -- 5.15.164-1-MANJARO (64-bit). Installed jellyfin-server from arch extras.

thornbill commented 1 month ago

We don't maintain arch packages.

joshuaboniface commented 1 month ago

Jellyfin on Ubuntu/Debian/etc. is expected to run as a service under systemd with the proper environment configuration. This is not set when you try to run jellyfin directly in a shell, especially as root, and thus it will not work. If you really want to run Jellyfin this way (but don't, it's running as a service already), source /etc/default/jellyfin first.

Your service log output from journalctl looks correct as you mention. If you're constantly getting the select connection screen, something else is wrong, but it's not the packaging. Is this a new install or an older one, and have you tried clearing your browser caches and trying to connect again?

Xyz00777 commented 4 weeks ago

oh okay, thanks for the information.

i tried it in another browser, and looks like some kind of security settings in my firefox setup have blocked the working of the site... sorry :/ it works now on my system... @reidsanders propably the same problem?

reidsanders commented 4 weeks ago

oh okay, thanks for the information.

i tried it in another browser, and looks like some kind of security settings in my firefox setup have blocked the working of the site... sorry :/ it works now on my system... @reidsanders propably the same problem?

I understand that arch packaging is not supported, but having the same error despite different systems is potentially useful information. In that vein: I had originally tried running with sudo systemctl enable --now jellyfin without success. I bypassed the issue by running sudo ln -s /usr/share/jellyfin/web/ /usr/lib/jellyfin/jellyfin-web. This solved the "invalid or empty" error. There was an additional issue where loading http://localhost:8096/web/ always just shows the splash screen. A hard refresh or deleting browser cache gets past the splash screen.

cballenar commented 1 week ago

I had this issue happen on a fresh raspbian instance using the install script.

I was finally able to fix it by:

  1. Manually reinstalling: sudo apt reinstall jellyfin jellyfin-web jellyfin-server
  2. And then re-running the install script.

I see the script only "Installs Jellyfin using the metapackage", i.e., apt install --yes jellyfin. Could this be part of the issue?