{ container, lib, ... } @args: let cfg = container.config.watch; memLimit = "8G"; in { systemd.tmpfiles.rules = container.mkContainerDir cfg [ "data" "cache" ]; containers.watch = container.mkContainer cfg { bindMounts = { "/var/lib/jellyfin" = { hostPath = "${cfg.storage}/data"; isReadOnly = false; }; "/var/cache/jellyfin" = { hostPath = "${cfg.storage}/cache"; isReadOnly = false; }; "/dev/dri" = { hostPath = "/dev/dri"; isReadOnly = false; }; } // container.attachMedia "anime" cfg.anime true // container.attachMedia "download" cfg.download true // container.attachMedia "movie" cfg.movie true // container.attachMedia "music" cfg.music true // container.attachMedia "photo" cfg.photo true // container.attachMedia "porn" cfg.porn true // container.attachMedia "show" cfg.show true // container.attachMedia "study" cfg.study true // container.attachMedia "work" cfg.work true // container.attachMedia "youtube" cfg.youtube true ; allowedDevices = [ { modifier = "rwm"; node = "/dev/dri"; } ]; config = { ... }: container.mkContainerConfig cfg { services.jellyfin = { enable = true; cacheDir = "/var/cache/jellyfin"; dataDir = "/var/lib/jellyfin"; }; systemd.services.jellyfin = { serviceConfig = { MemoryLimit = memLimit; }; }; }; }; }