2024-07-24, 01:04 AM
(2024-07-23, 08:35 PM)TheDreadPirate Wrote: Comment out this block.
Code:ports:
- 8096:8096
- 7359:7359/udp # Enable for DLNA - Only works on HOST Network Mode
- 1900:1900/udp # Enable for DLNA - Only works on HOST Network Mode
Since you are using host networking for the jellyfin container, they are not needed.
Can you share the output of "sudo docker inspect jellyfin" and "sudo ufw status verbose"? I want to confirm the output of the command line UFW with what whatever UI you are looking at. What UI is that anyway? Docker Desktop or something?
Unrelated to the root problem, your firewall rule for SSDP on port 1900 should be UDP.
First, I want to say thank you for your time and help. The UI is just Portainer.
I commented out the block and same issue. Tried from the laptop using the Jellyfin app and from the browser. I also tried on the iOS device. I used http://192.168.31.100:8096 to connect to the server. I checked the logs on the laptop for the app and this is what I got:
Code:
2024-07-23 20:46:55.809 [info] unknown @ 0 - JS: TypeError: Failed to fetch
Here is the output from the commands you asked about
UFW
Code:
$ sudo ufw status verbose
[Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip
To Action From
-- ------ ----
8096/tcp ALLOW IN Anywhere
7359/udp ALLOW IN Anywhere
Anywhere ALLOW IN 192.168.30.0/23
1900/udp ALLOW IN Anywhere
Docker
Code:
$ sudo docker inspect jellyfin
[
{
"Id": ,
"Created": "2024-07-23T20:32:16.019842855Z",
"Path": "/init",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 246509,
"ExitCode": 0,
"Error": "",
"StartedAt": "2024-07-23T20:32:22.994518204Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": ,
"ResolvConfPath": f",
"HostnamePath": ,
"HostsPath": ,
"LogPath": json.log,
"Name": "/jellyfin",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/mnt/appdata/jellyfin:/config:rw",
"/mnt/data/media/:/data/media:rw"
],
"ContainerIDFile": "",
"LogConfig": {
"Type": "json-file",
"Config": {}
},
"NetworkMode": "host",
"PortBindings": {},
"RestartPolicy": {
"Name": "unless-stopped",
"MaximumRetryCount": 0
},
"AutoRemove": false,
"VolumeDriver": "",
"VolumesFrom": null,
"ConsoleSize": [
0,
0
],
"CapAdd": null,
"CapDrop": null,
"CgroupnsMode": "private",
"Dns": null,
"DnsOptions": null,
"DnsSearch": null,
"ExtraHosts": [],
"GroupAdd": null,
"IpcMode": "private",
"Cgroup": "",
"Links": null,
"OomScoreAdj": 0,
"PidMode": "",
"Privileged": false,
"PublishAllPorts": false,
"ReadonlyRootfs": false,
"SecurityOpt": null,
"UTSMode": "",
"UsernsMode": "",
"ShmSize": 67108864,
"Runtime": "runc",
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": [
{
"PathOnHost": "/dev/dri/renderD128",
"PathInContainer": "/dev/dri/renderD128",
"CgroupPermissions": "rwm"
},
{
"PathOnHost": "/dev/dri/card1",
"PathInContainer": "/dev/dri/card1",
"CgroupPermissions": "rwm"
}
],
"DeviceCgroupRules": null,
"DeviceRequests": null,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": null,
"PidsLimit": null,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0,
"MaskedPaths": [
"/proc/asound",
"/proc/acpi",
"/proc/kcore",
"/proc/keys",
"/proc/latency_stats",
"/proc/timer_list",
"/proc/timer_stats",
"/proc/sched_debug",
"/proc/scsi",
"/sys/firmware",
"/sys/devices/virtual/powercap"
],
"ReadonlyPaths": [
"/proc/bus",
"/proc/fs",
"/proc/irq",
"/proc/sys",
"/proc/sysrq-trigger"
]
},
"GraphDriver": {
"Data": {
},
"Name": "overlay2"
},
"Mounts": [
{
"Type": "bind",
"Source": "/mnt/data/media",
"Destination": "/data/media",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/mnt/appdata/jellyfin",
"Destination": "/config",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "arch-server",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"ExposedPorts": {
"8096/tcp": {},
"8920/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PUID=1000",
"PGID=1000",
"UMASK=0002",
"TZ=America/New_York",
"JELLYFIN_PublishedServerUrl=192.168.31.xxx",
"PATH=/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"HOME=/root",
"LANGUAGE=en_US.UTF-8",
"LANG=en_US.UTF-8",
"TERM=xterm",
"S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0",
"S6_VERBOSITY=1",
"S6_STAGE2_HOOK=/docker-mods",
"VIRTUAL_ENV=/lsiopy",
"LSIO_FIRST_PARTY=true",
"NVIDIA_DRIVER_CAPABILITIES=compute,video,utility"
],
"Cmd": null,
"Image": "lscr.io/linuxserver/jellyfin:latest",
"Volumes": {
"/config": {}
},
"WorkingDir": "/",
"Entrypoint": [
"/init"
],
"OnBuild": null,
"Labels": {
"build_version": "Linuxserver.io version:- 10.9.8ubu2204-ls23 Build-date:- 2024-07-21T06:16:07+00:00",
"com.docker.compose.config-hash":
"com.docker.compose.container-number": "1",
"com.docker.compose.depends_on": "",
"com.docker.compose.image":
"com.docker.compose.oneoff": "False",
"com.docker.compose.project": "mediastack",
"com.docker.compose.project.config_files": "/data/compose/25/docker-compose.yml",
"com.docker.compose.project.environment_file": "/data/compose/25/stack.env",
"com.docker.compose.project.working_dir": "/data/compose/25",
"com.docker.compose.replace": ,
"com.docker.compose.service": "jellyfin",
"com.docker.compose.version": "2.26.1",
"maintainer": "thelamer",
"org.opencontainers.image.authors": "linuxserver.io",
"org.opencontainers.image.created": "2024-07-21T06:16:07+00:00",
"org.opencontainers.image.description": "[Jellyfin](https://github.com/jellyfin/jellyfin) is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it.",
"org.opencontainers.image.documentation": "https://docs.linuxserver.io/images/docker-jellyfin",
"org.opencontainers.image.licenses": "GPL-3.0-only",
"org.opencontainers.image.ref.name": "4da6ce3a47411ec49af1903327f22c7cda1d5b72",
"org.opencontainers.image.revision": "4da6ce3a47411ec49af1903327f22c7cda1d5b72",
"org.opencontainers.image.source": "https://github.com/linuxserver/docker-jellyfin",
"org.opencontainers.image.title": "Jellyfin",
"org.opencontainers.image.url": "https://github.com/linuxserver/docker-jellyfin/packages",
"org.opencontainers.image.vendor": "linuxserver.io",
"org.opencontainers.image.version": "10.9.8ubu2204-ls23"
}
},
"NetworkSettings": {
"Bridge": "",
"SandboxID": ,
"SandboxKey": "/var/run/docker/netns/default",
"Ports": {},
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"host": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"MacAddress": "",
"DriverOpts": null,
"NetworkID": ,
"EndpointID": ,
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DNSNames": null
}
}
}
}
]