This commit is contained in:
Aly Raffauf 2024-03-07 01:40:43 -05:00
commit b166457e37
6 changed files with 53 additions and 35 deletions

View file

@ -26,11 +26,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709677162, "lastModified": 1709764752,
"narHash": "sha256-nIXa0KM3FOVjD3XDDigW12qktQvLG+uKuPg00rjIX/8=", "narHash": "sha256-+lM4J4JoJeiN8V+3WSWndPHj1pJ9Jc1UMikGbXLqCTk=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "bdea159ffab9865f808b8d92fd2bef33521867b2", "rev": "cf111d1a849ddfc38e9155be029519b0e2329615",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -88,11 +88,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1709479366, "lastModified": 1709703039,
"narHash": "sha256-n6F0n8UV6lnTZbYPl1A9q1BS0p4hduAv1mGAP17CVd0=", "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b8697e57f10292a6165a20f03d2f42920dfaf973", "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -103,7 +103,7 @@
./system ./system
./users/aly ./users/aly
./desktop/gnome ./desktop/gnome
./modules/virtualization ./modules/homelab
./modules/steam ./modules/steam
./modules/via-qmk ./modules/via-qmk
./modules/logitech ./modules/logitech
@ -160,4 +160,4 @@
]; ];
}; };
}; };
} }

View file

@ -2,7 +2,7 @@
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }: { config, pkgs, lib, ... }:
{ {
imports = imports =
@ -10,12 +10,22 @@
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "mauville"; # Define your hostname. networking.hostName = "mauville"; # Define your hostname.
system.autoUpgrade = {
allowReboot = lib.mkForce true;
dates = lib.mkForce "weekly";
operation = lib.mkForce "boot";
};
# Delete generations older than 14 days.
nix.gc = {
options = lib.mkForce "--delete-older-than 14d";
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions

View file

@ -8,23 +8,28 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/ed744c02-8854-4f1a-8e75-ed15f02775e3"; { device = "/dev/disk/by-uuid/c4217c88-3101-434b-8321-58e2ac89527c";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/37BB-86B6"; { device = "/dev/disk/by-uuid/3445-B2A0";
fsType = "vfat"; fsType = "vfat";
}; };
fileSystems."/mnt/Media" =
{ device = "/dev/disk/by-uuid/f7e9e6d6-2bf6-429a-aaf0-49b55d53fc83";
fsType = "ext4";
};
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/7a33dbc2-73f7-490b-9aa6-382e119a997e"; } [ { device = "/dev/disk/by-uuid/26094ada-7ba4-4437-bacb-b3cdf6c3397b"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
@ -32,8 +37,8 @@
# still possible to use this option, but it's recommended to use it in conjunction # 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`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View file

@ -1,36 +1,36 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = [
../virtualization
];
# Open TCP ports for audiobookshelf, plex-server, and transmission-server. # Open TCP ports for audiobookshelf, plex-server, and transmission-server.
networking.firewall.allowedTCPPorts = [ 13378 32400 9091 ]; networking.firewall.allowedTCPPorts = [ 51413 13378 32400 9091 ];
networking.firewall.allowedUDPPorts = [ 51413 ];
virtualisation = { virtualisation = {
podman = {
enable = true;
# Create a `docker` alias for podman, to use it as a drop-in replacement
dockerCompat = true;
# Required for containers under podman-compose to be able to talk to each other.
defaultNetwork.settings.dns_enabled = true;
};
oci-containers = {
backend = "podman";
};
oci-containers.containers = { oci-containers.containers = {
audiobookshelf = { audiobookshelf = {
ports = ["0.0.0.0:13378:80"]; ports = ["0.0.0.0:13378:80"];
image = "ghcr.io/advplyr/audiobookshelf:latest"; image = "ghcr.io/advplyr/audiobookshelf:latest";
volumes = [
"/mnt/Media:/Media"
];
}; };
plex-server = { plex-server = {
ports = ["0.0.0.0:32400:32400"]; ports = ["0.0.0.0:32400:32400"];
image = "plexinc/pms-docker:public"; image = "plexinc/pms-docker:public";
volumes = [
"/mnt/Media:/Media"
];
}; };
transmission-server = { transmission-server = {
ports = ["0.0.0.0:9091:9091"]; ports = ["0.0.0.0:9091:9091" "0.0.0.0:51413:51413"];
image = "linuxserver/transmission:latest"; image = "linuxserver/transmission:latest";
# volumes = [ volumes = [
# "/home/aly/transmission:/config" "/mnt/Media:/Media"
# ]; ];
}; };
}; };
}; };

View file

@ -18,5 +18,8 @@
# Required for containers under podman-compose to be able to talk to each other. # Required for containers under podman-compose to be able to talk to each other.
defaultNetwork.settings.dns_enabled = true; defaultNetwork.settings.dns_enabled = true;
}; };
oci-containers = {
backend = "podman";
};
}; };
} }