diff --git a/home/baseline/nushell/functions.nu b/home/baseline/nushell/functions.nu index fe66cfb..11b5fd1 100644 --- a/home/baseline/nushell/functions.nu +++ b/home/baseline/nushell/functions.nu @@ -1,5 +1,5 @@ # vim: set filetype=nushell : -let servers = [isaiah jeremiah zeke genesis vm-gitlab vm-jellyfin] +let servers = [isaiah jeremiah zeke genesis vm-gitlab] def par-map [ items: list, c: closure ] { let results = $items | par-each -k $c diff --git a/home/default.nix b/home/default.nix index 3bd1873..09604f5 100644 --- a/home/default.nix +++ b/home/default.nix @@ -41,5 +41,4 @@ in linode = greg "linode"; hosea = greg "hosea"; vm-gitlab = greg "vm-gitlab"; - vm-jellyfin = greg "vm-jellyfin"; } diff --git a/hosts/default.nix b/hosts/default.nix index 4717eb2..dd8c224 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -53,7 +53,6 @@ in isaiah = unstable { name = "isaiah"; }; vm-gitlab = vm { name = "vm-gitlab"; }; - vm-jellyfin = vm { name = "vm-jellyfin"; }; proxmoxtemplate = unstable { name = "proxmoxtemplate"; }; iso = unstable { name = "iso"; }; diff --git a/hosts/genesis/net/hosts b/hosts/genesis/net/hosts index 4c50323..3c79ad8 100644 --- a/hosts/genesis/net/hosts +++ b/hosts/genesis/net/hosts @@ -10,7 +10,7 @@ 10.42.1.4 chronicles chronicles.thehellings.lan nas.thehellings.lan s3.thehellings.lan 10.42.1.5 genesis genesis.thehellings.lan dns dns.thehellings.lan smart smart.thehellings.lan speedtest.thehellings.lan nixcache.thehellings.lan gitcache.thehellings.lan 10.42.1.6 isaiah isaiah.thehellings.lan minio-01.thehellings.lan -10.42.1.7 hosea hosea.thehellings.lan +10.42.1.7 hosea hosea.thehellings.lan jellyfin jellyfin.thehellings.lan 10.42.1.8 jeremiah jeremiah.thehellings.lan minio-02.thehellings.lan 10.42.1.9 ivr ivr.thehellings.lan # 10 - monitor @@ -21,7 +21,7 @@ # VMs 10.42.4.1 matrix matrix.thehellings.lan -10.42.4.2 jellyfin jellyfin.thehellings.lan vm-jellyfin vm-jellyfin.thehellings.lan +#10.42.4.2 vm-jellyfin vm-jellyfin.thehellings.lan 10.42.4.3 git gitlab git.thehellings.lan gitlab.thehellings.lan # VIP @@ -43,7 +43,7 @@ 100.90.74.19 zeke.home 100.115.57.8 linode.home 100.65.5.38 matrix.home matrix.shire-zebra.ts.net -100.127.55.22 jellyfin.home +#100.127.55.22 jellyfin.home 100.114.187.61 nas1.home nas1.shire-zebra.ts.net # Dev hosts diff --git a/hosts/hosea/default.nix b/hosts/hosea/default.nix index 5d95678..5abf9ea 100644 --- a/hosts/hosea/default.nix +++ b/hosts/hosea/default.nix @@ -2,7 +2,7 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ top, ... }: +{ pkgs, top, ... }: let wanInterface = "enp2s0"; lanInterface = "enp1s0"; @@ -28,7 +28,43 @@ in }; extraModprobeConfig = "vboxdrv"; }; - users.users.greg.extraGroups = [ "vboxusers" ]; + + environment.systemPackages = with pkgs; [ + clinfo + glxinfo + jellyfin-ffmpeg + libva-utils + nfs-utils + radeontop + vulkan-tools + ]; + + greg = { + home = true; + proxies = { + "jellyfin.home".target = "http://localhost:8096/"; + "jellyfin.thehellings.lan".target = "http://localhost:8096/"; + }; + tailscale.enable = true; + }; + + hardware = { + enableAllFirmware = true; + enableRedistributableFirmware = true; + graphics = { + enable = true; + }; + opengl = { + enable = true; + extraPackages = with pkgs; [ + intel-media-driver + vaapiIntel + vaapiVdpau + #intel-media-sdk + intel-compute-runtime + ]; + }; + }; networking = { hostName = "hosea"; @@ -48,16 +84,43 @@ in }; }; - # Serves as the router, DHCP, and DNS for the site - greg = { - tailscale.enable = true; - home = true; - }; services = { + jellyfin = { + enable = true; + openFirewall = true; + }; # Configure keymap xserver.xkb = { layout = "us"; variant = ""; }; }; + + 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") + ]; + + users.users = { + greg.extraGroups = [ "vboxusers" ]; + + jellyfin.extraGroups = [ + "video" + "render" + ]; + }; } diff --git a/hosts/vm-jellyfin/default.nix b/hosts/vm-jellyfin/default.nix deleted file mode 100644 index eb210ec..0000000 --- a/hosts/vm-jellyfin/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ 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" - ]; -} diff --git a/hosts/vm-jellyfin/hardware-configuration.nix b/hosts/vm-jellyfin/hardware-configuration.nix deleted file mode 100644 index 1571b71..0000000 --- a/hosts/vm-jellyfin/hardware-configuration.nix +++ /dev/null @@ -1,52 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ - lib, - modulesPath, - ... -}: - -{ - imports = [ - (modulesPath + "/profiles/qemu-guest.nix") - ]; - - boot.initrd.availableKernelModules = [ - "uhci_hcd" - "ehci_pci" - "ahci" - "virtio_pci" - "virtio_scsi" - "sd_mod" - "sr_mod" - ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = { - device = lib.mkDefault "/dev/disk/by-uuid/507251f1-efe7-448d-8de8-91ee582a9afb"; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/7115-EFA6"; - fsType = "vfat"; - options = [ - "fmask=0077" - "dmask=0077" - ]; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp6s18.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; -} diff --git a/manifests/databases/ingress.yaml b/manifests/databases/ingress.yaml index c42fb46..a2c1f52 100644 --- a/manifests/databases/ingress.yaml +++ b/manifests/databases/ingress.yaml @@ -21,7 +21,7 @@ spec: - 100.90.74.19 # zeke - 100.115.57.8 # linode - 100.65.5.38 # matrix - - 100.127.55.22 # jellyfin + #- 100.127.55.22 # jellyfin --- apiVersion: traefik.io/v1alpha1 kind: IngressRouteTCP