Jellyfin Forum
WebOS 3.9 -- Stuck on logo when using Caddy - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+---- Forum: Networking & Access (https://forum.jellyfin.org/f-networking-access)
+---- Thread: WebOS 3.9 -- Stuck on logo when using Caddy (/t-webos-3-9-stuck-on-logo-when-using-caddy)



WebOS 3.9 -- Stuck on logo when using Caddy - interrobang - 2025-05-09

I have extensively reviewed other posts in this forum but have not yet found a solution unfortunately. Thank you for any suggestions.

The LG TV is a C7 running WebOS 3.9.

What works:
  • Web, Android app, Samsung TV (Tizen) app, WebOS TV web browser-- all can connect to Jellyfin over HTTPS via the Caddy proxy.
  • WebOS app-- can connect if I expose the Jellyfin port and connect over HTTP

What does not work:
  • WebOS app-- once I try to connect over HTTPS, it shows the logo but does not load the app.

Looking at Caddy logs shows that the app is making requests for the JS resources, so I know that it's successfully connected to the server.

Code:
{"level":"info","ts":1746764928.4870903,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/System/Info/Public","headers":{"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept":["*/*"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001101052,"size":210,"status":200,"resp_headers":{"Alt-Svc":["h3=\":443\"; ma=2592000"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"X-Response-Time-Ms":["0.3611"],"Content-Type":["application/json; charset=utf-8"],"Server":["Caddy","Kestrel"]}}
{"level":"info","ts":1746764928.5009344,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/manifest.json","headers":{"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept":["*/*"],"Accept-Encoding":["gzip,deflate"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001231364,"size":291,"status":200,"resp_headers":{"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.4606"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Content-Type":["application/json"],"Accept-Ranges":["bytes"],"Server":["Caddy","Kestrel"],"Etag":["\"1dba66021b2d28d\""]}}
{"level":"info","ts":1746764928.586816,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/index.html","headers":{"Accept-Language":["en-US"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Connection":["keep-alive"],"Accept":["text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001829482,"size":2124,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Content-Encoding":["gzip"],"Content-Type":["text/html"],"X-Response-Time-Ms":["0.6772"],"Etag":["\"1dba66021b2f47b\""],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Vary":["Accept-Encoding"],"Accept-Ranges":["bytes"]}}
{"level":"info","ts":1746764928.6406188,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/runtime.bundle.js?5472a04be7afaf932b1a","headers":{"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002920122,"size":26154,"status":200,"resp_headers":{"Alt-Svc":["h3=\":443\"; ma=2592000"],"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b21180\""],"Vary":["Accept-Encoding"],"Server":["Caddy","Kestrel"],"Content-Type":["text/javascript"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"X-Response-Time-Ms":["0.7881"]}}
{"level":"info","ts":1746764928.6777678,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41096","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/main.jellyfin.7d6eaeb032d03eb0ae47.css?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["text/css,*/*;q=0.1"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.004908314,"size":16799,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Content-Type":["text/css"],"Etag":["\"1dba66021b3cd93\""],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.2917"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Encoding":["gzip"]}}
{"level":"info","ts":1746764928.6858945,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41094","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.lodash-es.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.014939171,"size":9574,"status":200,"resp_headers":{"Content-Type":["text/javascript"],"Etag":["\"1dba66021b2b19c\""],"X-Response-Time-Ms":["4.5452"],"Vary":["Accept-Encoding"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Accept-Ranges":["bytes"]}}
{"level":"info","ts":1746764928.6900296,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41104","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.%40mui.icons-material.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.00215927,"size":8553,"status":200,"resp_headers":{"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Vary":["Accept-Encoding"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"X-Response-Time-Ms":["0.4333"],"Content-Type":["text/javascript"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Etag":["\"1dba66021b2a90d\""]}}
{"level":"info","ts":1746764928.6910307,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/37869.088680d7e7a2eede3618.css?5472a04be7afaf932b1a","headers":{"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["text/css,*/*;q=0.1"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.019617045,"size":21796,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Type":["text/css"],"Vary":["Accept-Encoding"],"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"X-Response-Time-Ms":["4.5847"],"Etag":["\"1dba66021b36d7c\""]}}
{"level":"info","ts":1746764928.7033637,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41096","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.%40tanstack.query-core.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002816095,"size":27199,"status":200,"resp_headers":{"Accept-Ranges":["bytes"],"Vary":["Accept-Encoding"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Etag":["\"1dba66021b35cf3\""],"X-Response-Time-Ms":["0.7308"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Server":["Caddy","Kestrel"],"Content-Type":["text/javascript"]}}
{"level":"info","ts":1746764928.7178416,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41094","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.%40tanstack.react-query.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001622614,"size":2790,"status":200,"resp_headers":{"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.6049"],"Content-Type":["text/javascript"],"Server":["Caddy","Kestrel"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b2ce88\""],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Alt-Svc":["h3=\":443\"; ma=2592000"]}}
{"level":"info","ts":1746764928.7198467,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41104","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.date-fns.esm.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002142083,"size":17588,"status":200,"resp_headers":{"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Content-Type":["text/javascript"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Encoding":["gzip"],"Vary":["Accept-Encoding"],"Etag":["\"1dba66021b3f3c5\""],"X-Response-Time-Ms":["0.3626"]}}
{"level":"info","ts":1746764928.7210393,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41092","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.%40jellyfin.sdk.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.05011647,"size":111076,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"X-Response-Time-Ms":["17.8329"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b99cdb\""],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Vary":["Accept-Encoding"],"Content-Type":["text/javascript"]}}
{"level":"info","ts":1746764928.7282162,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.core-js.bundle.js?5472a04be7afaf932b1a","headers":{"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.010206904,"size":70706,"status":200,"resp_headers":{"Alt-Svc":["h3=\":443\"; ma=2592000"],"X-Response-Time-Ms":["0.7346"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Server":["Caddy","Kestrel"],"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b01945\""],"Vary":["Accept-Encoding"],"Content-Type":["text/javascript"]}}
{"level":"info","ts":1746764928.7466137,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41106","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.react-transition-group.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001203485,"size":3297,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"X-Response-Time-Ms":["0.44"],"Content-Type":["text/javascript"],"Content-Encoding":["gzip"],"Vary":["Accept-Encoding"],"Etag":["\"1dba66021b2f213\""],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"]}}
{"level":"info","ts":1746764928.74801,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41094","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.%40popperjs.core.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002013277,"size":7757,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Accept-Ranges":["bytes"],"Vary":["Accept-Encoding"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Etag":["\"1dba66021b29da3\""],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Content-Type":["text/javascript"],"X-Response-Time-Ms":["1.0752"],"Content-Encoding":["gzip"]}}
{"level":"info","ts":1746764928.7526782,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41096","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.axios.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002320069,"size":24563,"status":200,"resp_headers":{"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Etag":["\"1dba66021b3e823\""],"X-Response-Time-Ms":["0.5492"],"Accept-Ranges":["bytes"],"Server":["Caddy","Kestrel"],"Vary":["Accept-Encoding"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Content-Type":["text/javascript"]}}
{"level":"info","ts":1746764928.763255,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41106","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.webcomponents.js.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001369504,"size":14126,"status":200,"resp_headers":{"Alt-Svc":["h3=\":443\"; ma=2592000"],"Etag":["\"1dba66021b24a99\""],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Content-Type":["text/javascript"],"Content-Encoding":["gzip"],"Server":["Caddy","Kestrel"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.3209"]}}
{"level":"info","ts":1746764928.7639866,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41104","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.react-dom.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.005830535,"size":48719,"status":200,"resp_headers":{"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.5067"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Accept-Ranges":["bytes"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b3264a\""],"Content-Type":["text/javascript"]}}
{"level":"info","ts":1746764928.7652102,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41092","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.jquery.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.004282378,"size":35450,"status":200,"resp_headers":{"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Encoding":["gzip"],"Vary":["Accept-Encoding"],"Content-Type":["text/javascript"],"Server":["Caddy","Kestrel"],"X-Response-Time-Ms":["0.4259"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Etag":["\"1dba66021b38480\""]}}
{"level":"info","ts":1746764928.7663093,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41094","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.resize-observer-polyfill.bundle.js?5472a04be7afaf932b1a","headers":{"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.001002701,"size":2718,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Etag":["\"1dba66021b2cf81\""],"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.3233"],"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Type":["text/javascript"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"]}}
{"level":"info","ts":1746764928.7691197,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.regenerator-runtime.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.000865707,"size":2756,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Content-Type":["text/javascript"],"X-Response-Time-Ms":["0.2768"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Vary":["Accept-Encoding"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Etag":["\"1dba66021b2cbcc\""],"Content-Encoding":["gzip"]}}
{"level":"info","ts":1746764928.7704265,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41096","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.jellyfin-apiclient.bundle.js?5472a04be7afaf932b1a","headers":{"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002207234,"size":23614,"status":200,"resp_headers":{"Alt-Svc":["h3=\":443\"; ma=2592000"],"Vary":["Accept-Encoding"],"Content-Type":["text/javascript"],"X-Response-Time-Ms":["0.3992"],"Server":["Caddy","Kestrel"],"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b38659\""],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"]}}
{"level":"info","ts":1746764928.7948933,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41104","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.history.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002472252,"size":181,"status":200,"resp_headers":{"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Etag":["\"1dba66021b2d14d\""],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Encoding":["gzip"],"Vary":["Accept-Encoding"],"X-Response-Time-Ms":["0.0969"],"Content-Type":["text/javascript"],"Accept-Ranges":["bytes"]}}
{"level":"info","ts":1746764928.7951174,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.dompurify.bundle.js?5472a04be7afaf932b1a","headers":{"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.003081815,"size":9407,"status":200,"resp_headers":{"Vary":["Accept-Encoding"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Accept-Ranges":["bytes"],"Etag":["\"1dba66021b287cf\""],"X-Response-Time-Ms":["0.3404"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Content-Type":["text/javascript"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Content-Encoding":["gzip"]}}
{"level":"info","ts":1746764928.7961736,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41094","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.intersection-observer.bundle.js?5472a04be7afaf932b1a","headers":{"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.005635705,"size":3369,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Content-Encoding":["gzip"],"Vary":["Accept-Encoding"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"X-Response-Time-Ms":["0.4946"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Type":["text/javascript"],"Accept-Ranges":["bytes"],"Etag":["\"1dba66021b2f2d7\""]}}
{"level":"info","ts":1746764928.7966588,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41096","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.%40remix-run.router.bundle.js?5472a04be7afaf932b1a","headers":{"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.004735374,"size":26837,"status":200,"resp_headers":{"Server":["Caddy","Kestrel"],"Accept-Ranges":["bytes"],"X-Response-Time-Ms":["0.3809"],"Vary":["Accept-Encoding"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Type":["text/javascript"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Etag":["\"1dba66021b3cca0\""]}}
{"level":"info","ts":1746764928.7968755,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41092","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.react-router-dom.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.005080871,"size":6993,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Server":["Caddy","Kestrel"],"X-Response-Time-Ms":["0.3741"],"Etag":["\"1dba66021b292a5\""],"Vary":["Accept-Encoding"],"Content-Type":["text/javascript"],"Content-Encoding":["gzip"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Accept-Ranges":["bytes"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"]}}
{"level":"info","ts":1746764928.8037574,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41106","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/node_modules.react-router.bundle.js?5472a04be7afaf932b1a","headers":{"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.011583772,"size":5251,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Vary":["Accept-Encoding"],"Content-Type":["text/javascript"],"X-Response-Time-Ms":["0.4946"],"Accept-Ranges":["bytes"],"Content-Encoding":["gzip"],"Etag":["\"1dba66021b2e21b\""]}}
{"level":"info","ts":1746764928.8203483,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41104","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/37869.bundle.js?5472a04be7afaf932b1a","headers":{"Connection":["keep-alive"],"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002917326,"size":27839,"status":200,"resp_headers":{"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Accept-Ranges":["bytes"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Vary":["Accept-Encoding"],"Etag":["\"1dba66021b3c5a2\""],"X-Response-Time-Ms":["0.5519"],"Content-Type":["text/javascript"],"Content-Encoding":["gzip"]}}
{"level":"info","ts":1746764928.8218846,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41090","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/serviceworker.js?5472a04be7afaf932b1a","headers":{"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"],"Accept":["*/*"]},"tls":{"resumed":false,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.002949938,"size":428,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Content-Encoding":["gzip"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Content-Type":["text/javascript"],"Accept-Ranges":["bytes"],"Vary":["Accept-Encoding"],"Server":["Caddy","Kestrel"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"X-Response-Time-Ms":["0.3364"],"Etag":["\"1dba66021b2d280\""]}}
{"level":"info","ts":1746764928.8423955,"logger":"http.log.access","msg":"handled request","request":{"remote_ip":"192.168.2.21","remote_port":"41094","client_ip":"192.168.2.21","proto":"HTTP/1.1","method":"GET","host":"jellyfin.mydomain.com","uri":"/web/main.jellyfin.bundle.js?5472a04be7afaf932b1a","headers":{"Accept":["*/*"],"User-Agent":["Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager"],"Accept-Encoding":["gzip,deflate"],"Accept-Language":["en-us,en"],"Connection":["keep-alive"]},"tls":{"resumed":true,"version":771,"cipher_suite":49195,"proto":"http/1.1","server_name":"jellyfin.mydomain.com"}},"bytes_read":0,"user_id":"","duration":0.023498814,"size":146876,"status":200,"resp_headers":{"Date":["Fri, 09 May 2025 04:28:48 GMT"],"Last-Modified":["Sat, 05 Apr 2025 19:22:55 GMT"],"Alt-Svc":["h3=\":443\"; ma=2592000"],"Content-Encoding":["gzip"],"Content-Type":["text/javascript"],"Accept-Ranges":["bytes"],"X-Response-Time-Ms":["0.2997"],"Server":["Caddy","Kestrel"],"Etag":["\"1dba66021b57036\""],"Vary":["Accept-Encoding"]}}

I am familiar with the common nginx issue where X-Frame-Options is set, but Caddy does not set this header by default, to my knowledge (you can see in the logs it does not appear)

I verified this with curl:

Code:
$ curl --head -i https://jellyfin.mydomain.com/web/
HTTP/2 200
accept-ranges: bytes
alt-svc: h3=":443"; ma=2592000
content-type: text/html
date: Fri, 09 May 2025 04:34:55 GMT
etag: "1db2e0a053d2a7b"
last-modified: Sun, 03 Nov 2024 16:04:11 GMT
server: Caddy
server: Kestrel
x-response-time-ms: 3.4156
content-length: 9723

Other things I have tried/checked:
  • Ensured reverse proxy subnet is set in Networking settings (it's set to 172.19.0.0/16 which is the subnet of the bridge network, and I've verified that proper IPs are showing up in Jellyfin logs)
  • Rolling jellyfin back as far as 10.9.8
  • Rolling back caddy-docker-proxy several releases
  • Reinstalling jellyfin-webos both from the WebOS appstore as well as the Homebrew channel
  • Manually unsetting X-Frame-Options headers in my Caddyfile just in case they were somehow set
  • Downloaded the oldest version of Chrome I could find ( v48 ) to see if jellyfin-web was breaking with older Chrome versions

Relevant piece of docker-compose:

Code:
 caddy:
    container_name: caddy
    image: homeall/caddy-reverse-proxy-cloudflare:2025.05.06
    environment:
      - CADDY_INGRESS_NETWORKS=caddy
    labels:
      caddy.email: $CF_EMAIL
      caddy.acme_dns: "cloudflare {env.CF_API_TOKEN}"
      caddy.log:
      caddy.log.include: http.log.access
      caddy.log.level: WARN
      caddy_0: (internal)
      caddy_0.@internal: remote_ip private_ranges
      caddy_0.@external: not remote_ip private_ranges
      caddy_0.reverse_proxy: "@internal {args[:]}"
      caddy_0.respond: "@external `Forbidden` 403"
      caddy_1: ${HOSTNAME}.${DOMAIN}
      caddy_1.import: internal ${HOSTNAME}.${DOMAIN}:5000
      org.hotio.pullio.update: ${PULLIO_UPDATE}
    network_mode: host
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - caddyData:/data
    restart: unless-stopped
 jellyfin:
    container_name: jellyfin
    image: ghcr.io/hotio/jellyfin:release
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
      - UMASK=002
    volumes:
      - /etc/localtime:/etc/localtime:ro
    labels:
      caddy: jellyfin.${DOMAIN}
      caddy.import: internal "{{upstreams 8096}}"
      caddy.log:
    healthcheck:
      test: [ "CMD", "curl", "--fail", "https://jellyfin.${DOMAIN}/health" ]
      interval: 1m
      start_period: 30s
    networks:
      - caddy
    volumes:
      - ${DOCKERCONFDIR}/jellyfin:/config
      - ${DOCKERSTORAGEDIR}/media:/data/media
    devices:
      - /dev/dri:/dev/dri