129 lines
4.0 KiB
Nix
129 lines
4.0 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
system,
|
|
...
|
|
}:
|
|
let
|
|
selfPkgs = inputs.self.packages.${system};
|
|
|
|
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
|
|
'';
|
|
|
|
jellyfin-plugin-bookshelf-bin = pkgs.runCommandLocal "jellyfin-plugin-bookshelf-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-bookshelf-bin} $out/var/lib/jellyfin/plugins/bookshelf
|
|
'';
|
|
|
|
jellyfin-plugin-intro-skipper-bin = pkgs.runCommandLocal "jellyfin-plugin-intro-skipper-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-intro-skipper-bin} $out/var/lib/jellyfin/plugins/intro-skipper
|
|
'';
|
|
|
|
jellyfin-plugin-opensubtitles-bin = pkgs.runCommandLocal "jellyfin-plugin-opensubtitles-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-opensubtitles-bin} $out/var/lib/jellyfin/plugins/opensubtitles
|
|
'';
|
|
|
|
jellyfin-plugin-playbackreporting-bin =
|
|
pkgs.runCommandLocal "jellyfin-plugin-playbackreporting-bin" { }
|
|
''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-playbackreporting-bin} $out/var/lib/jellyfin/plugins/playbackreporting
|
|
'';
|
|
|
|
jellyfin-plugin-reports-bin = pkgs.runCommandLocal "jellyfin-plugin-reports-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-reports-bin} $out/var/lib/jellyfin/plugins/reports
|
|
'';
|
|
|
|
jellyfin-plugin-sso-bin = pkgs.runCommandLocal "jellyfin-plugin-sso-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-sso-bin} $out/var/lib/jellyfin/plugins/sso
|
|
'';
|
|
|
|
jellyfin-plugin-subtitleextract-bin =
|
|
pkgs.runCommandLocal "jellyfin-plugin-subtitleextract-bin" { }
|
|
''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-subtitleextract-bin} $out/var/lib/jellyfin/plugins/subtitleextract
|
|
'';
|
|
|
|
jellyfin-plugin-tmdbboxsets-bin = pkgs.runCommandLocal "jellyfin-plugin-tmdbboxsets-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-tmdbboxsets-bin} $out/var/lib/jellyfin/plugins/tmdbboxsets
|
|
'';
|
|
|
|
jellyfin-plugin-tvdb-bin = pkgs.runCommandLocal "jellyfin-plugin-tvdb-bin" { } ''
|
|
mkdir -p $out/var/lib/jellyfin/plugins
|
|
cp -r ${selfPkgs.jellyfin-plugin-tvdb-bin} $out/var/lib/jellyfin/plugins/tvdb
|
|
'';
|
|
|
|
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-plugin-bookshelf-bin
|
|
jellyfin-plugin-intro-skipper-bin
|
|
jellyfin-plugin-opensubtitles-bin
|
|
jellyfin-plugin-playbackreporting-bin
|
|
jellyfin-plugin-reports-bin
|
|
jellyfin-plugin-sso-bin
|
|
jellyfin-plugin-subtitleextract-bin
|
|
jellyfin-plugin-tmdbboxsets-bin
|
|
jellyfin-plugin-tvdb-bin
|
|
jellyfin-ffmpeg
|
|
curl
|
|
jq
|
|
];
|
|
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/"
|
|
];
|
|
};
|
|
}
|