OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
 
main @ 56 LINES
 
[ HISTORY ]  [ UP ]
 

{
  config,
  lib,
  ook,
  self,
  ...
}: let
  ookflixLib = import ../lib.nix {inherit lib config self;};
  inherit (ookflixLib) mkServiceStateDir mkServiceUser;
  inherit (lib) mkIf optionalAttrs;
  inherit (ook.lib.container) mkContainerLabel mkContainerEnvironment mkContainerP
ort;
  inherit (config.ooknet.server.ookflix) volumes services groups gpuAcceleration;
  inherit (config.ooknet.server.ookflix.services) jellyfin;
in {
  config = mkIf services.jellyfin.enable {
    hardware.nvidia-container-toolkit.enable = gpuAcceleration.enable && gpuAccele
ration.type == "nvidia";
    users = mkServiceUser jellyfin.user.name;
    systemd.tmpfiles.settings.jellyfinStateDir = mkServiceStateDir "jellyfin";
    virtualisation.oci-containers.containers = {
      # media streaming server
      # docs: <https://docs.linuxserver.io/images/docker-jellyfin/>
      jellyfin = {
        image = "lscr.io/linuxserver/jellyfin:10.11.5";
        autoStart = true;
        hostname = "jellyfin";
        ports = [(mkContainerPort jellyfin.port)];
        volumes = [
          "${volumes.media.root}:/data"
          "${jellyfin.stateDir}:/config"
        ];
        labels = mkContainerLabel {
          name = "jellyfin";
          inherit (jellyfin) port domain;
          homepage = {
            group = "media";
            description = "media-server streamer";
          };
        };
        extraOptions =
          if gpuAcceleration.enable
          then [
            "--gpus=all"
          ]
          else [];
        environment =
          mkContainerEnvironment jellyfin.user.id groups.media.id
          // {JELLYFIN_PublishedServerUrl = jellyfin.domain;}
          // optionalAttrs (gpuAcceleration.enable && gpuAcceleration.type == "nvi
dia") {
            NVIDIA_VISIBLE_DEVICES = "all";
            NVIDIA_DRIVER_CAPABILITIES = "all";
          };
      };
    };
  };
}

{
  config,
  lib,
  ook,
  self,
  ...
}: let
  ookflixLib = import ../lib.nix {inherit li
b config self;};
  inherit (ookflixLib) mkServiceStateDir mkS
erviceUser;
  inherit (lib) mkIf optionalAttrs;
  inherit (ook.lib.container) mkContainerLab
el mkContainerEnvironment mkContainerPort;
  inherit (config.ooknet.server.ookflix) vol
umes services groups gpuAcceleration;
  inherit (config.ooknet.server.ookflix.serv
ices) jellyfin;
in {
  config = mkIf services.jellyfin.enable {
    hardware.nvidia-container-toolkit.enable
 = gpuAcceleration.enable && gpuAcceleration
.type == "nvidia";
    users = mkServiceUser jellyfin.user.name
;
    systemd.tmpfiles.settings.jellyfinStateD
ir = mkServiceStateDir "jellyfin";
    virtualisation.oci-containers.containers
 = {
      # media streaming server
      # docs: <https://docs.linuxserver.io/i
mages/docker-jellyfin/>
      jellyfin = {
        image = "lscr.io/linuxserver/jellyfi
n:10.11.5";
        autoStart = true;
        hostname = "jellyfin";
        ports = [(mkContainerPort jellyfin.p
ort)];
        volumes = [
          "${volumes.media.root}:/data"
          "${jellyfin.stateDir}:/config"
        ];
        labels = mkContainerLabel {
          name = "jellyfin";
          inherit (jellyfin) port domain;
          homepage = {
            group = "media";
            description = "media-server stre
amer";
          };
        };
        extraOptions =
          if gpuAcceleration.enable
          then [
            "--gpus=all"
          ]
          else [];
        environment =
          mkContainerEnvironment jellyfin.us
er.id groups.media.id
          // {JELLYFIN_PublishedServerUrl = 
jellyfin.domain;}
          // optionalAttrs (gpuAcceleration.
enable && gpuAcceleration.type == "nvidia") 
{
            NVIDIA_VISIBLE_DEVICES = "all";
            NVIDIA_DRIVER_CAPABILITIES = "al
l";
          };
      };
    };
  };
}
 
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET