{ pkgs, ... }: let jellyfin = pkgs.jellyfin.overrideAttrs (_: { makeWrapperArgs = [ "--add-flags" "--ffmpeg=${pkgs.jellyfin-ffmpeg}/bin/ffmpeg" ]; }); jellyfin-web = pkgs.runCommandLocal "jellyfin-web" { } '' mkdir -p $out/var/www cp -r ${pkgs.jellyfin-web}/share/jellyfin-web $out/var/www/jellyfin ''; entrypoint = pkgs.writeTextFile { name = "entrypoint"; executable = true; destination = "/bin/entrypoint"; text = builtins.readFile ./entrypoint.sh; }; in pkgs.dockerTools.buildImage { name = "jellyfin"; fromImage = pkgs.docker-image-base; copyToRoot = pkgs.buildEnv { name = "root"; paths = with pkgs; [ entrypoint jellyfin jellyfin-web jellyfin-ffmpeg curl jq ] ++ (with jellyfinPlugins; [ bookshelf intro-skipper opensubtitles playbackreporting reports sso subtitleextract tmdbboxsets tvdb ]); pathsToLink = [ "/bin" "/lib" "/var" ]; }; config = { Entrypoint = [ "entrypoint" ]; ExposedPorts = { "8096/tcp" = { }; }; WorkingDir = "/var/lib/jellyfin"; Volumes = { "/etc/jellyfin" = { }; "/var/lib/jellyfin/data" = { }; "/var/lib/jellyfin/metadata" = { }; "/var/lib/jellyfin/root" = { }; "/var/log/jellyfin" = { }; "/tmp/jellyfin" = { }; }; Env = [ # FIXME: https://github.com/NixOS/nixpkgs/issues/176081 "FONTCONFIG_FILE=${pkgs.fontconfig.out}/etc/fonts/fonts.conf" "FONTCONFIG_PATH=${pkgs.fontconfig.out}/etc/fonts/" ]; }; }