diff options
-rw-r--r-- | flake.lock | 12 | ||||
-rw-r--r-- | flake.nix | 12 | ||||
-rw-r--r-- | hosts/laurel/configuration.nix | 85 | ||||
-rw-r--r-- | hosts/laurel/hardware-configuration.nix | 43 |
4 files changed, 146 insertions, 6 deletions
@@ -66,11 +66,11 @@ | |||
66 | ] | 66 | ] |
67 | }, | 67 | }, |
68 | "locked": { | 68 | "locked": { |
69 | "lastModified": 1701433070, | 69 | "lastModified": 1710532761, |
70 | "narHash": "sha256-Gf9JStfENaUQ7YWFz3V7x/srIwr4nlnVteqaAxtwpgM=", | 70 | "narHash": "sha256-SUXGZNrXX05YA9G6EmgupxhOr3swI1gcxLUeDMUhrEY=", |
71 | "owner": "nix-community", | 71 | "owner": "nix-community", |
72 | "repo": "home-manager", | 72 | "repo": "home-manager", |
73 | "rev": "4a8545f5e737a6338814a4676dc8e18c7f43fc57", | 73 | "rev": "206f457fffdb9a73596a4cb2211a471bd305243d", |
74 | "type": "github" | 74 | "type": "github" |
75 | }, | 75 | }, |
76 | "original": { | 76 | "original": { |
@@ -96,11 +96,11 @@ | |||
96 | }, | 96 | }, |
97 | "nixpkgs": { | 97 | "nixpkgs": { |
98 | "locked": { | 98 | "locked": { |
99 | "lastModified": 1707205916, | 99 | "lastModified": 1710534455, |
100 | "narHash": "sha256-fmRJilYGlB7VCt3XsdYxrA0u8e/K84O5xYucerUY0iM=", | 100 | "narHash": "sha256-huQT4Xs0y4EeFKn2BTBVYgEwJSv8SDlm82uWgMnCMmI=", |
101 | "owner": "NixOS", | 101 | "owner": "NixOS", |
102 | "repo": "nixpkgs", | 102 | "repo": "nixpkgs", |
103 | "rev": "8cc79aa39bbc6eaedaf286ae655b224c71e02907", | 103 | "rev": "9af9c1c87ed3e3ed271934cb896e0cdd33dae212", |
104 | "type": "github" | 104 | "type": "github" |
105 | }, | 105 | }, |
106 | "original": { | 106 | "original": { |
@@ -112,6 +112,18 @@ | |||
112 | ]; | 112 | ]; |
113 | }; | 113 | }; |
114 | 114 | ||
115 | laurel = nixpkgs.lib.nixosSystem { | ||
116 | system = "x86_64-linux"; | ||
117 | modules = [ | ||
118 | ({ config = { nix.registry.nixpkgs.flake = nixpkgs; }; }) | ||
119 | { | ||
120 | imports = [ ./hosts/laurel/configuration.nix ]; | ||
121 | _module.args.self = self; | ||
122 | } | ||
123 | flaresolverr.nixosModules.default | ||
124 | ]; | ||
125 | }; | ||
126 | |||
115 | }; | 127 | }; |
116 | }; | 128 | }; |
117 | 129 | ||
diff --git a/hosts/laurel/configuration.nix b/hosts/laurel/configuration.nix new file mode 100644 index 0000000..d0edee3 --- /dev/null +++ b/hosts/laurel/configuration.nix | |||
@@ -0,0 +1,85 @@ | |||
1 | # Edit this configuration file to define what should be installed on | ||
2 | # your system. Help is available in the configuration.nix(5) man page, on | ||
3 | # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). | ||
4 | |||
5 | { config, lib, pkgs, ... }: | ||
6 | |||
7 | { | ||
8 | imports = | ||
9 | [ | ||
10 | # Include the results of the hardware scan. | ||
11 | ./hardware-configuration.nix | ||
12 | ]; | ||
13 | |||
14 | # Use the systemd-boot EFI boot loader. | ||
15 | boot.loader.systemd-boot.enable = true; | ||
16 | boot.loader.efi.canTouchEfiVariables = true; | ||
17 | |||
18 | # networking.hostName = "nixos"; # Define your hostname. | ||
19 | # Pick only one of the below networking options. | ||
20 | # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. | ||
21 | # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. | ||
22 | networking.hostName = "laurel"; | ||
23 | networking.firewall.allowedTCPPorts = [ 80 443 ]; | ||
24 | |||
25 | time.timeZone = "Europe/London"; | ||
26 | i18n.defaultLocale = "en_US.UTF-8"; | ||
27 | |||
28 | |||
29 | nixpkgs.config.packageOverrides = pkgs: { | ||
30 | vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; }; | ||
31 | }; | ||
32 | |||
33 | # Enable sound. | ||
34 | sound.enable = true; | ||
35 | hardware.pulseaudio.enable = true; | ||
36 | hardware.opengl = { | ||
37 | enable = true; | ||
38 | extraPackages = with pkgs; [ | ||
39 | intel-media-driver | ||
40 | vaapiIntel | ||
41 | vaapiVdpau | ||
42 | libvdpau-va-gl | ||
43 | intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) | ||
44 | ]; | ||
45 | }; | ||
46 | |||
47 | environment.systemPackages = with pkgs; [ | ||
48 | vim | ||
49 | wget | ||
50 | curl | ||
51 | ]; | ||
52 | |||
53 | users.users.op = { | ||
54 | isNormalUser = true; | ||
55 | extraGroups = [ "wheel" "tty" ]; | ||
56 | home = "/home/op"; | ||
57 | openssh.authorizedKeys.keys = [ | ||
58 | "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG4oThdAy5wQtzCarxDPuzWX6ImYw0c1QfkF0+wZNE6o np@myrtle" | ||
59 | ]; | ||
60 | }; | ||
61 | services.openssh.enable = true; | ||
62 | services.tailscale.enable = true; | ||
63 | |||
64 | nix.settings.experimental-features = [ "nix-command" "flakes" ]; | ||
65 | |||
66 | # This option defines the first version of NixOS you have installed on this particular machine, | ||
67 | # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. | ||
68 | # | ||
69 | # Most users should NEVER change this value after the initial install, for any reason, | ||
70 | # even if you've upgraded your system to a new NixOS release. | ||
71 | # | ||
72 | # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, | ||
73 | # so changing it will NOT upgrade your system. | ||
74 | # | ||
75 | # This value being lower than the current NixOS release does NOT mean your system is | ||
76 | # out of date, out of support, or vulnerable. | ||
77 | # | ||
78 | # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, | ||
79 | # and migrated your data accordingly. | ||
80 | # | ||
81 | # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . | ||
82 | system.stateVersion = "23.11"; # Did you read the comment? | ||
83 | |||
84 | } | ||
85 | |||
diff --git a/hosts/laurel/hardware-configuration.nix b/hosts/laurel/hardware-configuration.nix new file mode 100644 index 0000000..142c4a7 --- /dev/null +++ b/hosts/laurel/hardware-configuration.nix | |||
@@ -0,0 +1,43 @@ | |||
1 | # Do not modify this file! It was generated by ‘nixos-generate-config’ | ||
2 | # and may be overwritten by future invocations. Please make changes | ||
3 | # to /etc/nixos/configuration.nix instead. | ||
4 | { config, lib, pkgs, modulesPath, ... }: | ||
5 | |||
6 | { | ||
7 | imports = | ||
8 | [ | ||
9 | (modulesPath + "/installer/scan/not-detected.nix") | ||
10 | ]; | ||
11 | |||
12 | boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; | ||
13 | boot.initrd.kernelModules = [ ]; | ||
14 | boot.kernelModules = [ "kvm-intel" ]; | ||
15 | boot.extraModulePackages = [ ]; | ||
16 | |||
17 | fileSystems."/" = | ||
18 | { | ||
19 | device = "/dev/disk/by-uuid/0a4289c5-753f-410a-aca0-0d70b448dffc"; | ||
20 | fsType = "ext4"; | ||
21 | }; | ||
22 | |||
23 | fileSystems."/boot" = | ||
24 | { | ||
25 | device = "/dev/disk/by-uuid/FDC2-EFD1"; | ||
26 | fsType = "vfat"; | ||
27 | }; | ||
28 | |||
29 | swapDevices = | ||
30 | [{ device = "/dev/disk/by-uuid/22b596ba-93ef-4a41-8e4c-292e5baa36e8"; }]; | ||
31 | |||
32 | # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||
33 | # (the default) this is the recommended approach. When using systemd-networkd it's | ||
34 | # still possible to use this option, but it's recommended to use it in conjunction | ||
35 | # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||
36 | networking.useDHCP = lib.mkDefault true; | ||
37 | # networking.interfaces.enp1s0.useDHCP = lib.mkDefault true; | ||
38 | # networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true; | ||
39 | |||
40 | nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||
41 | hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||
42 | } | ||
43 | |||