{ ... }: 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###" 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" ]; }; }; }