55 lines
1.4 KiB
Nix
55 lines
1.4 KiB
Nix
{ lib, pkgs, config, ... }:
|
|
with lib;
|
|
let cfg = config.nas-apps.jellyfin;
|
|
in {
|
|
imports = [ ./options.nix ];
|
|
|
|
config = mkIf cfg.enable {
|
|
|
|
# systemd.services.jellyfin-nvidia-docker = {
|
|
# path = [ pkgs.bash pkgs.docker ];
|
|
# script = ''
|
|
# set -e
|
|
# exec sudo docker run \
|
|
# --rm \
|
|
# --gpus all \
|
|
# --runtime=nvidia \
|
|
# --name=${cfg.name} \
|
|
# -e PUID=${cfg.puid} \
|
|
# -e PGID=${cfg.pgid} \
|
|
# -e TZ=${cfg.timeZone} \
|
|
# -e 'NVIDIA_DRIVER_CAPABILITIES'='all' \
|
|
# -e 'NVIDIA_VISIBLE_DEVICES'='all' \
|
|
# -p ${cfg.port}:8096 \
|
|
# -v '${cfg.configPath}:/config' \
|
|
# -v '${cfg.moviesPath}:/data/movies' \
|
|
# -v '${cfg.tvPath}:/data/tv' \
|
|
# ${cfg.image}:latest
|
|
# '';
|
|
# wantedBy = [ "multi-user.target" ];
|
|
# };
|
|
# };
|
|
# }
|
|
|
|
# nix-docker
|
|
virtualisation.oci-containers.containers.${cfg.name} = {
|
|
autoStart = true;
|
|
image = cfg.image;
|
|
extraOptions = [ "--device=nvidia.com/gpu=0" ];
|
|
volumes = [
|
|
"${cfg.configPath}:/config"
|
|
"${cfg.moviesPath}:/data/movies"
|
|
"${cfg.tvPath}:/data/tv"
|
|
];
|
|
ports = [ "${cfg.port}:8096" ];
|
|
environment = {
|
|
NVIDIA_VISIBLE_DEVICES = "all";
|
|
NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
PUID = cfg.puid;
|
|
PGID = cfg.pgid;
|
|
TZ = cfg.timeZone;
|
|
};
|
|
};
|
|
};
|
|
}
|