Files
nix/packages/docker/jellyfin/default.nix
Nikolaos Karaolidis 09fbf7150c Use overlay
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-08-17 21:24:31 +03:00

77 lines
1.6 KiB
Nix

{ 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 = import ../base { inherit pkgs; };
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/"
];
};
}