98 lines
2.6 KiB
Nix
98 lines
2.6 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
self,
|
|
...
|
|
}: let
|
|
ookflixLib = import ./lib.nix {inherit lib config self;};
|
|
|
|
inherit (ookflixLib) mkVolumeOption mkGroupOption mkServiceOptions mkBasicServiceOptions;
|
|
inherit (lib) mkOption mkEnableOption;
|
|
inherit (lib.types) enum;
|
|
inherit (config.ooknet) server;
|
|
cfg = server.ookflix;
|
|
in {
|
|
options.ooknet.server.ookflix = {
|
|
enable = mkEnableOption "Enable ookflix a container based media server module";
|
|
gpuAcceleration = {
|
|
enable = mkEnableOption "Enable GPU acceleration for video streamers";
|
|
type = mkOption {
|
|
type = enum ["nvidia" "intel" "amd"];
|
|
default = config.ooknet.hardware.gpu.type;
|
|
description = ''
|
|
What GPU type to use for GPU acceleration.
|
|
Defaults to system GPU type (ooknet.hardware.gpu.type)
|
|
'';
|
|
};
|
|
};
|
|
volumes = {
|
|
state.root = mkVolumeOption "root" "/var/lib/ookflix";
|
|
data.root = mkVolumeOption "root" "/jellyfin";
|
|
downloads = {
|
|
root = mkVolumeOption "${cfg.content.root}/downloads";
|
|
tv = mkVolumeOption "downloads" "tv";
|
|
movies = mkVolumeOption "downloads" "movies";
|
|
books = mkVolumeOption "downloads" "books";
|
|
};
|
|
|
|
media = {
|
|
root = mkVolumeOption "root" "${cfg.volumes.content.root}/media";
|
|
movies = mkVolumeOption "media" "movies";
|
|
tv = mkVolumeOption "media" "tv";
|
|
books = mkVolumeOption "media" "books";
|
|
};
|
|
};
|
|
# Shared groups
|
|
groups = {
|
|
media = mkGroupOption "media" 992;
|
|
downloads = mkGroupOption "downloader" 981;
|
|
};
|
|
|
|
services = {
|
|
jellyfin = mkServiceOptions "jellyfin" {
|
|
port = 8096;
|
|
uid = 994;
|
|
gid = 994;
|
|
};
|
|
plex = mkServiceOptions "plex" {
|
|
port = 32400;
|
|
uid = 195;
|
|
gid = 195;
|
|
};
|
|
sonarr = mkServiceOptions "sonarr" {
|
|
port = 8989;
|
|
uid = 274;
|
|
gid = 274;
|
|
};
|
|
radarr = mkServiceOptions "radarr" {
|
|
port = 7878;
|
|
uid = 275;
|
|
gid = 275;
|
|
};
|
|
prowlarr = mkServiceOptions "prowlarr" {
|
|
port = 9696;
|
|
uid = 982;
|
|
gid = 987;
|
|
};
|
|
transmission = mkServiceOptions "transmission" {
|
|
port = 9091;
|
|
uid = 70;
|
|
gid = 70;
|
|
};
|
|
jellyseer = mkServiceOptions "jellyseer" {
|
|
port = 5055;
|
|
uid = 345;
|
|
gid = 345;
|
|
};
|
|
tautulli = mkServiceOptions "tautulli" {
|
|
port = 8181;
|
|
uid = 355;
|
|
gid = 355;
|
|
};
|
|
gluetun = mkBasicServiceOptions "gluetun" {
|
|
uid = 356;
|
|
gid = 357;
|
|
};
|
|
};
|
|
};
|
|
}
|