• Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below
  • Forum
  • Website
  • GitHub
  • Status
  • Translation
  • Features
  • Team
  • Rules
  • Help
  • Feeds
User Links
  • Login
  • Register
  • Login Register
    Login
    Username/Email:
    Password:
    Or login with a social network below

    Useful Links Forum Website GitHub Status Translation Features Team Rules Help Feeds
    Jellyfin Forum Support Troubleshooting Docker Compose Fails

     
    • 0 Vote(s) - 0 Average

    Docker Compose Fails

    recieving consistent issue: Access to the path '/config/config/system.xml' is denied
    SirFfej
    Offline

    Junior Member

    Posts: 1
    Threads: 1
    Joined: 2026 Mar
    Reputation: 0
    Country:United States
    #1
    2026-03-08, 07:10 AM
    Migrating a Jellyfin server from a windows instance to a Linux server.

    I was able to get it to build via Docker Compose image but am now getting an 'Access to the path '/config/config/system.xml' error and am not understanding why after a great deal of trial and error.

    Error is below
    *******
    Unhandled exception. System.UnauthorizedAccessException: Access to the path '/config/config/system.xml' is denied.
    jellyfin  |  ---> System.IO.IOException: Permission denied
    jellyfin  |    --- End of inner exception stack trace ---
    jellyfin  |    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
    jellyfin  |    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Boolean failForSymlink, Boolean& wasSymlink, Func4 createOpenException)
    jellyfin  |    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func
    4 createOpenException)
    jellyfin  |    at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode)
    jellyfin  |    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
    jellyfin  |    at Emby.Server.Implementations.AppBase.ConfigurationHelper.GetXmlConfiguration(Type type, String path, IXmlSerializer xmlSerializer)
    jellyfin  |    at Emby.Server.Implementations.AppBase.BaseConfigurationManager.get_CommonConfiguration()
    jellyfin  |    at Emby.Server.Implementations.AppBase.BaseConfigurationManager.UpdateCachePath()
    jellyfin  |    at Emby.Server.Implementations.AppBase.BaseConfigurationManager..ctor(IApplicationPaths applicationPaths, ILoggerFactory loggerFactory, IXmlSerializer xmlSerializer)
    jellyfin  |    at Emby.Server.Implementations.Configuration.ServerConfigurationManager..ctor(IApplicationPaths applicationPaths, ILoggerFactory loggerFactory, IXmlSerializer xmlSerializer)
    jellyfin  |    at Jellyfin.Server.ServerSetupApp.SetupServer..ctor(Func
    1 networkManagerFactory, IApplicationPaths applicationPaths, Func`1 serverApplicationHostFactory, ILoggerFactory loggerFactory, IConfiguration startupConfiguration)
    jellyfin  |    at Jellyfin.Server.Program.StartApp(StartupOptions options)
    jellyfin  |    at Jellyfin.Server.Program.<Main>(String[] args)

    *******

    example yaml file.

    *******
    nullservices:
      jellyfin:
        image: jellyfin/jellyfin
        container_name: jellyfin
        # Optional - specify the uid and gid you would like Jellyfin to use instead of root
        user: 1003:1001
        ports:
          - 8096:8096/tcp
          - 7359:7359/udp
        volumes:
          - /etc/jellyfinConfused-faceconfig
          - /mnt/MediaServer/jellyfinConfused-facecache
          - type: bind
            source: /mnt/MediaServer/
            target: /Jellyfin
          # Optional - extra fonts to be used during transcoding with subtitle burn-in
          - type: bind
            source: /path/to/fonts
            target: /usr/local/share/fonts/custom
            read_only: true
        devices:
          - /dev/driConfused-facedev/dri
        restart: 'unless-stopped'
        # Optional - alternative address used for autodiscovery
        environment:
          - JELLYFIN_PublishedServerUrl=http://example.com
        # Optional - may be necessary for docker healthcheck to pass if running in host network mode
        extra_hosts:
          - 'host.docker.internal:host-gateway'
    *******

    I did use an updated script to migrate the dta, metadata, config, plugins, and root data from my windows server to the linux server.

    Any help would be appreciated.


    Attached Files
    .txt   Untitled Document.txt (Size: 2.21 KB / Downloads: 16)
    bigstrat2003
    Offline

    Junior Member

    Posts: 3
    Threads: 1
    Joined: 2026 Mar
    Reputation: 0
    #2
    2026-03-08, 07:09 PM
    I had something similar happen to me. Turns out that if /etc/jellyfin (and /mnt/MediaServer/jellyfin) doesn't already exist when you start the container, Docker will create the mount points with root:root owner and group. Make sure that your mount points have the correct owner and permissions, that should help.
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)


    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Team · Help · Contact
    © Designed by D&D - Powered by MyBB
    L


    Jellyfin

    The Free Software Media System

    Linear Mode
    Threaded Mode