Since my NFS mounts are connecting across tailscale, we need to force them to wait for the tailscaled to be connected already
78 lines
1.5 KiB
Nix
78 lines
1.5 KiB
Nix
{ pkgs, ... }:
|
|
|
|
{
|
|
imports = [ ./hardware-configuration.nix ];
|
|
|
|
# Bootloader.
|
|
boot = {
|
|
initrd.kernelModules = [ "amdgpu" ];
|
|
loader = {
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
};
|
|
|
|
greg = {
|
|
home = true;
|
|
proxies."jellyfin.home".target = "http://localhost:8096/";
|
|
proxies."jellyfin.thehellings.lan".target = "http://localhost:8096/";
|
|
tailscale = {
|
|
enable = true;
|
|
hostname = "jellyfin";
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
clinfo
|
|
glxinfo
|
|
jellyfin-ffmpeg
|
|
libva-utils
|
|
nfs-utils
|
|
radeontop
|
|
vulkan-tools
|
|
];
|
|
|
|
systemd.mounts = let
|
|
nfs = name: {
|
|
what = "nas1.shire-zebra.ts.net:/mnt/all/${name}";
|
|
type = "nfs";
|
|
name = "${name}.mount";
|
|
where = "/${name}";
|
|
requires = [ "tailscaled-autoconnect.service" ];
|
|
after = [ "tailscaled-autoconnect.service" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
mountConfig.Options = "_netdev,noexec,ro,timeo=50,retrans=5,soft";
|
|
};
|
|
in [
|
|
(nfs "music")
|
|
(nfs "photos")
|
|
(nfs "video")
|
|
];
|
|
|
|
hardware = {
|
|
enableAllFirmware = true;
|
|
enableRedistributableFirmware = true;
|
|
graphics = {
|
|
enable = true;
|
|
};
|
|
};
|
|
|
|
networking = {
|
|
hostName = "vm-jellyfin";
|
|
firewall.allowedTCPPorts = [ 80 ];
|
|
};
|
|
|
|
services = {
|
|
jellyfin = {
|
|
enable = true;
|
|
openFirewall = true;
|
|
};
|
|
qemuGuest.enable = true;
|
|
};
|
|
|
|
users.users.jellyfin.extraGroups = [
|
|
"video"
|
|
"render"
|
|
];
|
|
}
|