Move jellyfin to hardware box
Rather than running Jellyfin on a VM as before, just move the service over to Hosea, which isn't doing anything graphical
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -41,5 +41,4 @@ in
|
||||
linode = greg "linode";
|
||||
hosea = greg "hosea";
|
||||
vm-gitlab = greg "vm-gitlab";
|
||||
vm-jellyfin = greg "vm-jellyfin";
|
||||
}
|
||||
|
||||
@@ -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"; };
|
||||
|
||||
@@ -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
|
||||
|
||||
+70
-7
@@ -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"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
}
|
||||
@@ -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.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp6s18.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user