nix-config/modules/nixos/jellyfin.nix
2025-11-26 23:27:21 +01:00

73 lines
1.7 KiB
Nix

{
containers.jellyfin = {
autoStart = true;
bindMounts = {
"/media" = {
hostPath = "/mnt/sdb1/media";
isReadOnly = false;
};
};
config =
{ pkgs, ... }:
{
services = {
jellyfin = {
enable = true; # port = 8096
openFirewall = true;
};
tailscale = {
enable = true;
useRoutingFeatures = "server";
interfaceName = "userspace-networking";
};
};
environment.systemPackages = with pkgs; [
jellyfin
jellyfin-web
jellyfin-ffmpeg
];
## Hardware transcoding
nixpkgs.config.allowUnfree = true;
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
## Intel Core i5 Skylake
intel-ocl
intel-media-driver
intel-compute-runtime-legacy1
];
};
## Grab EPG data daily
systemd = {
services = {
epg = {
script = "${pkgs.nodejs}/bin/npm run --prefix /media/TV/epg/ grab -- --channels=custom.channels.xml";
path = [
pkgs.bash
pkgs.nodejs
];
serviceConfig = {
Type = "oneshot";
User = "root";
};
startAt = "daily"; # Creates a timer
};
jellyfin.environment.LIBVA_DRIVER_NAME = "iHD";
};
timers.epg.timerConfig.Persistent = true;
};
environment.sessionVariables = {
LIBVA_DRIVER_NAME = "iHD";
};
system.stateVersion = "24.05";
};
};
}