86 lines
1.6 KiB
Nix
86 lines
1.6 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
nginxEnabled = config.mod.nginx.enable;
|
|
in
|
|
{
|
|
fileSystems."/home/alex/media" = {
|
|
device = "/dev/disk/by-uuid/ad4acc0f-172c-40f8-8473-777c957e8764";
|
|
fsType = "ext4";
|
|
options = [ "nofail" ];
|
|
};
|
|
|
|
# 1. enable vaapi on OS-level
|
|
nixpkgs.config.packageOverrides = pkgs: {
|
|
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
|
};
|
|
|
|
hardware = {
|
|
graphics = {
|
|
enable = true;
|
|
|
|
extraPackages = with pkgs; [
|
|
intel-media-driver
|
|
intel-vaapi-driver # previously vaapiIntel
|
|
vaapiVdpau
|
|
libvdpau-va-gl
|
|
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in)
|
|
vpl-gpu-rt # QSV on 11th gen or newer
|
|
];
|
|
};
|
|
};
|
|
|
|
services = {
|
|
jellyfin = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
|
|
user = "alex";
|
|
group = "users";
|
|
|
|
dataDir = "/home/alex/media/jellyfin";
|
|
};
|
|
|
|
prowlarr.enable = true;
|
|
|
|
sonarr = {
|
|
enable = true;
|
|
|
|
user = "alex";
|
|
group = "users";
|
|
};
|
|
|
|
radarr = {
|
|
enable = true;
|
|
|
|
user = "alex";
|
|
group = "users";
|
|
};
|
|
|
|
nginx = lib.mkIf nginxEnabled {
|
|
virtualHosts."jelly.ppp.pm" = {
|
|
locations = {
|
|
"/" = {
|
|
proxyPass = "http://127.0.0.1:8096";
|
|
};
|
|
|
|
"/socket" = {
|
|
proxyPass = "http://127.0.0.1:8096";
|
|
proxyWebsockets = true;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = [
|
|
pkgs.jellyfin
|
|
pkgs.jellyfin-web
|
|
pkgs.jellyfin-ffmpeg
|
|
];
|
|
}
|