server.nix/services/jellyfin.nix
2025-01-17 21:03:57 +02:00

71 lines
1.5 KiB
Nix

{ ... }:
let
ports = {
jellyfin = 8096;
jellyfin_vue = 4004;
};
in
{
virtualisation.oci-containers.containers.jellyfin-vue = {
autoStart = true;
image = "docker.io/jellyfin/jellyfin-vue:unstable";
ports = [
"${toString ports.jellyfin_vue}:80"
];
};
nixpkgs.overlays = [
(
final: prev:
{
jellyfin-web = prev.jellyfin-web.overrideAttrs (finalAttrs: previousAttrs: {
installPhase = ''
runHook preInstall
# this is the important line
sed -i "s#</head>#<script src=\"configurationpage?name=skip-intro-button.js\"></script></head>#" dist/index.html
mkdir -p $out/share
cp -a dist $out/share/jellyfin-web
runHook postInstall
'';
});
}
)
];
services = {
# /var/lib/jellyfin
jellyfin.enable = true;
caddy.virtualHosts = {
"vue.jellyfin.catnip.ee".extraConfig = ''
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.1.1.1
}
reverse_proxy :${toString ports.jellyfin_vue}
'';
"jellyfin.catnip.ee".extraConfig = ''
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.1.1.1
}
reverse_proxy :${toString ports.jellyfin}
'';
};
borgbackup.jobs."borgbase" = {
paths = [
"/var/lib/jellyfin"
];
exclude = [
"/var/lib/jellyfin/transcodes"
];
};
};
}