Create jellyfin VM

Update DNS for new Jellyfin box
Update DHCP for new Jellyfin box
Modify Isaiah to work better with VMs
Update pinned packages becaue I derped hard on creating a cyclic
dependency
This commit is contained in:
Greg Hellings
2024-11-21 23:13:21 -06:00
parent a0b2b0043e
commit a78cc50db9
10 changed files with 83 additions and 42 deletions
+1
View File
@@ -63,6 +63,7 @@ in
jeremiah = unstable { name = "jeremiah"; };
isaiah = unstable { name = "isaiah"; };
vm-jellyfin = vm { name = "vm-jellyfin"; };
vm-matrix = vm { name = "vm-matrix"; };
iso = machine { name = "iso"; };
-20
View File
@@ -60,8 +60,6 @@ in
allowedUDPPorts = [
dhcpPort
dnsPort
1900 # Jellyfin auto-discovery
7359 # Jellyfin auto-discovery
];
allowedTCPPorts = [
dnsPort
@@ -74,21 +72,7 @@ in
environment.etc."hosts.d/local".text = extraHosts;
fileSystems = {
"/media" = {
device = "10.42.1.4:/volume1/video/";
fsType = "nfs";
options = [ "ro" ];
};
};
services = {
# Video services
jellyfin = {
enable = true;
openFirewall = true;
};
#########
# Blind service proxy behind the walls of the VPN
########
@@ -146,10 +130,6 @@ in
};
}; # End of services configuration
greg.proxies = {
"jellyfin.home".target = "http://localhost:8096/";
};
environment.systemPackages = with pkgs; [
bind
curl # Used by dnsmasq fetching
+13 -5
View File
@@ -108,18 +108,26 @@
# hw-address = ""; # hosea
# ip-address = "10.42.1.7";
#}
#{
# hw-address = ""; # jeremiah
# ip-address = "10.42.1.8";
#}
{
hw-address = "b4:2e:99:aa:22:3c"; # jeremiah
ip-address = "10.42.1.8";
}
{
hw-address = "c8:5e:a9:54:9e:c6"; # IVR laptop Wi-Fi
ip-address = "10.42.1.9";
}
########################################
# VM servers #
########################################
{
hw-address = "52:54:00:2a:74:2f";
ip-address = "10.43.4.1";
ip-address = "10.43.4.1"; # Dendrite
}
{
hw-address = "52:54:00:6e:eb:83";
ip-address = "10.43.4.2"; # Jellyfin
}
########################################
+9 -3
View File
@@ -12,7 +12,10 @@
virtualisation.libvirtd = {
enable = true;
allowedBridges = [ "virbr0" ];
allowedBridges = [
"br0"
"virbr0"
];
onBoot = "ignore"; # only restart VMs labeled 'autostart'
qemu.ovmf.enable = true;
};
@@ -26,12 +29,15 @@
networking = {
hostName = "isaiah";
useDHCP = false;
bridges.br0 = {
interfaces = [ "enp38s0" ];
};
defaultGateway = {
address = " 10.42.1.1";
interface = "enp38s0";
interface = "br0";
};
interfaces = {
enp38s0 = {
br0 = {
ipv4.addresses = [
{
address = "10.42.1.6";
+41
View File
@@ -0,0 +1,41 @@
{ ... }:
{
imports = [ ];
#boot.loader.grub.devices = [ "/dev/vda" ];
greg = {
proxies."jellyfin.home".target = "http://localhost:8096/";
tailscale.enable = true;
};
fileSystems = {
"/music" = {
device = "10.42.1.4:/volume1/music";
fsType = "nfs";
options = [ "ro" ];
};
"/photo" = {
device = "10.42.1.4:/volume1/photo";
fsType = "nfs";
options = [ "ro" ];
};
"/video" = {
device = "10.42.1.4:/volume1/video/";
fsType = "nfs";
options = [ "ro" ];
};
};
networking = {
hostName = "vm-jellyfin";
domain = "thehellings.lan";
};
services.jellyfin = {
enable = true;
openFirewall = true;
};
virtualisation.diskSize = 100 * 1024;
}