Forgot to use branches, remember kids: use protection

I'd like less generations please side note:
it's a bit weird that you can't specify how many generations you'd like
to keep, like what if I want 3 generations to stay available?
This commit is contained in:
Squibid 2025-12-03 23:06:12 -05:00
parent fcbbf4b8e4
commit e20755851c
Signed by: squibid
GPG key ID: BECE5684D3C4005D
13 changed files with 345 additions and 110 deletions

View file

@ -18,61 +18,94 @@
}
];
services.declarative-jellyfin = {
sops.secrets."jellyfin/jellarr-env".owner = config.services.jellarr.user;
sops.secrets."jellyfin/zachary".owner = config.services.jellarr.user;
services.jellarr = {
enable = true;
environmentFile = config.sops.secrets."jellyfin/jellarr-env".path;
config = {
version = 1;
base_url = "http://localhost:8096";
startup = {
completeStartupWizard = true;
};
encoding = {
allowAv1Encoding = false;
allowHevcEncoding = false;
enableDecodingColorDepth10Hevc = true;
enableDecodingColorDepth10HevcRext = true;
enableDecodingColorDepth12HevcRext = true;
enableDecodingColorDepth10Vp9 = true;
enableHardwareEncoding = true;
hardwareAccelerationType = "vaapi";
hardwareDecodingCodecs = [
"h264"
"hevc"
"mpeg2video"
"vc1"
"vp8"
"vp9"
"av1"
];
vaapiDevice = "/dev/dri/renderD128";
};
system = {
quickConnectAvailable = false;
trickplayOptions = {
enableHwAcceleration = true;
enableHwEncoding = true;
};
pluginRepositories = [
{
content.Name = "Jellyfin Stable";
content.Url = "https://repo.jellyfin.org/files/plugin/manifest.json";
tag = "RepositoryInfo"; # Needed to generate the correct XML
}
{
content.Name = "Intro Skipper";
content.Url = "https://intro-skipper.org/manifest.json";
tag = "RepositoryInfo"; # Needed to generate the correct XML
}
];
};
libraries = {
virtualFolders = [
{
name = "Movies";
collectionType = "movies";
pathInfos = [{ path = "/mnt/media/movies"; }];
}
{
name = "Shows";
collectionType = "tvshows";
pathInfos = [{ path = "/mnt/media/shows"; }];
}
];
};
users = [
{
name = "zachary";
passwordFile = config.sops.secrets."jellyfin/zachary".path;
policy = {
isAdministrator = true;
};
}
];
};
bootstrap = {
enable = true;
apiKeyFile = config.sops.secrets."jellyfin/jellarr-env".path;
};
};
services.jellyfin = {
enable = true;
openFirewall = true;
serverId = "0ba4e888503b4524a90285b7ad500256"; # could be anything
system = {
serverName = config.networking.hostName;
trickplayOptions = {
enableHwAcceleration = true;
enableHwEncoding = true;
};
pluginRepositories = [
{
content.Name = "Jellyfin Stable";
content.Url = "https://repo.jellyfin.org/files/plugin/manifest.json";
tag = "RepositoryInfo"; # Needed to generate the correct XML
}
{
content.Name = "Intro Skipper";
content.Url = "https://intro-skipper.org/manifest.json";
tag = "RepositoryInfo"; # Needed to generate the correct XML
}
];
};
users.zachary = {
mutable = false;
permissions.isAdministrator = true;
hashedPasswordFile = config.sops.secrets."jellyfin/zachary".path;
};
libraries = {
Movies = {
enabled = true;
contentType = "movies";
pathInfos = ["/mnt/media/movies"];
};
Shows = {
enabled = true;
contentType = "tvshows";
pathInfos = ["/mnt/media/shows"];
};
};
encoding = {
enableHardwareEncoding = true;
hardwareAccelerationType = "vaapi";
enableDecodingColorDepth10Hevc = true; # enable if your system supports
allowHevcEncoding = true; # enable if your system supports
allowAv1Encoding = true; # enable if your system supports
hardwareDecodingCodecs = [ # enable the codecs your system supports
"h264"
"hevc"
"mpeg2video"
"vc1"
"vp9"
"av1"
];
};
};
};
}