73 lines
1.7 KiB
Nix
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";
|
|
};
|
|
};
|
|
}
|